Mailinglisten-Archive |
Hi,
Gibt es ein Limit in PHP für die Anzahl der gleichzeitig im Speicher
aktiven Objekte? In meinem unten aufgeführten Beispiel scheint es
maximal ~ 65536 ;-) Objekte geben zu können, das deutet darauf hin,
das dort ein 16Bit Limit irgendwie existiert. Weiss da jemand
genaueres?
Aufgefallen ist mir das bei dem kleinen Progrämmchen zum Testen des
Geschwindigkeitunterschieds zwischen Arrays und dem Abbilden des
ganzen als Objekte.
Source:
<?php
$counter = 65000;
function tstart() {
return array_sum(explode(' ', microtime()));
}
function tend($timer) {
$exec_time = array_sum(explode(' ', microtime())) - $timer;
return "Execution time is $exec_time seconds.<br />";
}
// Array
$t1 = tstart();
$a = array();
for($i=0; $i < $counter; $i++) {
$a[$i] = $i;
}
$t1 = tend($t1);
echo $t1;
// Objects
class vector {
var $data;
function add($index,$object) {
$this->data[$index] = &$object;
}
}
class a {
var $value;
function setValue($v) {
$this->value = $value;
}
}
$t2 = tstart();
$a = new vector;
for($i=0; $i < $counter; $i++) {
$t = new a;
$t->setValue($i);
$a->add($i,$t);
}
$t2 = tend($t2);
echo $t2;
?>
--
Andreas Lange
php::bar PHP Wiki - Listenarchive