文章分类 -  Erlang-NIF

erlang-nif
摘要:NIF是Erlang OTP R13B03版引入的,在这一版中还只是一个实验特性,按照原计划,NIF在R14B版成为正式特性,相应的API也将在该版之后稳定下来。等不及了,先试试再说。1. 基本原理最大的好处是速度。Erlang程序的逻辑当然是用Erlang写的,速度上不能和C比。NIF使我们可以用C实现相同的程序逻辑, 而速度则是C的速度。简单的说就是将C实现的程序编译成动态共享对象(shared object)后动态加载到Erlang节点中,与Erlang共享内存空间,这与内联驱动(linked driver)有点类似,因此也就同样危险:有缺陷的代码会使整个Erlang节点当掉。此外,在N 阅读全文

posted @ 2012-12-21 11:28 应无所住而生其心 阅读(860) 评论(0) 推荐(0)

Erlang NIF浅析
摘要:在Erlang调用C代码时,NIF(Native Implemented Function)是比port driver更简单和有效的实现方式,尤其是编写同步程序中,NIF是非常适合Erlang 的。1, 基本原理NIF可以使我们可以用C实现相同的程序逻辑,但速度比用纯Erlang的快,跟C的速度很相近。C语言编译生成的动态库(*.so)在Erlang调用C模块时动态 加载到Erlang的进程空间中,所以这是用Erlang调用C代码最高效的方式。调用NIF不用上下文的切换开销,但是安全性不是很高,因为NIF的 crash会导致整个Erlang进程crash。2, 编程模式 在用NIF编程过程中, 阅读全文

posted @ 2012-12-21 11:17 应无所住而生其心 阅读(228) 评论(0) 推荐(0)

导航