当前位置: 首页 > 知识库问答 >
问题:

涂料法铸造。性能

慕皓君
2023-03-14

另外,每当调用paint方法并再次绘制相同的屏幕时,Java是否会进行任何优化?例如,如果您只在屏幕上移动一个元素,那么通常只需要更新该元素。似乎每次调用paint方法时,java都会重新绘制和处理整个屏幕。对我来说,这一切似乎都是不必要的处理密集。

示例代码:

public void paint(Graphics g) {
    AffineTransform transformer = new AffineTransform();
    transformer.translate(5,5);
    transformer.scale(2,2);
    Graphics2D g2d = (Graphics2D)g;
    g2d.setTransform(transformer);
    // draw to g2d.
}

共有1个答案

百里伟
2023-03-14

你说:

对我来说,这是一个突出的性能问题,因为每次调用paint方法(即每一帧)时,您都不必要地将其转换为Graphics2D类型。

这是最小的成本,所以我不会担心它。相反,分析您的程序,并将注意力集中在分析器显示给您的瓶颈上。

 类似资料:
  • 我目前在辅导一个高中生AP Java,她问了我一个关于“双选”的问题。我以前从未听说过这个术语,但显然她的老师希望她在即将到来的期末考试中知道这个术语。 她的老师提供的例子是,如果你想将一个整数转换成一个字符串,你必须执行以下操作才能避免编译器错误: 问题是:你想在现实生活中什么时候这样做? 老师只提供了导致运行时错误的示例。此外,我从来不知道有一个术语,但这样做似乎是个坏主意,因为只有当两种类型

  • TL;DR:为什么乘法/转换数据的速度很慢,为什么这因平台而异? 我遇到了一些不完全理解的性能问题。上下文是一个相机图像采集卡,其中以100 Hz的速率读取和后处理128x128 uint16_t图像。 在后处理中,我生成一个直方图 ) 令人惊讶的是,比? 更新4: 我在一台机器上用不同的数据类型和不同的编译器又做了一些测试。结果如下。 对于testd 0 - 2,相关代码为 和平方为双精度, ,

  • 我试图从一个Cloud Foundry Java应用程序中调用javac,以便在应用程序运行时编译一个Java文件。我有一个关于正在使用哪个JDK的问题。 为了测试这一点,在我的应用程序中,我使用语句ToolProvider.getSystemJavaCompiler()实例化了一个JavaCompiler,并打印出编译器实例。应用程序部署在CF上并打印出来:com.sun.tools.javac

  • 问题内容: 在Objective-C中,我经常绕过块。我经常使用它们来实现有助于避免将内容存储到实例变量中的模式,从而避免线程/定时问题。 例如,我将它们分配给过孔,以便在动画结束时执行该块。(Objective-C可以将块视为对象;您也可以这样做和。) 但是,尝试在Swift和Objective-C中同时使用这些模式似乎很困难。( 编辑: 我们可以看到该语言仍在不断变化:已经对代码进行了修改,因

  • 在抽象工厂模式中,我使用泛型。我有一个扩展Serializable的BaseEntity接口,Employee类实现了BaseEntity。在抽象类中,我有一个getJavaObj方法 是一种方法,它接受并返回

  • 在最近的一个问题中,有人提到,当使用printf打印指针值时,调用方必须将指针强制转换为void*,如下所示: 为了我的生命,我不知道为什么。我发现这个问题,几乎是一样的。这个问题的答案是正确的——它解释了整数和指针的长度不一定相同。 当然,这是正确的,但是当我已经有了指针,就像上面的例子一样,为什么我要从转换到?什么时候int*与void*不同?事实上,什么时候生成的机器代码不同于简单的? 更新