Tag: 器编译器优化

Kotlin编译器能否优化掉包装函数?

我是Kotlin的新手,但我想尝试使用它来进行游戏开发,至少将Android与OpenGL ES 2.0和HTML5与WebGL(我相当熟悉)进行对比。 对于WebGL和GLES20,我的渲染引擎的类/函数没有稍微不同的版本,显然是一件好事,但是有没有一种实际的方法可以在没有开销的情况下在Kotlin中实现? 我认为我需要做的是在OpenGL ES 2.0中编写一个实现WebGLRenderingContextBase的类或其克隆(如果需要克隆,我可以使用委托来实现WebGL),其中包含如下的方法: override fun bindBuffer(target: Int, buffer, Int) { GLES20.glBindBuffer(target, buffer) } 我会写一个脚本来完成大部分的工作。 我的问题是,编译器是否足够聪明,可以优化掉这样的包装,并直接在我的类的vtable中使用GLES20.glBindBuffer等,或者与JVM有什么相同? 假设通过对接口或基类的引用调用重写的方法, inline函数不可能有任何用处。