如何抑制「内联预期性能影响可忽略」编译警告?
如何抑制“内联带来的预期性能影响可忽略”编译警告
这个警告通常在标记了inline但未接收函数类型参数的函数上触发——这类函数内联带来的性能收益极低,甚至可能产生额外开销。以下是几种解决方式:
1. 移除不必要的inline修饰符
这是最推荐的方案。如果函数不需要利用内联的核心特性(比如避免函数类型参数的对象创建、访问非局部返回等),直接去掉inline即可从根源消除警告。
2. 针对单个函数抑制警告
若因特殊需求必须保留inline,可通过注解屏蔽单个函数的警告:
- Kotlin:添加
@Suppress("NOTHING_TO_INLINE")注解:@Suppress("NOTHING_TO_INLINE") inline fun simpleInlineFunc(num: Int): Int { return num + 1 } - Scala:使用
@SuppressWarnings(Array("org.wartremover.warts.Inline"))(若使用WartRemover静态检查),或针对编译器添加参数忽略该警告。
3. 全局禁用该类警告
如果项目中存在大量此类场景,可通过编译器配置全局关闭该警告:
- Kotlin(Gradle):在
build.gradle.kts中配置:tasks.withType<KotlinCompile>().configureEach { kotlinOptions { freeCompilerArgs += "-Xsuppress-warnings=NOTHING_TO_INLINE" } } - Kotlin(Maven):在
pom.xml的kotlin-maven-plugin中添加参数:<configuration> <args> <arg>-Xsuppress-warnings=NOTHING_TO_INLINE</arg> </args> </configuration>
内容的提问来源于stack exchange,提问作者ceving
相关产品推荐
相关产品推荐

