小编Zys*_*sGo的帖子

对于循环非常慢并导致asp超时

我有一个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)

c++ visual-c++

1
推荐指数
1
解决办法
245
查看次数

标签 统计

c++ ×1

visual-c++ ×1