<?php
// Setup
$start_time = NULL ;
$stop_time = NULL ;
$ELEMENTS = 1000000 ;
$ITERATIONS = 10 ;
echo "Array size is $ELEMENTS .\n " ,
"Each test ran $ITERATIONS times.\n \n " ;
// foreach
for ( $i = 0 ; $i < $ITERATIONS ; $i ++ ) {
foreach ( $arr as $i => $elem ) ;
$runtimes [ ] = $stop_time - $start_time ;
}
echo "foreach: " , $average , "\n " ;
// no key foreach
for ( $i = 0 ; $i < $ITERATIONS ; $i ++ ) {
foreach ( $arr as $elem ) ;
$runtimes [ ] = $stop_time - $start_time ;
}
echo "no key foreach: " , $average , "\n " ;
// not cached sizeof loop
for ( $i = 0 ; $i < $ITERATIONS ; $i ++ ) {
for ( $i = 0 ; $i < sizeof ( $arr ) ; $i ++ ) ; $runtimes [ ] = $stop_time - $start_time ;
}
echo "uncached for: " , $average , "\n " ;
// cached sizeof loop
for ( $i = 0 ; $i < $ITERATIONS ; $i ++ ) {
for ( $i = 0 ; $i < $sizeof_arr ; $i ++ ) ;
$runtimes [ ] = $stop_time - $start_time ;
}
echo "cached for: " , $average , "\n \n " ;
PD9waHAKCi8vIFNldHVwCiRzdGFydF90aW1lID0gTlVMTDsKJHN0b3BfdGltZSA9IE5VTEw7CiRFTEVNRU5UUyA9IDEwMDAwMDA7CiRJVEVSQVRJT05TID0gMTA7CgokYXJyID0gYXJyYXlfZmlsbCgwLCAkRUxFTUVOVFMsIDEwMDAwKTsKZWNobyAiQXJyYXkgc2l6ZSBpcyAkRUxFTUVOVFMuXG4iLAogICAgIkVhY2ggdGVzdCByYW4gJElURVJBVElPTlMgdGltZXMuXG5cbiI7CgovLyBmb3JlYWNoCiRydW50aW1lcyA9IGFycmF5KCk7CmZvciAoJGkgPSAwOyAkaSA8ICRJVEVSQVRJT05TOyAkaSsrKSB7CiAgICAkc3RhcnRfdGltZSA9IG1pY3JvdGltZSh0cnVlKTsKICAgIGZvcmVhY2ggKCRhcnIgYXMgJGkgPT4gJGVsZW0pOwogICAgJHN0b3BfdGltZSA9IG1pY3JvdGltZSh0cnVlKTsKICAgICRydW50aW1lc1tdID0gJHN0b3BfdGltZSAtICRzdGFydF90aW1lOwp9CiRhdmVyYWdlID0gYXJyYXlfc3VtKCRydW50aW1lcykgLyBzaXplb2YoJHJ1bnRpbWVzKTsKZWNobyAiZm9yZWFjaDogIiAsICRhdmVyYWdlICwgIlxuIjsKCi8vIG5vIGtleSBmb3JlYWNoCiRydW50aW1lcyA9IGFycmF5KCk7CmZvciAoJGkgPSAwOyAkaSA8ICRJVEVSQVRJT05TOyAkaSsrKSB7CiAgICAkc3RhcnRfdGltZSA9IG1pY3JvdGltZSh0cnVlKTsKICAgIGZvcmVhY2ggKCRhcnIgYXMgJGVsZW0pOwogICAgJHN0b3BfdGltZSA9IG1pY3JvdGltZSh0cnVlKTsKICAgICRydW50aW1lc1tdID0gJHN0b3BfdGltZSAtICRzdGFydF90aW1lOwp9CiRhdmVyYWdlID0gYXJyYXlfc3VtKCRydW50aW1lcykgLyBzaXplb2YoJHJ1bnRpbWVzKTsKZWNobyAibm8ga2V5IGZvcmVhY2g6ICIgLCAkYXZlcmFnZSAsICJcbiI7CgovLyBub3QgY2FjaGVkIHNpemVvZiBsb29wCiRydW50aW1lcyA9IGFycmF5KCk7CmZvciAoJGkgPSAwOyAkaSA8ICRJVEVSQVRJT05TOyAkaSsrKSB7CiAgICAkc3RhcnRfdGltZSA9IG1pY3JvdGltZSh0cnVlKTsKICAgIGZvciAoJGkgPSAwOyAkaSA8IHNpemVvZigkYXJyKTsgJGkrKyk7CiAgICAkc3RvcF90aW1lID0gbWljcm90aW1lKHRydWUpOwogICAgJHJ1bnRpbWVzW10gPSAkc3RvcF90aW1lIC0gJHN0YXJ0X3RpbWU7Cn0KJGF2ZXJhZ2UgPSBhcnJheV9zdW0oJHJ1bnRpbWVzKSAvIHNpemVvZigkcnVudGltZXMpOwplY2hvICJ1bmNhY2hlZCBmb3I6ICIgLCAkYXZlcmFnZSAsICJcbiI7CgovLyBjYWNoZWQgc2l6ZW9mIGxvb3AKJHJ1bnRpbWVzID0gYXJyYXkoKTsKZm9yICgkaSA9IDA7ICRpIDwgJElURVJBVElPTlM7ICRpKyspIHsKICAgICRzdGFydF90aW1lID0gbWljcm90aW1lKHRydWUpOwogICAgJHNpemVvZl9hcnIgPSBzaXplb2YoJGFycik7CiAgICBmb3IgKCRpID0gMDsgJGkgPCAkc2l6ZW9mX2FycjsgJGkrKyk7CiAgICAkc3RvcF90aW1lID0gbWljcm90aW1lKHRydWUpOwogICAgJHJ1bnRpbWVzW10gPSAkc3RvcF90aW1lIC0gJHN0YXJ0X3RpbWU7Cn0KJGF2ZXJhZ2UgPSBhcnJheV9zdW0oJHJ1bnRpbWVzKSAvIHNpemVvZigkcnVudGltZXMpOwplY2hvICJjYWNoZWQgZm9yOiAiICwgJGF2ZXJhZ2UgLCAiXG5cbiI7Cgo=