Pour jouer la carte de la transparence tu trouveras avec ce post le périmètre du benchmark qui est tres simple:
Une base de donnée avec 100 000 entrées dans une table article
l'outil time (linux) utilisé 10 fois sur une page listant dans un tableau html ces 100 000 articles
Les résultats:
- sans framework ni orm: entre 0m0.032s et 0m0.041s
- ORM de Zend framework: entre 0m16.817s et 0m19.180s
- ORM du mkframework: entre 0m3.495s et 0m3.648s
Je joint les fichiers de logs de la commande time,
Ci dessous le code du fichier sans appel orm/mkframework (du php pure)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
<?php
$oPdo = new PDO('mysql:host=localhost;dbname=benchmark', 'root', 'pass');
$stm = $oPdo->prepare('select * from article');
$result = $stm->execute();
?>
<table>
<tr>
<th>id</th>
<th>titre</th>
<th>resume</th>
<th>auteur</th>
</tr>
<?php while( $oArticle = $stm->fetchObject()) : ?>
<tr>
<td><?php echo $oArticle->id ?></td>
<td><?php echo $oArticle->titre ?></td>
<td><?php echo $oArticle->resume ?></td>
<td><?php echo $oArticle->auteur ?></td>
</tr>
<?php endwhile ?>
</table> |
je peux si besoin uploader le dump des 100 000 articles dans une table article, contenant un id, un titre, un resume et un auteur
1 2 3 4 5 6 7
| CREATE TABLE `article` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`titre` varchar(50) NOT NULL,
`resume` text NOT NULL,
`auteur` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1; |
note: pour le tester chez soi, il faut telecharger le zendframework et changer l'include path dans projet "zf",
http://framework.zend.com/releases/Z...12-minimal.zip
et concernant le projet mkframework, il faut également télécharger le framework et modifier l'adresse dans le fichier conf/site.ini.php
http://mkdevs.com/telecharger.html
Partager