Tanktalus बहुत छोटे तार के लिए एक बेंचमार्क दिखाता है, लेकिन के रूप में तार बड़ा पाने के लिए समस्या बदतर हो।
my $a = 'a' x 1_000_000;
my @x = (
" $a ",
"$a ",
$a,
" $a"
);
मैं ये परिणाम प्राप्त: अपने कोड में, मैं शीर्ष भाग बदल स्ट्रिंग बड़ा हो जाता है
Rate single capture trick double
single 2.09/s -- -12% -98% -98%
capture 2.37/s 13% -- -98% -98%
trick 96.0/s 4491% 3948% -- -0%
double 96.4/s 4512% 3967% 0% --
के रूप में, "चाल" और "डबल" लगभग एक ही हैं, और का उपयोग कर आम समाधान जो ज्यादातर लोग जाते हैं, "सिंगल" (मेरे साथ, क्योंकि मैं उस आदत को तोड़ नहीं सकता हूं, भले ही मुझे यह पता चले), वास्तव में चूसना शुरू कर देता है।
जब भी आप एक बेंचमार्क देखते हैं, तो यह सोचें कि यह आपको क्या बता रहा है। यह देखने के लिए कि क्या आप इसे समझते हैं, डेटा बदलें और पुनः प्रयास करें। सरणी लंबे, स्केलर्स बड़ा, और इतने पर बनाओ। लूप, ग्रीप्स, या रेगेक्स को स्टार्ट, मध्य और अंत में सामान ढूंढें। देखें कि नए परिणाम आपकी भविष्यवाणी से मेल खाते हैं या नहीं। यह पता लगाएं कि प्रवृत्ति क्या है। क्या प्रदर्शन बेहतर और बेहतर हो जाता है, एक सीमा तक पहुंचता है, फिर चोटी में गिरावट शुरू होती है, या कुछ और?
स्रोत
2008-10-08 22:14:03
"ट्रिम" स्ट्रिंग के दोनों किनारों से व्हाइटस्पेस को हटाने के लिए सामान्य नाम है। क्या आप: $ title = ~ s/remove/trim/ – Kip
मैं "pcre" टैग को हटा रहा हूं क्योंकि यह सी रेगेक्स लाइब्रेरी का नाम है (वह जो PHP के preg फ़ंक्शन को सशक्त करता है), और यह स्पष्ट रूप से नहीं है कि इसका उपयोग कैसे किया जा रहा है यहाँ। –