다음 코드 세그먼트가 있습니다. 크기가 176000 인 벡터의 경우 루프 실행까지 최대 8 분이 소요됩니다. 너무 많은 시간이 걸리는지 확실하지 않습니다.성능 튜닝
XEPComBSTR bstrSetWithIdsAsString; //Wrapper class for BSTR
std::vector<__int64>::const_iterator it;
for(it = vecIds.begin();
it != vecIds.end();
it++)
{
__int64 i64Id = (*it);
__int64 i64OID = XPtFunctions::GetOID(i64Id);
// set ',' between two set members
if (it != vecIds.begin())
bstrSetWithIdsAsString.Append(XEPComBSTR(L","));
wchar_t buf[20];
_i64tow_s(i64OID, buf, 20, 10);
bstrSetWithIdsAsString.Append(buf);
}
__int64 GetOID(const __int64 &i64Id)
{
__int64 numId = i64Id;
numId <<= 16;
numId >>= 16;
return numId;
}
나는 보통 그것이해야한다고 생각하는대로 수행하지 않는 이유를 결정하기 위해 프로그램을 작성합니다 ... – justin
상황에 따라 8 분? 최적화로 컴파일 중입니까? 어떤 컴파일러를 사용하고 있으며 MSVC의 경우 Secure STL 기능을 비활성화 했습니까? – jalf
@jalf 최적화가 설정되지 않았습니다. VC9 –