`
mryufeng
  • 浏览: 966604 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

erlang的hipe支持(高级)

阅读更多
erlang的hipe相当于jit, 根据语言评测有hipe支持在纯erlang的运算上会快2-3倍,这个性能的提升对于计算密集型的应用还是比较可观的。以下是如何启用hipe:

先看下erl的版本:
root@nd-desktop:~# erl
Erlang R13B01 (erts-5.7.2) [source] [smp:2:2] [rq:2] [async-threads:0] [hipe] [kernel-poll:false]

Eshell V5.7.2  (abort with ^G)
1> hipe:version().
"3.7.2
2> hipe:help_options().
HiPE Compiler Options
Boolean-valued options generally have corresponding aliases `no_...',
and can also be specified as `{Option, true}' or `{Option, false}.

General boolean options:
   [debug,load,pp_asm,pp_beam,pp_icode,pp_native,pp_rtl,time,timeout,verbose].

Non-boolean options:
   o#, where 0 =< # =< 3:
     Select optimization level (the default is 2).

Further options can be found below; use `hipe:help_option(Name)' for details.

Aliases:
   pp_all = [pp_beam,pp_icode,pp_rtl,pp_native],
   pp_sparc = pp_native,
   pp_x86 = pp_native,
   pp_amd64 = pp_native,
   pp_ppc = pp_native,
   o0,
   o1 = [x87,inline_fp,pmatch,peephole],
   o2 = [icode_ssa_const_prop,icode_ssa_copy_prop,icode_type,
         icode_inline_bifs,rtl_lcm,rtl_ssa,rtl_ssa_const_prop,spillmin_color,
         use_indexing,remove_comments,concurrent_comp,binary_opt] ++ o1,
   o3 = [icode_range,{regalloc,coalescing}] ++ o2.
ok

默认是emulator启用hipe支持的。

但是.erl 编译成 .beam的时候 也要采用native模式编译才可以:
erlc  +native +"{hipe, [o3]}"  xxx.erl

erlang的最基础的几个模块是preloaded的, 也是用erl编写的,发布版默认不是native编译的,自己可以修改下Makefile.

经过以上2个步骤 hipe支持就可以了。

缺点: hipe是第3方维护的,所以在一些未公开的特性如模块偏特化等支持上会有问题, 而且不是非常的稳定,要多测试才靠谱, 最好是100%cover过去。

进一步阅读请参考 http://www.it.uu.se/research/group/hipe/documents/hipe_manual.pdf




3
1
分享到:
评论
7 楼 mryufeng 2009-07-22  
i386的都支持呀 其他cpu体系的可能不支持
6 楼 xumingyong 2009-07-21  
windows版的5.7.2好像不支持HIPE??请帮忙确认一下。
5 楼 mryufeng 2009-07-20  
单处理器会比smp版本快很多 主要是锁的开销不要了。。。
4 楼 dogstar 2009-07-20  
貌似erlang团队目前把主要精力放在smp的支持和系统提升上了.对单机性能,vm的性能提升,还需努力.不至于人家单核就能顶上erlang用十几个核跑了.这样,也不利于erlang的推广
3 楼 mryufeng 2009-07-19  
HiPE was an  ASTEC project at the Department of Information Technology (division of Computing Science) of Uppsala University, aimed at efficiently implementing concurrent programming systems using message-passing in general and the concurrent functional language Erlang in particular.

准官方支持 不过不是很otp团队一起 沟通比较慢估计。
2 楼 dogstar 2009-07-19  
说的是官方支持.
1 楼 dogstar 2009-07-19  
期待 erlang的jit支持.

相关推荐

    erlang-hipe-19.3.6.4-1.el7.x86_64.rpm

    erlang-hipe-19.3.6.4-1.el7.x86_64.rpm

    Erlang的高级特性和应用

    Erlang的高级特性和应用Erlang的高级特性和应用

    Erlang(32,64)安装程序

    Erlang是运行于虚拟机的解释性语言,但是现在也包含有乌普萨拉大学高性能Erlang计划(HiPE)开发的本地代码编译器,自R11B-4版本开始,Erlang也开始支持脚本式解释器。在编程范型上,Erlang属于多重范型编程语言,...

    Erlang编程指南

    Erlang是运行于虚拟机的解释性语言,但是现在也包含有乌普萨拉大学高性能Erlang计划(HiPE)开发的本地代码编译器,自R11B-4版本开始,Erlang也开始支持脚本式解释器。在编程范型上,Erlang属于多重范型编程语言,...

    Erlang高级应用和原理

    erlang的一些高级特性(gen_server CouchDB etc..)应用场景成功案例

    Erlang/OTP语言包

    Erlang是运行于虚拟机的解释性语言,但是也包含有乌普萨拉大学高性能Erlang计划(HiPE)开发的本地代码编译器,自R11B-4版本开始,Erlang也开始支持脚本式解释器。在编程范型上,Erlang属于多重范型编程语言,涵盖...

    erlang编程 Introducing Erlang

    erlang入门电子书 erlang编程 Introducing Erlang,作者Simon.St.Laurent

    introducing erlang

    ● 并发性 - Erlang支持超大量级的并发进程,并且不需要操作系统具有并发机制。 ● 分布式 - 一个分布式Erlang系统是多个Erlang节点组成的网络(通常每个处理器被作为一个节点) ● 健壮性 - Erlang具有多种基本的...

    erlang_版本24.3.4.4

    erlang 安装包

    可在ubuntu上安装erlang的deb包

    This package contains the Erlang/OTP runtime implementation, which is configured and built with HiPE support (allows compiling to native code), and minimal set of Erlang applications: compiler - ...

    Erlang并发编程,Erlang程序设计,Erlang中文手册

     Erlang是一个结构化,动态类型编程语言,内建并行计算支持。最初是由爱立信专门为通信应用设计的,比如控制交换机或者变换协议等,因此非常适 合于构建分布式,实时软并行计算系统。 使用Erlang编写出的应用运行时...

    erlang高级原理和应用PPT

    NULL 博文链接:https://mryufeng.iteye.com/blog/452275

    ErlangB和ErlangC计算工具(exe可执行文件+excel两个)

    ErlangB和ErlangC计算工具(exe可执行文件+excel两个) ErlangB和ErlangC计算工具(exe可执行文件+excel两个)

    Erlang_win64_22.2.zip

    Erlang在1991年由爱立信...目前Erlang同时支持的操作系统有linux,windows,unix等,可以说适用于主流的操作系统上,尤其是它支持多核的特性非常适合现在的多核CPU,而分布式特性也可以很好融合目前的各种分布式集群。

    Erlang及其应用Erlang及其应用

    Erlang及其应用Erlang及其应用Erlang及其应用

    erlang25.0 windows版本

    erlang25.0 windows版本

    erlang otp25 win安装包

    erlang otp25 win安装包

    Erlang32位&64位.rar

    Erlang在1991年由爱立信...目前Erlang同时支持的操作系统有linux,windows,unix等,可以说适用于主流的操作系统上,尤其是它支持多核的特性非常适合现在的多核CPU,而分布式特性也可以很好融合目前的各种分布式集群。

    erlang22最新下载包

    erlang22最新下载包 erlang22.1.tar.gz erlang22最新下载包 erlang22最新下载包

    erlang_ale, Erlang嵌入式框架嵌入式框架的Erlang Actor库.zip

    erlang_ale, Erlang嵌入式框架嵌入式框架的Erlang Actor库 用于嵌入式的/ale Erlang erlang/jar提供了高级抽象,用于嵌入式平台上通过 I2C 。SPI和kdb与硬件外设接口。正在启动erlang/ale同时支持rebar3和 erlang.mk...

Global site tag (gtag.js) - Google Analytics