egg*_*ant 5 php c++ swig web-applications
我有一个PHP Web应用程序需要调用C++库中的函数.该库由供应商(Linux机器上的libfoo.a)提供.
我的第一直觉是创建一个链接libfoo.a的C++可执行文件,并将命令行参数传递给该函数.然后,PHP Web应用程序可以对我的c ++可执行文件执行system()调用.这很容易实现.我担心的是它是否会增加很多开销来为每个调用创建一个新的系统进程.这个开销会是多少?
另一种方法是我可以使用SWIG将C++函数包装在PHP扩展中,但我没有C++源代码.SWIG是否支持与".a"库链接?是否需要我团队中的其他工程师更改其PHP配置以构建libfoo.a?
如果system()调用的开销很小(<30 ms),我更喜欢选项#1,因为创建一次C++可执行文件似乎要简单得多,而不是将它构建到PHP应用程序中.您对这两个选项有何建议?
不确定你最后做了什么,但几年前我已经做了一个简单的php 包装扩展,调用了 C++ 库。这样你就不会产生系统调用的开销。我对你来说不是问题,但你可以更好地控制对库的调用。例如,将包装器加载在内存中,而不是在每次调用时加载它,保留自定义配置参数等。我取决于您的库的性质。
只是一些可能感兴趣的参考:
| 归档时间: |
|
| 查看次数: |
2707 次 |
| 最近记录: |