Our Scripts Vault contains many game scripts that you can use to create your own game!
$var = memory_get_usage();//some codeecho memory_get_usage()-$var;
this is why Linux is better for websites, I reckon
adding public properties1st OO int = 840B2nd OO int = 760B3rd OO string = 800Bvisibility no effect (public, protected..)OO const int = 224BP int = 288BP const int = 144Bmethod (117 rows 3368 chars) = 67088B;conditioned function (identical) = 144Banonymous function (identical) = 904B
But the results are insane anyway... int taking 288b? Shouldn't it take 4b ....ok,maybe a bit more bytes... but that's 72x more!Integer inside object takes for some reason 3x more memory, that's like 216x more than it shouldNo wonder the memory usage is like 100x higher that I'd expect...do I have a mistake somewhere? Or interpret it badly? Is it badly configured or is PHP really that terrible about this?
public $x=6; //72Bpublic $y=5; //112B
I don't get why one variable takes more than another.
Each element requires a value structure (zval) which takes 16 bytes.Also requires a hash bucket - which takes 36 bytes. That gives 52 bytesper value. Memory allocation headers take another 8 bytes*2 - whichgives 68 bytes.
echo memory_get_usage()."<br>";$x=5;echo memory_get_usage();die();
memory_get_usage(); // force grabage collection (if any)echo memory_get_usage();echo '<br>';$x=5;echo memory_get_usage();die();
memory_get_usage(); // force grabage collection (if any)echo memory_get_usage();$x=5;echo memory_get_usage();die();
memory_get_usage(); // just in case of forced garbage collector$a=1; $b=1; // reserve memory for memory_get_usage results$a=memory_get_usage();$x=5; // use memory: 1x INT//$y=5; // another variable//$z=5; // and another$b=memory_get_usage();$d=$b-$a;echo "Before: $a<br>";echo "After: $b<br>";echo "Difference:$d<br>";die();
<?php$dosya = "<?php\n";$dosya.= "\$start = (float) array_sum(explode(' ',microtime()));\n"; $dosya.= "\n\n";$fcall = "\n\n\n#Calling Functions\n";for($i=0;$i<10000;$i++) { $dosya.= "function load".$i."(\$degisken) { return \$degisken; }\n"; $fcall.= "\necho load".$i."('execution_function_load".$i."');\n"; $fcall.= 'echo "\n";';}$dosya.=$fcall."\n\n";$dosya.= "\$end = (float) array_sum(explode(' ',microtime()));\n";$dosya.= 'echo "Memory Consumption : ".number_format(memory_get_peak_usage())." Mb.";';$dosya.= "\n\n";$dosya.= 'echo "Execution Time : ". sprintf("%.4f", ($end-$start))." Seconds.";';$dosya.= "\n?>";$tut=fopen('testfonk.php','w+');fputs($tut,$dosya);$dosya = "<?php\n";$dosya.= "\$start = (float) array_sum(explode(' ',microtime()));\n"; $dosya.= "\n\n";$ocall = "\n\n\n#Calling Objects\n";$close = '';for($i=0;$i<10000;$i++) { if($i%10==0) { $dosya.= $close."class load".($i/10)."{\n"; $close = "\n}\n\n"; $objn = ($i/10); $ocall.= "\n\$myobj".($objn)." = new load".($i/10)."('');\n\n"; } $dosya.= "\tfunction load".$i."(\$degisken) { return \$degisken; }\n"; $ocall.= "\necho \$myobj".($objn)."->load".$i."('execution_function_load".$i."');\n\n"; $ocall.= 'echo "\n";';}$dosya.= "}\n";$dosya.= $ocall ."\n\n";$dosya.= "\$end = (float) array_sum(explode(' ',microtime()));\n";$dosya.= 'echo "Memory Consumption : ".number_format(memory_get_peak_usage())." Mb.";';$dosya.= "\n\n";$dosya.= 'echo "Execution Time : ". sprintf("%.4f", ($end-$start))." Seconds.";';$dosya.= "\n?>";$tut=fopen('testoop.php','w+');fputs($tut,$dosya);//--- 10000 obje $dosya = "<?php\n";$dosya.= "\$start = (float) array_sum(explode(' ',microtime()));\n"; $dosya.= "\n\n";$ocall = "\n\n\n#Calling Objects\n";$close = '';for($i=0;$i<10000;$i++) { $objn = $i; $dosya.= $close."class load".$objn."{\n"; $close = "\n}\n\n"; $ocall.= "\n\$myobj".($objn)." = new load".($objn)."('');\n\n"; $dosya.= "\tfunction load".$i."(\$degisken) { return \$degisken; }\n"; $ocall.= "\necho \$myobj".($objn)."->load".$i."('execution_function_load".$i."');\n\n"; $ocall.= 'echo "\n";';}$dosya.= "}\n";$dosya.= $ocall ."\n\n";$dosya.= "\$end = (float) array_sum(explode(' ',microtime()));\n";$dosya.= 'echo "Memory Consumption : ".number_format(memory_get_peak_usage())." Mb.";';$dosya.= "\n\n";$dosya.= 'echo "Execution Time : ". sprintf("%.4f", ($end-$start))." Seconds.";';$dosya.= "\n?>";$tut=fopen('testoop2.php','w+');fputs($tut,$dosya);//--- 10000 obje unset$dosya = "<?php\n";$dosya.= "\$start = (float) array_sum(explode(' ',microtime()));\n"; $dosya.= "\n\n";$ocall = "\n\n\n#Calling Objects\n";$close = '';for($i=0;$i<10000;$i++) { $objn = $i; $dosya.= $close."class load".$objn."{\n"; $close = "\n}\n\n"; $ocall.= "\n\$myobj".($objn)." = new load".($objn)."('');\n\n"; $dosya.= "\tfunction load".$i."(\$degisken) { return \$degisken; }\n"; $ocall.= "\necho \$myobj".($objn)."->load".$i."('execution_function_load".$i."');\n\n"; $ocall.= "\n unset(\$myobj".($objn).");\n\n"; $ocall.= 'echo "\n";';}$dosya.= "}\n";$dosya.= $ocall ."\n\n";$dosya.= "\$end = (float) array_sum(explode(' ',microtime()));\n";$dosya.= 'echo "Memory Consumption : ".number_format(memory_get_peak_usage())." Mb.";';$dosya.= "\n\n";$dosya.= 'echo "Execution Time : ". sprintf("%.4f", ($end-$start))." Seconds.";';$dosya.= "\n?>";$tut=fopen('testoop3.php','w+');fputs($tut,$dosya);//--- Object clone$dosya = "<?php\n";$dosya.= "\$start = (float) array_sum(explode(' ',microtime()));\n"; $dosya.= "\n\n";$dosya.= "class load { function myload(\$degisken) { return \$degisken; }}\n";$dosya.= "\n\n";$dosya.= "\$myobj = new load('');\n";$ocall = "\n\n\n#Calling Objects\n";$close = '';for($i=0;$i<10000;$i++) { $objn = $i; $ocall.= "\n\$myobj".($objn)." = clone \$myobj;\n\n"; $ocall.= "\necho \$myobj".($objn)."->myload('execution_function_load".$i."');\n\n"; $ocall.= "\n unset(\$myobj".($objn).");\n\n"; $ocall.= 'echo "\n";';}$dosya.= $ocall ."\n\n";$dosya.= "\$end = (float) array_sum(explode(' ',microtime()));\n";$dosya.= 'echo "Memory Consumption : ".number_format(memory_get_peak_usage())." Mb.";';$dosya.= "\n\n";$dosya.= 'echo "Execution Time : ". sprintf("%.4f", ($end-$start))." Seconds.";';$dosya.= "\n?>";$tut=fopen('testoop4.php','w+');fputs($tut,$dosya);//--- Multi Static$dosya = "<?php\n";$dosya.= "\$start = (float) array_sum(explode(' ',microtime()));\n"; $dosya.= "\n\n";$ocall = "\n\n\n#Calling Objects\n";$close = '';for($i=0;$i<10000;$i++) { $objn = $i; $dosya.= $close."class load".$objn."{\n"; $close = "\n}\n\n"; $ocall.= "\n\$myobj".($objn)." = new load".($objn)."('');\n\n"; $dosya.= "\tpublic static function my_load".$i."(\$degisken) { return \$degisken; }\n"; $ocall.= "\necho load".$objn."::my_load".$i."('execution_function_load".$i."');\n\n"; $ocall.= 'echo "\n";';}$dosya.= "}\n";$dosya.= $ocall ."\n\n";I suggest, check with mod_php. PHP CLI performance far different than mod_php especially under siege$dosya.= "\$end = (float) array_sum(explode(' ',microtime()));\n";$dosya.= 'echo "Memory Consumption : ".number_format(memory_get_peak_usage())." Mb.";';$dosya.= "\n\n";$dosya.= 'echo "Execution Time : ". sprintf("%.4f", ($end-$start))." Seconds.";';$dosya.= "\n?>";$tut=fopen('testoop5.php','w+');fputs($tut,$dosya);?>