我已经将MATLAB的.m文件转换成exe文件,并从php调用它。但是执行时间非常慢。所以,现在我正在考虑将matlab文件转换成C语言。
我可以从PHP扩展调用转换后的C文件吗?
我是否需要首先将matlab程序转换为C语言,然后从php扩展调用它,或者我应该将matlab程序转换为PHP本身的C语言?
执行时间会比以前快还是一样?
发布于 2013-04-16 11:48:51
你可以获取一些标记来帮助选择你手动执行matlab和exe文件的take.Can路径?如果是这样,它们需要多长时间才能执行?
我认为你有三个选择:
1)不管matlab文件在做什么,用PHP重写它。执行php并与上面的基准测试进行比较。
2)研究你用来执行matlab exe文件的机制,看看它是否可以简化...你在使用exec()吗?
3)将matlab文件转换并编译为C语言,并使用exec()机制,如果适用于您的平台(Windows?)并与上面的基准进行比较。你能描述一下它目前是如何执行的吗?
希望这能有所帮助!
发布于 2015-08-04 21:13:01
如果转换后的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本身执行的代码快得多。
https://stackoverflow.com/questions/16028353
复制相似问题