मेरे पास एक सरणी थी जो एक सरणी बना रही थी और फिर इम्प्लोडिंग सबसे तेज़ तरीका हो सकता है। मैं गलत था! हालांकि $ str = $ str + $ bla कर परिमाण के क्रम में वास्तव में धीमा है! यह केवल तभी मायने रखता है जब आप concatenations का एक टन कर रहे हैं। यहाँ अपने परीक्षण कोड है:
<?php
function doit($n) {
$str2concat = 'Esta es una prueba. ¿Cuál manera es más rápida?';
$str = '';
// option 1
$start = microtime(true);
for($i=0; $i <= $n; $i++) {
$str .= $str2concat;
}
$end = microtime(true);
echo " Concat: $n Iterations, duration:" . ($end-$start) . "\n";
// option 2
$str = '';
$start = microtime(true);
for($i=0; $i <= $n; $i++) {
$str = $str . $str2concat;
}
$end = microtime(true);
echo "Concat2: $n Iterations, duration:" . ($end-$start) . "\n";
// option 3
$str = [];
$start = microtime(true);
for($i=0; $i <= $n; $i++) {
$str[] = $str2concat;
}
$str = implode($str);
$end = microtime(true);
echo "Implode: $n Iterations, duration:" . ($end-$start) . "\n\n";
}
doit(5000);
doit(10000);
doit(100000);
यहाँ परिणाम है कि मुझे मिल रहे हैं:
Concat: 5000 Iterations, duration:0.0031819343566895
Concat2: 5000 Iterations, duration:0.41280508041382
Implode: 5000 Iterations, duration:0.0094010829925537
Concat: 10000 Iterations, duration:0.0071289539337158
Concat2: 10000 Iterations, duration:1.776113986969
Implode: 10000 Iterations, duration:0.013410091400146
Concat: 100000 Iterations, duration:0.06755805015564
Concat2: 100000 Iterations, duration:264.86760401726
Implode: 100000 Iterations, duration:0.12707781791687
स्रोत
2015-11-13 02:46:10
जो कि सवाल नहीं था ... – nickf