0

我从使用 GMP 和一些 uint64_t 的 C++ 代码编译了一个 mex 文件(我使用的是 winXP 32 位)。

此 C++ 代码在 C++ 中完美运行。

但是我注意到当我在 Matlab 中运行 mex 文件以获取某些输入时它只是挂起(它只是挂起,我必须终止该进程)。

我不明白的是,如果我使用 -nojvm Matlab 模式运行它,它可以完美运行。所以我猜它与Java虚拟机有关。我已经尝试将堆限制增加到 1024mo,但并没有解决问题。

当我在挂起时手动跟随 Matlab 运行时,C++ 指令似乎停止而没有解释(不是无限循环或其他东西)。

每次我增加 java 堆限制时,Matlab 进程内存似乎也增加了。但是,如果我在经典的 main.cpp C++ 文件中运行完全相同的代码,它似乎不会用作内存。

这真的很奇怪。

4

0 回答 0