Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Mexw64比相同的mexw32消耗800倍,为什么?_C++_Matlab_Visual Studio_32bit 64bit_Mex - Fatal编程技术网

C++ Mexw64比相同的mexw32消耗800倍,为什么?

C++ Mexw64比相同的mexw32消耗800倍,为什么?,c++,matlab,visual-studio,32bit-64bit,mex,C++,Matlab,Visual Studio,32bit 64bit,Mex,我想将一个C库与matlab的Mex文件进行接口,因此我构建并编译了该库,然后在Visual Studio的帮助下编写并编译了每个Mex文件。我为x32做了这项工作,它在MatlabX32中运行良好。问题是我需要更多的Matlab内存,所以我需要使用Matlabx64。我做了同样的过程,但是用x64编译,现在我可以在Matlab中执行这个mex函数。问题是,相同的mex函数在Matlab x32中大约需要0.07秒,在Matlab x64中需要41秒。任何人都知道什么是失败,或者我能做些什么来解

我想将一个C库与matlab的Mex文件进行接口,因此我构建并编译了该库,然后在Visual Studio的帮助下编写并编译了每个Mex文件。我为x32做了这项工作,它在MatlabX32中运行良好。问题是我需要更多的Matlab内存,所以我需要使用Matlabx64。我做了同样的过程,但是用x64编译,现在我可以在Matlab中执行这个mex函数。问题是,相同的mex函数在Matlab x32中大约需要0.07秒,在Matlab x64中需要41秒。任何人都知道什么是失败,或者我能做些什么来解决问题


提前感谢

您是否使用相同的输入、相同的尺寸运行?当您运行基准测试时,是否有可能在您的机器上运行其他进程?这太疯狂了。MEX源代码是否足够小,您可以发布它?x32和x64的源代码相同,只是在不同的体系结构下编译?您使用的是什么C库?您是否使用64位版本800x进行了优化编译?真奇怪。请张贴任何有助于举例说明你观点的代码。我有点怀疑。首先感谢你的快速反应。我一直在做新的测试,并尝试了不同的编译器,在本例中是Visual Studio 2012。我再次测试了mex文件,现在matlab x32比matlab x64少了10倍,这取决于mex函数和输入。我认为这是因为VisualStudio2010对x64的配置,而algo是因为优化配置。