在 C/C++/Objective-C 等语言中,通常使用预处理器宏来定义日志记录机制,这些机制甚至不会为发布的二进制文件进行编译,因此不会造成性能影响。大致如下:
#ifdef DEBUG
printf("some event we want to log\n");
#endif
现在,我知道 Scala 中没有预处理器。所以我的问题是:实现记录程序活动以进行调试的机制的最佳方法是什么,同时在关闭时对性能的影响最小?
您可以使用scala.annotation.elidable http://www.scala-lang.org/api/current/scala/annotation/elidable.html
可能会在生成的代码中删除其调用的方法的注释。
行为受到将 -Xelide-below 传递给 scalac 的影响。如果给定注释的优先级低于命令行参数,则标记为可消除的方法将从生成的代码中省略。例子:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)