Tag: 包装

Kotlin的Float,Int等被优化为JVM中的内置类型吗?

我是Kotlin的新手,AFAICT的语法只支持Int,Float等对象版本,没有Java的相应int和float原语。 但是,如果可能的话,编译器或JVM是否优化使用原始类型? 我担心,如果我在一个从游戏主循环调用的函数中使用局部变量,那么如果JVM每次都要创建一个对象而不是使用原始类型,则可能会导致GC口吃。

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函数不可能有任何用处。