Erlang:与Xalan接口:端口驱动程序还是nif?

时间:2010-05-26 05:14:17

标签: erlang erlang-ports erlang-nif

我想让一个真正的XSLT处理器与erlang一起工作。哪个是最好的接口,nif或端口驱动程序?根据nif文档,nif调用会阻止运行时,因此它们不应该花费很长时间。处理长xml文档太长了吗?

另外,我想在转换期间允许erlang回调。这看起来有可能吗?可能有nif但不是端口驱动程序,反之亦然?

我从未写过任何C,所以我认为这将是一个很好的介绍。 Xalan是C ++。我假设nif可以使用它,对吧?

1 个答案:

答案 0 :(得分:3)

我建议建立一个端口驱动程序。

NIF工具是一种向该语言添加新内置函数的方法 并加速在纯Erlang中实现的速度太慢的事情。 无论如何,NIF被认为是实验性的,因此接口可能会 在未来的版本中彻底改变。

编写端口驱动程序意味着实现 一个C(或C ++)共享库,其行为类似于整个erlang 进程。 这可以提供更大的灵活性,因为您可以与之通信 转换文档时的其他进程(回调...)等

它甚至不一定是司机。如果你没有通过很多 您的端口程序和其他Erlang代码之间的数据 考虑写一个普通的端口(它更容易)。