PHP扩展混乱

时间:2013-04-16 03:38:51

标签: php matlab php-extension

我已将MATLAB .m文件转换为exe文件并从php调用它。但是执行时间非常慢。所以,现在我正在考虑将matlab文件转换为C。

我可以从PHP扩展中调用转换后的C文件吗?

我是否需要先将matlab程序转换为C然后从php扩展中调用它,或者我应该在PHP中用C语言转换matlab程序?

执行时间会比以前更快还是相同?

2 个答案:

答案 0 :(得分:1)

您可以获取一些bechmarks以帮助选择要采用的路径。您可以手动执行matlab和exe文件吗?如果是这样,他们需要多长时间才能执行?

我认为你有三个选择:

1)无论matlab文件在做什么,都要用PHP重写它。执行php并与上面的基准进行比较。

2)研究你用来执行matlab exe文件的机制,看看它是否可以简化......你使用的是exec()吗?

3)转换&将matlab文件编译成C并使用exec()机制(如果适用于您的平台(Windows?))并与上面的基准进行比较。你能描述一下它目前是如何被执行的吗?

希望这有帮助!

答案 1 :(得分:0)

如果转换后的C文件有函数或类作为接口,它可以包装到php扩展中并从php调用。

假设您有一个C文件,其中包含以下代码:

int functionA(int p1,int p2);
int functionB(char p3,double p4);

您应该将其编译为静态或动态库,例如example.so或example.a 然后你应该开始编写php扩展,请参阅php extension hello world。在您的扩展中,您将调用example.so或example.a提供的函数,然后提供php命名空间的接口。

完成所有这些后,您可以在php中间接调用functionA和functionB。我向你保证,用C语言执行的代码将比matlab或php本身快得多。