Langsung ke konten utama

Perfomance Benchmark Local Variable VS Function Parameter VS Global Variable di PHP

<?php
/*
  indraginanjar@gmail.com
  17 Januari 2014
*/
function local_var($num){
 $local_num = $num;
 return $local_num + 3;
}

function function_param($num){
 return $num + 3;
}

function global_var($num){
 global $number;
 return $number + 3;
}

$number = 4;
$count = 1000000;
$lengths = array();

$local_start = microtime(true);
for($i = 0; $i < $count; $i++){
 local_var($number);
}
$local_end = microtime(true);
$lengths = array_merge($lengths, array('local_var' => $local_time = $local_end - $local_start));

$function_param_start = microtime(true);
for($i = 0; $i < $count; $i++){
 function_param($number);
}
$function_param_end = microtime(true);
$lengths = array_merge($lengths, array('function_param' => $function_param_end - $function_param_start));

$global_var_start = microtime(true);
for($i = 0; $i < $count; $i++){
 global_var($number);
}
$global_var_end = microtime(true);
$lengths = array_merge($lengths, array('global_var' => $global_var_end - $global_var_start));

echo "# Test:\n\n";
echo "## Using Local Variable\n";
echo '  start:', $local_start, "\n";
echo '  end:', $local_end, "\n\n";
echo '  length:', $lengths['local_var'], "\n\n";

echo "## Using Function Parameter Only\n";
echo '  start:', $function_param_start, "\n";
echo '  end:', $function_param_end, "\n\n";
echo '  length:', $lengths['function_param'], "\n\n";

echo "## Using Global Variable\n";
echo '  start:', $global_var_start, "\n";
echo '  end:', $global_var_end, "\n\n";
echo '  length:', $lengths['global_var'], "\n\n";

asort($lengths);

echo "# Result:\n";
$fastest = current($lengths);
$no = 1;
echo $no, '. ', key($lengths), '(fastest): ', current($lengths), "\n";
while($running_time = next($lengths)){
 echo ++$no, '. ', key($lengths), ': ', $running_time, ' : +', $running_time - $fastest, "\n";
}
?>

Hasil

# Test:

## Using Local Variable
  start:1389998959.5745
  end:1389998960.8139

  length:1.2393939495087

## Using Function Parameter Only
  start:1389998960.8139
  end:1389998961.9497

  length:1.1357579231262

## Using Global Variable
  start:1389998961.9497
  end:1389998963.1976

  length:1.2478859424591

# Result:
1. function_param(fastest): 1.1357579231262
2. local_var: 1.2393939495087 : +0.10363602638245
3. global_var: 1.2478859424591 : +0.11212801933289

Jika di running dengan perintah time, seperti "time php benchmark-allocation.php" akan didapat lamanya benchmark ini berjalan:

real 0m3.655s
user 0m3.356s
sys 0m0.288s

Komentar

Postingan populer dari blog ini

Memasang Android 4.4 KitKat di Samsung Galaxy W (Wonder) GT-I8150

Membuat backup Singkronisasikan handphone (contact, dll) Saya membuat backup SMS dengan SMS To Text, dan riwayat panggilan dengan Call Logs Backup and Restore Download Download Android SDK Tools Windows: http://dl.google.com/android/installer_r22.3-windows.exe Linux: http://dl.google.com/android/android-sdk_r22.3-linux.tgz Android SDK Tools juga terdapat dalam pake Android SDK Windows 32 bit: http://dl.google.com/android/adt/adt-bundle-windows-x86-20131030.zip Linux 32 bit: http://dl.google.com/android/adt/adt-bundle-linux-x86-20131030.zip Download ClockworkMod (CWM) Recovery Versi minimal untuk memasang CM 11 adalah versi 6.0.4.4. Jika menggunakan versi yang dibawah/sebelum itu, akan muncul pesan kesalahan "set_metadata_recursive: some changes failed" pada saat memasang CM nantinya. Download versi versi 6.0.4.5 di http://goo.im/devs/arco/ancora/cwm/recovery-clockwork-6.0.4.5-ancora.zip Download CyanogenMod (CM) 11 http://goo.im/devs/arco/ancor...

Contoh Pemprograman List, Animasi, dan Suara dengan Visual Basic - VB6

Sebenarnya saya agak malu nge- posting ini, karena low quality (✗_✗) banget. Tapi karena saya melihat ada beberapa teman yang kesulitan dalam mengerjakan tugas pemprograman Visual Basic (VB6) yang seperti ini, maka saya tebel-tebelin muka untuk posting disini sebagai contoh, siapa tahu bisa berguna. Tampilan Program Pemilihan objek dengan menggunakan list Pemilihan objek dengan meng-klik gambar binatang Latar Belakang Pembuatan Aplikasi ini dibuat sebagai pelaksaan dari tugas yang diberikan pada matakuliah Bahasa Pemprograman Visual 1 (Visual Basic 6) yang diajar oleh Bapak H. M. Amrin Lubis, Ir, M.Sc untuk mendemonstrasikan penggunaan List , Animasi dan Suara . Untuk lebih jelasnya, berikut ini adalah pernyataan tugas tersebut: Wajib: Buat sebuah daftar nama-nama hewan dalam list atau combo minimal 10 nama hewan. Ketik di- click salah satu nama hewan tersebut maka tampil gambarnya. Misal: di-klik kelinci tampil nama kelinci dan bahasa inggrisnya. Anjuran...

Perbandingan hasil findElements() Selenium yang menggunakan (XPath)[index] versus Xpath

Object hasil findElements() dari XPath dengan index lebih konsisten daripada yang didapat dari iterasi hasil findElements() XPath tanpa index. #selenium #web #automation