gpt4 book ai didi

c++ - 如何初始化和加载MCR

转载 作者:太空狗 更新时间:2023-10-29 23:17:49 24 4
gpt4 key购买 nike

我在 Win32 控制台应用程序中合并了从 MATLAB 生成的 C++ 共享库。 MATLAB 程序在 MATLAB 中执行需要 2-3 秒,但控制台应用程序需要 11-12 秒才能执行。我读到这是因为 MCR 的启动时间,我相信在 MCR 初始化后它必须花费与在 matlab 中相同的时间。那么我如何加载或初始化 MCR,使其始终位于 RAM 或缓存​​中,以便控制台应用程序运行需要 2-3 秒?我是否必须进行无限循环以便连续加载 MCR?我在 Windows 操作系统上工作,我正在从 PHP 调用控制台应用程序。任何教程或链接吗?

我已将 MCR_CACHE_ROOT 添加为指向文件夹(非临时文件夹)的环境变量。我的控制台应用程序代码如下:

// shoes_shared.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "shoes_sharedlibrary.h"
#include <iostream>
#include <string.h>
#include "mex.h"



using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
/* Call the MCR and library initialization functions */
//const char *pStrings[]={"-nojvm","-nojit"};
// if (!mclInitializeApplication(pStrings,2))
// {
// fprintf(stderr, "Could not initialize MCR for the application.\n");
// return -1;
// }

if (!shoes_sharedlibraryInitialize())
{

exit(1);
}



mwArray img(argv[1]);

double wt1 = _tstof(argv[2]);
mwArray C(wt1);
double wt2 = _tstof(argv[3]);
mwArray F(wt2);
double wt3 = _tstof(argv[4]);
mwArray T(wt3);
double wt4 = _tstof(argv[5]);
mwArray S(wt4);



test_shoes(img,C,F,T,S);
//shoes_sharedlibraryTerminate();
//mclTerminateApplication();
return 0;
}

我已经评论了上面的行,认为它会使它更快但没有运气。有帮助吗?

最佳答案

您是在调试还是发布中运行?如果您在调试中运行,请尝试在发布中运行,看看是否能解决您的问题。你在使用 Visual Studio 吗?如果是这样,请尝试打开模块窗口,您会看到加载的 dll 列表。检查并查看您的库是否不断加载和卸载,或者它是否加载一次并保持加载状态。

关于c++ - 如何初始化和加载MCR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16432630/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com