Jac*_*ade 10 simulation performance kotlin
我正在考虑使用Kotlin进行仿真框架,并注意到编译器为每个可以从java访问的方法交织静态checkParameterIsNotNull调用.每次运行此方法时,通过访问(并转储?)调用堆栈,检查方法参数是否为空.现在在典型的模拟框架中,运行次数可能达到数百万,我想知道这种功能对性能的影响.
如果可以选择将其关闭?
yol*_*ole 20
首先,每次运行方法时都不会访问和转储调用堆栈.在正常执行期间,仅执行单个空检查,其没有任何明显的开销.仅当参数为null并且需要抛出异常时才访问调用堆栈.
不为私有方法生成断言(因为它们不能从Java代码调用,并且Kotlin编译器确保调用该方法的Kotlin代码不传递任何空值).因此,完全避免开销的最佳方法是使用私有方法编写模拟代码的内部循环.
您可以使用命令行编译器的-Xno-param-assertions和-Xno-call-assertions选项禁用断言生成.请注意,这些选项不受支持,将来可能会被删除.
| 归档时间: |
|
| 查看次数: |
1122 次 |
| 最近记录: |