在Java中使用代码块会对性能产生影响吗?

Cha*_*lic 4 java opengl lwjgl

我开始使用Java中的OpenGL,我遇到的情况是需要在许多glBegin()和glEnd()调用之间放置大量代码,并希望代码能够自动格式化很容易看出哪些代码属于哪个glBegin/glEnd.

为此,我一直在使用匿名代码块,如下所示:

glBegin(GL_QUADS);
{
   glVertex2f(100, 100);
   glVertex2f(100+200, 100);
   glVertex2f(100+200, 100+200);
   glVertex2f(100, 100+200);
}
glEnd();
Run Code Online (Sandbox Code Playgroud)

我的问题是:对于以这种方式使用代码块,是否有任何性能问题,即使是非常小的问题?或者,一旦编译程序,它是否完全不使用代码块?

tem*_*def 6

使用这样的块应该没有成本.块是用于作用域的语言的语法特征,并且没有关联的运行时功能.查看由JVM执行的编译字节码,无法确定函数的作用域规则是什么,因此JVM应该在有和没有块的情况下提供相同的性能.

如果你觉得它更容易阅读,请随意这样做.事实上,除非你有理由怀疑,否则这几乎应该是你的首要任务.

希望这可以帮助!


dat*_*olf 5

那些对glVertex的无数次调用对你的表现影响最大.这应该是你真正关心的问题.查看顶点数组和顶点缓冲区对象,以获得真正的性能提升.您的代码也会看起来更好.