<?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
Posting Komentar