`
chaoslawful
  • 浏览: 196591 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Erlang Port性能评测

阅读更多

目的

评测调用外部程序的Erlang Port效率和内链的Erlang Port Driver效率。

 

方法

使用相同的C函数库,接口方面使用Port和Port Driver两种形式,分别组织对应的Erlang端封装程序。循环调用C库中最简单的*2函数10w次,测量总花费时间。

 

评测结果

Erlang Port程序总耗时5500ms,Erlang Port Driver程序总耗时356ms,因此在调用相同功能的外部库时Port形式的开销是Port Driver形式的1545%。

 

评测程序

公用C函数库

见附件中的 libx.c.zip。

 

Erlang Port形式C封装程序

见附件中的 example1.c.zip。

 

Erlang Port形式Erlang端程序

见附件中的 example1.erl.zip。

 

Erlang Port Driver形式C封装程序

见附件中的 example1_lid.c.zip。

Erlang Port Driver形式Erlang端程序

见附件中的 example1_lid.erl.zip。

 

分享到:
评论
3 楼 sscchh_2000 2010-07-27  
port driver的效率应该没有NIF的效率高吧?
2 楼 mryufeng 2009-09-13  
在我的机器上pipe的消息来回是100us
1 楼 mryufeng 2009-04-20  
driver方式的效率是最高的 除了消息的编解码没有其他开销。 外部port的方式则涉及到pipe的读写 句柄的调度 流程也复杂很多 速度肯定慢。但是好处是系统隔离 外部程序崩溃不会出问题。

http://blog.yufeng.info

相关推荐

Global site tag (gtag.js) - Google Analytics