Java 多次调用BuffereImage.createGraphics()是否会产生不必要的开销?

Java 多次调用BuffereImage.createGraphics()是否会产生不必要的开销?,java,bufferedimage,graphics2d,Java,Bufferedimage,Graphics2d,我正在使用BuffereImage用Java做一些图形编程。我有一些代码看起来有点像这样(一般示例) public void drawine(x1、y1、x2、y2){ Graphics2D g=this.buffereImage.createGraphics(); g、 抽绳(x1、y1、x2、y2); } 但是,我担心buffereImage.createGraphics会有大量开销。这是正确的吗?如果是,那么缓存图形2d的最佳实践是什么 我需要能够: 更改缓冲区图像 调用一个updat

我正在使用BuffereImage用Java做一些图形编程。我有一些代码看起来有点像这样(一般示例)

public void drawine(x1、y1、x2、y2){
Graphics2D g=this.buffereImage.createGraphics();
g、 抽绳(x1、y1、x2、y2);
}
但是,我担心
buffereImage.createGraphics
会有大量开销。这是正确的吗?如果是,那么缓存
图形2d
的最佳实践是什么

我需要能够:

  • 更改
    缓冲区图像
  • 调用一个
    update
    函数将
    buffereImage
    绘制到屏幕上
  • drawLine
    和类似的函数需要存在,我不能只在一个函数中绘制所有的图形

我很难选择一个标题,请告诉我是否可以改进。如果您想知道
createGraphics()
调用会导致多少开销,请在代码上运行探查器。@Andreas您知道有什么好的java探查器吗?我遇到的唯一一个问题是付费的,我不想把钱花在一个简单的问题上——你需要磨练你的研究技能,因为有免费的分析器,包括Java附带的分析器。主要的IDE也有免费的分析器。这会造成开销吗?对没有必要吗?很难说清楚,鉴于我们拥有的信息量有限,但对于您的用例来说,
createGraphics()
一次,执行大量的绘制/绘制操作,然后再执行就更好了。这有关系吗?不可能知道。如果这是一个交互式绘图程序,则肯定不是。如果您正在输出实时图形,则可能是。