diff --git a/benchmark/query_cache.php b/benchmark/query_cache.php new file mode 100644 index 000000000..270451196 --- /dev/null +++ b/benchmark/query_cache.php @@ -0,0 +1,71 @@ +hasColumn('id', 'integer', 20, 'autoincrement|primary'); + $this->hasColumn('name', 'string', 50); + } +} + +$dbh = new Doctrine_Db('sqlite:test.db'); +$conn = Doctrine_Manager::getInstance()->openConnection($dbh); +// initialize some entities + +$coll = new Doctrine_Collection('Entity'); +$i = 10; +while ($i--) { + $coll[$i]->name = 'e ' . $i; +} +$coll->save(); +$conn->clear(); + +$timepoint = microtime(true); + +$i = 100; +$query = new Doctrine_Query(); +$query->setOption('resultSetCache', new Doctrine_Cache_Array()); + +while ($i--) { + $query->from('Entity e')->where('e.id > 0'); + $coll = $query->execute(array(), Doctrine::FETCH_ARRAY); +} +print 'EXECUTED 100 QUERIES WITH CACHING ENABLED + FETCH_ARRAY : ' . (microtime(true) - $timepoint) . "
"; + +$timepoint = microtime(true); + +$i = 100; + +while ($i--) { + $query = new Doctrine_Query(); + $query->from('Entity e')->where('e.id > 0'); + $coll = $query->execute(array(), Doctrine::FETCH_ARRAY); +} +print 'EXECUTED 100 QUERIES WITHOUT CACHING + FETCH_ARRAY : ' . (microtime(true) - $timepoint); + +$timepoint = microtime(true); + +$i = 100; +$query = new Doctrine_Query(); +$query->setOption('resultSetCache', new Doctrine_Cache_Array()); + +while ($i--) { + $query->from('Entity e')->where('e.id > 0'); + $coll = $query->execute(); +} +print 'EXECUTED 100 QUERIES WITH CACHING ENABLED + FETCH_RECORD : ' . (microtime(true) - $timepoint) . "
"; + +$timepoint = microtime(true); + +$i = 100; + +while ($i--) { + $query = new Doctrine_Query(); + $query->from('Entity e')->where('e.id > 0'); + $coll = $query->execute(); +} +print 'EXECUTED 100 QUERIES WITHOUT CACHING + FETCH_RECORD : ' . (microtime(true) - $timepoint);