哪一个更快?使用matlab.m文件还是其.dll版本?

哪一个更快?使用matlab.m文件还是其.dll版本?,dll,matlab,Dll,Matlab,我正在运行一个算法,执行它需要很多时间(大约24小时!)。我只是想,如果我从我的.m文件创建一个.dll,然后运行它,它会比现在快得多?这是个好主意还是浪费时间:)。谢谢你的评论。看看这个,那里的人也建议使用 我自己也有过从C代码创建一个文件供matlab代码调用的经验,这非常快(我猜速度与独立C代码差不多)。看看这个,伙计们也建议使用 我自己也有过从C代码创建一个文件供matlab代码调用的经验,这非常快(我猜速度与独立C代码差不多)。简短的回答是不,这不是一个好主意,是的,这可能是浪费时间。

我正在运行一个算法,执行它需要很多时间(大约24小时!)。我只是想,如果我从我的.m文件创建一个.dll,然后运行它,它会比现在快得多?这是个好主意还是浪费时间:)。谢谢你的评论。

看看这个,那里的人也建议使用

我自己也有过从C代码创建一个文件供matlab代码调用的经验,这非常快(我猜速度与独立C代码差不多)。

看看这个,伙计们也建议使用


我自己也有过从C代码创建一个文件供matlab代码调用的经验,这非常快(我猜速度与独立C代码差不多)。

简短的回答是不,这不是一个好主意,是的,这可能是浪费时间。MATLAB编译器实际上并没有将M文件编译成机器代码,只是将它们包装成一个独立的可执行文件并对其进行加密。有关详细说明,请参阅此页:


另一方面,编写一个在C语言中执行相同计算的mex函数将使性能提高几个数量级。对于某些类型的代码,我已经经历了100倍的增长。请参阅有关如何编写mex函数的参考:。

简短的回答是不,这不是一个好主意,是的,这可能是浪费时间。MATLAB编译器实际上并没有将M文件编译成机器代码,只是将它们包装成一个独立的可执行文件并对其进行加密。有关详细说明,请参阅此页:


另一方面,编写一个在C语言中执行相同计算的mex函数将使性能提高几个数量级。对于某些类型的代码,我已经经历了100倍的增长。请参阅有关如何编写mex函数的参考:。

这取决于您的代码,请参阅此。如果您已经使用矢量化操作、预分配矩阵和将除法转换为乘法对代码进行了充分优化,那么下一步将是运行探查器,查看代码中占用时间最多的部分,并重点关注这些部分

我发现,将我的问题分为多个批次,并在每个核心专用的matlab实例中运行它们非常有帮助


如果所有这些都花了太长时间,那么考虑投资时间使用MEX。当然,现在将代码移植到C/C++需要一定的时间。

这取决于您的代码,请参见此。如果您已经使用矢量化操作、预分配矩阵和将除法转换为乘法对代码进行了充分优化,那么下一步将是运行探查器,查看代码中占用时间最多的部分,并重点关注这些部分

我发现,将我的问题分为多个批次,并在每个核心专用的matlab实例中运行它们非常有帮助

如果所有这些都花了太长时间,那么考虑投资时间使用MEX。当然,现在将代码移植到C/C++需要一定的时间