当透析器独立运行时,其使用HiPE编译其模块,以加速分析:
dialyzer --src -r .
Checking whether the PLT /home/foo/.dialyzer_plt is up-to-date... yes
Compiling some key modules to native code... done in 0m12.27s
Proceeding with analysis...
当有许多模块需要分析时,这会对运行时间产生很大的影响。
当你运行rebar3 dialyzer
命令时,Rebar3会这样做吗?文档没有说明这样或那样的方法。
2条答案
按热度按时间k4ymrczo1#
正如Dogbert在评论中提到的,rebar3中的默认设置是使用源格式。原生版本有一个挂起的pull请求(https://github.com/erlang/rebar3/pull/1493),要求在可用时切换到HiPE格式,但在rebar3的上下文中,非原生版本的基准测试速度更快,到目前为止我们还没有将其合并。
我刚刚更新了公关讨论,看看它是否可以包括在内,即使没有启用默认。
mkshixfv2#
稍后再回到这一点,从Erlang/OTP 22.0.6开始,HiPE编译功能已经从Dialyzer中删除,因此Rebar 3无法激活该功能。
此外,根据this mailing list thread,Erlang/OTP 24中将完全删除HiPE。这在this pull request中已完成。