我目前正在使用 Java 开发游戏引擎,但是在堆上分配大量对象时遇到性能问题,例如
public class GLParticleSystem {
private GLParticle[] particles = new GLParticle[2000];
private int numberOfParticles;
public GLParticleSystem(numberOfParticles) {
this.numberOfParticles = numberOfParticles;
}
public void init() {
for (int i = 0; i < numberOfParticles; i++) {
particles[i] = new GLParticle();
}
}
}
由于分配的剪切级别,上面的代码在启动时会遭受大量的帧丢失,我想知道是否有我遗漏的东西或解决这个问题的一些文本。
更新
我的GLParticle类的请求数据成员。
public class GLParticle {
private GLSpriteSheet image = null;
private float x;
private float y;
private float vX;
private float vY;
private float alpha;
private float alphaStep;
private boolean isDead;
private long startTime;
private long lifeTime;
private final float u = 480f;
private final float v = 504f;
}
谢谢加里