आज मैंने इलेक्ट्रॉनिक आर्ट्स एसटीएल कार्यान्वयन की एक नमूना परियोजना डाउनलोड की और बनाई और मानक के मुकाबले ईए के वेक्टर मेरे लिए बहुत धीमे दिखते हैं। मैं सिर्फ आइटम के 1 लाख से 2 वैक्टर और उन्हें अपलोड करने के लिए बनाया:ईएएसटीएल प्रदर्शन
void performance_test(void)
{
clock_t start;
clock_t end;
// EA
eastl::string strEA = "hello";
eastl::vector<eastl::string> vec_EA;
start = clock();
for (size_t i = 0; i < 1000000; i++)
{
vec_EA.push_back(strEA);
}
end = clock();
printf("EA %f\n", (double(end - start)/1000));
// Standard
std::string strStandard = "hello";
std::vector<std::string> vec_Standard;
start = clock();
for (size_t i = 0; i < 1000000; i++)
{
vec_Standard.push_back(strStandard);
}
end = clock();
printf("Standard %f\n", (double(end - start)/1000));
}
और परिणाम हैं:
- ईए ०.७५९०००
- स्टैंडर्ड 0,064000
तो, वहाँ कुछ भी है मैं क्या गलत कर रहा हूं या मुझे कुछ याद आया? नमूना v100 प्लेटफार्म टूलसेट के साथ संकलित किया गया है।
आपने सी को क्यों टैग किया? कंपाइलर की अपनी मानक लाइब्रेरी विशेष रूप से उस कंपाइलर के लिए अनुकूलित की जा सकती है। मुझे यकीन नहीं है कि यह परिमाण का क्रम होना चाहिए, हालांकि। V100 प्लेटफ़ॉर्म टूलसेट क्या है? –
मुझे यकीन नहीं है कि मैं समय के लिए 'घड़ी' पर भरोसा करता हूं, लेकिन जब अंतर यह महान होता है तो यह ठीक होना चाहिए। समस्या को कम करने के लिए, एक मानक स्ट्रिंग के साथ एक ईएएसटीएल वेक्टर की कोशिश करने के लायक होगा और इसके विपरीत। –
@ मार्ककंसॉम: हम्म। मानक स्ट्रिंग के साथ ईए का वेक्टर मानक वेक्टर की तुलना में तेज़ है, लेकिन स्ट्रिंग भी तेज नहीं होनी चाहिए? – CsOkemf