Closed. This question needs details or clarity。它当前不接受答案。












想改善这个问题吗?添加详细信息并通过editing this post阐明问题。

5年前关闭。



Improve this question





我将Canvas包中的java.awt添加到了JFrame中。 Canvas使用双缓冲绘制,并通过canvas.createBufferStrategy(2)启用。

那是我的render()方法,应该很快,因为我没有画太多:

Graphics g = strategy.getDrawGraphics();

// draw
g.drawImage(...); // Image with a size of 1000x1000
g.drawString(...); // Drawing a short String with the Frames per Second
drawModel(g); // this method draws a rotated game character with the
              // help of Gaphics2D (Imagesize: 100x100)

g.dispose();
strategy.show();


我已经借助System.currentTimeMillis()测量了性能,并得到了结果(每帧时间):


9毫秒
9毫秒
11毫秒
10毫秒
0毫秒
21毫秒
10毫秒


一个渲染过程要花0毫秒,而下一个渲染时间是平均时间的两倍,怎么会发生呢?您对改善整体渲染性能有何建议?

//更新

我现在尝试了JPanel:它张开了,它比Canvas慢得多。

最佳答案

System.currentTimeMillis()通常不超过10毫秒。尝试System.nanoTime()

08-03 17:40
查看更多