`
mryufeng
  • 浏览: 977485 次
  • 性别: 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 已经被广泛应用于各种场景,如广告平台、社交网络、云计算、网络游戏以及...

    erlang高级原理和应用PPT

    "erlang高级原理和应用PPT" 这个标题表明了文档的主要内容,即关于Erlang编程语言的高级概念和技术在实际应用中的讲解。Erlang是一种面向并发、分布式计算的函数式编程语言,常用于构建高可用性、容错性强的系统,...

    最新最全rabbitmq与erlang版本匹配-2020-04-23.docx

    - Erlang 22.x版本不再支持HiPE(高级并发和并行执行环境),这可能会影响某些特定的应用性能。 **2. Erlang/OTP版本兼容性变化:** - 从RabbitMQ 3.7.2到3.7.25,最低支持的Erlang版本为21.3,最高为22.x。Erlang...

    erlang编程 Introducing Erlang

    BEAM是Erlang运行时系统的名称,全称为伯尔尼高级执行机器(Bergen Erlang Virtual Machine)。它负责解释Erlang字节码,提供内存管理、垃圾回收和并发调度等功能。 ### 10. 语言特性 Erlang的语法简洁,支持模式...

    Erlang(32,64)安装程序

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

    Erlang高级应用和原理

    【Erlang高级应用和原理】深入探讨 Erlang是一种高级编程语言,以其在并发处理、分布式计算和容错性方面的强大能力而闻名。它在国内和国外都有多个成功的应用案例,例如校内的广告平台、Sohu的白社会、阿里巴巴的...

    Erlang编程指南

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

    适用于windows版本的 Erlang25.2.3 and RabbitMQ server 3.11.9下载

    3. 分布式:Erlang天生支持分布式计算,可以在多台机器上无缝部署和运行应用程序。 4. OTP(Open Telecom Platform):Erlang的配套框架,提供了模块化、可重用的组件,便于构建大型、复杂的系统。 RabbitMQ是一个...

    erlang_版本24.3.4.4

    Erlang支持多种平台,包括Windows、Linux、macOS等。在下载otp_src_24.3.4.4压缩包后,你需要解压并按照以下步骤进行编译和安装: 1. **解压源码**:将otp_src_24.3.4.4文件解压缩到一个合适的目录,通常是在你的...

    erlang25.0 windows版本

    Erlang是一种高级编程语言,特别适用于并发、分布式和实时系统。它由Ericsson公司开发,主要用于构建高可用性、容错性和可扩展性的软实时系统。Erlang的25.0版本是该语言的一个更新,针对Windows操作系统进行了优化...

    erlang9.rar

    Erlang是一种高级编程语言,特别适用于并发、分布式和实时计算系统。它的设计目标是创建一个高可用性、容错性强、低延迟的系统。Erlang9指的是Erlang/OTP(Open Telephony Platform)的第9个主要版本。OTP是Erlang...

    erlang 24.0版本 win64 位

    Erlang是一种高级编程语言,特别适用于并发、分布式和实时计算系统。它的设计目标是创建一个高度可靠且可扩展的平台,尤其在电信、银行、电子商务和互联网服务等领域有着广泛的应用。Erlang 24.0是这个语言的一个新...

    erlang22最新下载包

    5. **并发与分布式系统支持**:Erlang以其轻量级进程和消息传递为基础的并发模型著名,新版本可能会加强这方面的能力,更好地支持分布式应用程序。 6. **编译器和工具链**:Erlang的编译器和构建工具可能也得到了...

    Erlang/OTP语言包

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

    erlang趣学指南

    他通过轻松幽默的文风和清晰的讲解,向读者介绍了Erlang的模块、函数、类型、递归、错误处理、数据结构、并行编程、多处理、事件处理以及Erlang的高级特性如OTP框架等。 模块和函数是Erlang程序的基本构成单元。...

    erlang资源

    Erlang是一种面向并发的、函数式编程语言,由瑞典...这两本书结合阅读,将为初学者提供一个全面的Erlang学习路径,从基础语法到高级并发编程技巧,有助于深入理解Erlang语言及其在构建高并发、分布式系统中的强大能力。

    inside Erlang VM3

    - **透明分布支持**:Erlang程序可以在不同机器之间无缝通信,如同在同一台计算机上一样。 - **轻量级进程支持**:每个进程占用的内存非常小,可以创建数十万甚至更多进程。 - **系统信息完善**:ERTS提供了丰富的...

    erlang中文基础教程

    Erlang是一种高级并发编程语言,由爱立信公司于1986年开发,主要用于构建高可用性、容错性强的分布式系统。Erlang的设计灵感来源于函数式编程,它支持过程间的并行计算,使得在处理大量并发连接时表现出色。由于其...

    erlang深度分析.pdf

    这涉及到监控ERTS的运行时参数,例如ETS(Erlang Term Storage)使用的内存、进程的数量和状态,以及SMP(对称多处理)支持程度等。 #### 3. 编码最佳实践 在Erlang开发中,最佳实践包括使用模式匹配、递归、消息...

Global site tag (gtag.js) - Google Analytics