0

Canvasjava.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() 的帮助下测量了性能,并得到了结果(每帧时间):

  • 9ms
  • 9ms
  • 11ms
  • 10ms
  • 0ms
  • 21毫秒
  • 10ms

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

// 更新

JPanel现在尝试过:它是喇叭形的,而且比 Canvas 慢得多。

4

1 回答 1

1

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

于 2013-01-25T15:24:59.037 回答