at 8:08 PM

Test Speed: Penggabungan string (concat dan implode)

Pada PHP kita bisa menggunakan 2 cara untuk menggabung string yaitu dengan operator titik(.) atau lebih dikenal dengan concatenate, dan menggunakan fungsi implode.Perbedaanya adalah pada fungsi implode string yang akan digabung adalah variabel array, sedangkan menggunakan concatenate kode jadi lebih mudah dimengerti dan tidak harus menggunakan array.

Saya penasaran dengan kedua fitur tersebut terutama dalam masalah kecepatan, berikut beberapa baris kode yang saya gunakan untuk test kecepatan diantara kedua fitur tersebut.
<?php
// (a) emaniacs
define ('STR', 'satu');
$COUNT = 10;
$arr = array();
 
function use_implode($arr) {
    $res = '' ;

    $s = microtime(true);
    $res = implode ($arr);
    $e = microtime (true) - $s;
    return $e;
}
function use_concat ($arr, $count) {
    $concat = '';

    $s = microtime(true);
    for ($n = 0; $n < $count; $n++)
       $concat .= $arr[$n];
    $e = microtime (true) - $s;
    return $e;
}

for ($x = 1; $x < 5; $x++) {
    $arr = array();

    /* create array */
    for ($i = 0; $i $lt; $COUNT; $i++)
       $arr[] = STR;

    /* tampilkan hasil */
    echo "Jumlah looping " . $COUNT . "\n";
    echo "implode = " . use_implode($arr) . "\n";
    echo "concat  = " . use_concat($arr, $COUNT) . "\n";
    echo "------------------\n";

    /* naikkan nilai $COUNT */
    $COUNT = $COUNT . '0';
    $COUNT = (int) $COUNT ;
}

Versi PHP yang digunakan adalah versi 5.3.3 kompile dari source


Berikut hasil testnya, dengan jumlah COUNT(jumlah array yang ingin digabung) yang berbeda.


Dari hasil output diatas bisa dilihat, kalo concat lebih hanya jika jumlah COUNT atau array yang akan digabung berjumlah tidak kecil (dalam test diatas COUNT=10), selebihnya implode lebih cepat meski perbedaannya tidak terlalu mencolok.

Tulis Komentar dengan akun Facebook Anda.

0 comments:

Post a Comment