哪个更有效地调用M,F,A或者为现有的静态函数添加别名?

时间:2014-06-06 16:27:30

标签: erlang

例如gen_tcp vs SSL。有些连接会使用SSL和一些Http。我可以将它保存到我的状态,如Module = gen_tcp或者我可以保存为MyFun = fun gen_tcp:send / 2,然后我可以做

Module:send(Socket,Data)
OR
MyFun(Sock,Data)

哪种方法更有效或推荐?我听说申请比乐趣慢,做MFA只是一个申请。是否比常规的乐趣更快地引用静态函数?

1 个答案:

答案 0 :(得分:4)

这样的操作的速度差异在现实世界的程序中是不可测量的(尤其是处理I / O的程序)。你应该考虑你想要什么样的API:传递一个回调模块,它导出send / 2和可能的其他函数(可能在将来的版本中添加回调函数),或者为每个特定的用户定义函数传递一个特定的函数值调用。