OpenJDK“fastdebug”和“release”构建有什么区别?应用程序在“fastdebug”上的运行速度是否比在“release”上慢得多?我听说“fastdebug”在某种程度上“很好”,并且可以在互联网上找到很多来自寻找各种 OpenJDK 版本和各种平台的“fastdebug”构建的人的消息,或者解释如何手动准备这些构建,但是无法在任何地方找到“fastdebug”本质上的明确描述。
1 回答
慕森卡
TA贡献1806条经验 获得超8个赞
请参阅此处的定义:
###############################################################################
# Set the debug level
# release: no debug information, all optimizations, no asserts.
# optimized: no debug information, all optimizations, no asserts, HotSpot target is 'optimized'.
# fastdebug: debug information (-g), all optimizations, all asserts
# slowdebug: debug information (-g), no optimizations, all asserts
AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_LEVEL],
是的,fastdebug 可以并且将会比 release 运行得慢,因为它会在此过程中断言很多。启用断言是用户在怀疑 JVM 错误时寻求 fastdebug 构建的原因:在发布构建中神秘地失败的地方,经常在 fastdebug 中有意义地断言。此外,fastdebug 允许更好的调试,因为它通常附带调试符号,并且它可以访问在发布版本中不可设置的“开发”JVM 标志。
添加回答
举报
0/150
提交
取消