Erlang:与Xalan接口:端口驱动程序还是NIF?
-
04-10-2019 - |
题
我想让一个真正的XSLT处理器与Erlang合作。哪个是最好的接口,NIF或端口驱动程序?根据NIF文档,NIF调用块块,因此不应花费很长时间。处理长XML文档的时间太长了吗?
另外,我想在转换过程中允许Erlang回调。这似乎有可能吗?使用NIF但不使用端口驱动程序,反之亦然?
我从来没有写过任何C,所以我认为这是很好的介绍。 Xalan是C ++。我认为Nif可以使用它,对吗?
解决方案
我建议建立一个端口驱动程序。
NIF设施是一种向语言添加新的内置功能并加快在纯Erlang中实现的速度的方式。无论如何,NIF被认为是实验性的,因此界面可能会在未来的版本中发生根本变化。
编写端口驱动程序意味着实现C(或C ++)共享库,该库的行为与整个Erlang一样 过程。在转换文档(回调...)等时,您可以与其他流程进行通信,从而具有更大的灵活性。
它甚至不必是驱动程序。如果您没有在端口程序和其他ERLANG代码之间传递大量数据,则可能会考虑编写普通端口(更容易)。
不隶属于 StackOverflow