我是使用java图形的新手,最近我注意到我正在从事的项目一直在变慢(滞后,帧速率下降(。我认为原因是,我不是制作一个对象的实例,然后反复绘制它,而是每帧制作新实例并绘制这些实例。我想在开始返工所有代码之前确保这就是原因。
谢谢
如果不看到代码,这很难说,但您应该只在需要时创建或更新实例并重复绘制它们。
我建议你分析你的代码。 使用分析统计数据来确定您的理论是否正确。
即使我们看到了源代码,我们仍然会猜测您的"滞后"原因。 你应该花时间纯粹根据某人的猜测来调整或重写你的代码。
FWIW,对象创建的开销并不像某些人想象的那么大。 但是 GC 会影响实时行为,因为即使是最好的(低暂停(Java GC 也有停止所有应用程序线程以执行基本任务的阶段。
这让我们想到,您可以通过简单地调整 JVM 的 GC 设置来减少"滞后"。 (假设你还没有尝试过... 在进行大规模代码重写之前,我会尝试 GC 调整。