首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VolatileImage的糟糕表现

VolatileImage的糟糕表现
EN

Stack Overflow用户
提问于 2022-07-28 10:45:45
回答 1查看 58关注 0票数 0

我最近听说VolatileImage的表演是多么的棒。我决定从BufferedImage转到VolatileImage,但这让事情变得更糟了。

代码语言:javascript
复制
1000 images performance test with BufferedImage:
0.0 ms on average to render a frame
~500 FPS

1000 images performance test with VolatileImage:
1500.0 ms on average to render a frame - that's 1.5 seconds!
<1 FPS

对于所有呈现,我都使用graphics.drawImage()。我看了一篇关于YouTube的教程,我的代码也是一样的,但是我仍然获得了糟糕的性能。

我发现了这个线程:Java : VolatileImage slower than BufferedImage和有人在回答中提到,这可能是由于混合加速和非加速的操作。我如何知道哪些操作是硬件加速的,哪些是不加速的?为什么每件事都不是为了最好的表现而加速呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-28 13:13:20

所以我把代码搞得乱七八糟,得到了一些非常有趣的结果。

在改变透明度模式后,我的表现猛增。最初我使用的是Transparency.BITMASK。现在,当我切换到Transparency.TRANSLUCENT时,我得到了以下结果:

代码语言:javascript
复制
0.0 ms on average to render a frame
~500 FPS

结果与BufferedImage测试的结果相同,而我预期性能会更好(~600-700 FPS)。

但更有趣的是,当我切换到Transparency.OPAQUE时:

代码语言:javascript
复制
1.0 ms on average to render a frame
~100 FPS

我原以为没有任何半透明效果的表现会好得多,但我错了。现在我真的被这种行为弄糊涂了

更新:我创建了一个不同的项目,增加了100000个弹跳球,它运行的黄油平滑- 30 FPS!我当然和BufferedImage一起试过了..。得到了同样的结果。我试验了不同的剂量,比如300,1000,20000,50000,但是结果都是一样的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73151536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档