我有一个asp页面访问c ++代码并获取返回的xml字符串.每当我访问网页时,我都会在网络浏览器中超时.
我想我知道这个问题,但我不确定如何解决它.我不确定xml字符串有多大,所以我不确定声明变量的大小,所以我声明iDataBufferSize是我能做到的最大值.
以下函数有一个for循环,它创建一个返回到asp代码的xml字符串.
for循环需要经过大约500行,我认为,当它击中这条线wcscat_s(wDataBuffer,iSize,wBuffer);,它启动磁盘交换和减慢for循环.
我知道当我使iDataBufferSize更小时,它可以工作,但我担心我不会使缓冲区足够大的xml字符串.
谢谢--Dimitry
LPWCH wLargeDataBuffer = 0;
char *cLargeCBuffer = 0;
size_t iDataBufferSize = 93276800;
wLargeDataBuffer = new WCHAR[iDataBufferSize];
cLargeCBuffer = new char[iDataBufferSize];
memset(wLargeDataBuffer, 0, iDataBufferSize);
memset(cLargeCBuffer, 0, iDataBufferSize);
iDataLen = getCServPBJList(wLargeDataBuffer, iDataBufferSize);
int CAdminConsoleInterface::getCServPBJList(LPWCH wDataBuffer, size_t iSize) {
wcscpy_s(wDataBuffer, iSize, L"<jobsList>");
houseKeeper->getCServJobsXML(wDataBuffer, iSize, configHandler->getTextValue (L"UniqueID"), L'P');
wcscat_s(wDataBuffer, iSize, L"</jobsList>");
return wcslen(wDataBuffer);
}
int CHouseKeeper::getCServJobsXML(LPWCH wDataBuffer, size_t iSize, LPWCH wLocation, WCHAR wPrefix) {
WCHAR wIndexPath[1024];
WCHAR wBuffer[1024];
LPWCH wTempBuffer = new WCHAR[16384];
int rc;
char *zErrMsg=0; …Run Code Online (Sandbox Code Playgroud)