2011-03-16 01:22:37 +03:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace Doctrine\Tests\ORM\Performance;
|
|
|
|
|
|
|
|
use Doctrine\ORM\Tools\SchemaTool;
|
|
|
|
use Doctrine\ORM\Query;
|
|
|
|
use Doctrine\Tests\Models\CMS\CmsUser;
|
|
|
|
use Doctrine\Tests\Models\CMS\CmsPhonenumber;
|
|
|
|
use Doctrine\Tests\Models\CMS\CmsAddress;
|
|
|
|
use Doctrine\Tests\Models\CMS\CmsGroup;
|
|
|
|
use Doctrine\Tests\Models\CMS\CmsArticle;
|
|
|
|
use Doctrine\Tests\Models\CMS\CmsComment;
|
|
|
|
|
|
|
|
require_once __DIR__ . '/../../TestInit.php';
|
|
|
|
|
2011-06-19 00:47:21 +04:00
|
|
|
/**
|
|
|
|
* @group performance
|
|
|
|
*/
|
2011-03-16 01:22:37 +03:00
|
|
|
class PersisterPerformanceTest extends \Doctrine\Tests\OrmFunctionalTestCase
|
|
|
|
{
|
|
|
|
protected function setUp()
|
|
|
|
{
|
|
|
|
$this->useModelSet('cms');
|
|
|
|
parent::setUp();
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testFindCmsArticle()
|
|
|
|
{
|
|
|
|
$author = new CmsUser();
|
|
|
|
$author->name = "beberlei";
|
|
|
|
$author->status = "active";
|
|
|
|
$author->username = "beberlei";
|
|
|
|
$this->_em->persist($author);
|
|
|
|
|
|
|
|
$ids = array();
|
|
|
|
for ($i = 0; $i < 100; $i++) {
|
|
|
|
$article = new CmsArticle();
|
|
|
|
$article->text = "foo";
|
|
|
|
$article->topic = "bar";
|
|
|
|
$article->user = $author;
|
|
|
|
$this->_em->persist($article);
|
|
|
|
$ids[] = $article;
|
|
|
|
}
|
|
|
|
$this->_em->flush();
|
|
|
|
$this->_em->clear();
|
|
|
|
|
|
|
|
$start = microtime(true);
|
|
|
|
$articles = $this->_em->getRepository('Doctrine\Tests\Models\CMS\CmsArticle')->findAll();
|
|
|
|
echo "100 CmsArticle findAll(): " . number_format(microtime(true) - $start, 6) . "\n";
|
|
|
|
|
|
|
|
$this->_em->clear();
|
|
|
|
|
|
|
|
$start = microtime(true);
|
|
|
|
$articles = $this->_em->getRepository('Doctrine\Tests\Models\CMS\CmsArticle')->findAll();
|
|
|
|
echo "100 CmsArticle findAll(): " . number_format(microtime(true) - $start, 6) . "\n";
|
|
|
|
|
|
|
|
$this->_em->clear();
|
|
|
|
|
|
|
|
$start = microtime(true);
|
|
|
|
for ($i = 0; $i < 100; $i++) {
|
|
|
|
$articles = $this->_em->getRepository('Doctrine\Tests\Models\CMS\CmsArticle')->find($ids[$i]->id);
|
|
|
|
}
|
|
|
|
echo "100 CmsArticle find(): " . number_format(microtime(true) - $start, 6) . "\n";
|
|
|
|
|
|
|
|
$this->_em->clear();
|
|
|
|
|
|
|
|
$start = microtime(true);
|
|
|
|
for ($i = 0; $i < 100; $i++) {
|
|
|
|
$articles = $this->_em->getRepository('Doctrine\Tests\Models\CMS\CmsArticle')->find($ids[$i]->id);
|
|
|
|
}
|
|
|
|
echo "100 CmsArticle find(): " . number_format(microtime(true) - $start, 6) . "\n";
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testFindCmsGroup()
|
|
|
|
{
|
|
|
|
for ($i = 0; $i < 100; $i++) {
|
|
|
|
$group = new CmsGroup();
|
|
|
|
$group->name = "foo" . $i;
|
|
|
|
$this->_em->persist($group);
|
|
|
|
}
|
|
|
|
$this->_em->flush();
|
|
|
|
$this->_em->clear();
|
|
|
|
|
|
|
|
$start = microtime(true);
|
|
|
|
$articles = $this->_em->getRepository('Doctrine\Tests\Models\CMS\CmsGroup')->findAll();
|
|
|
|
echo "100 CmsGroup: " . number_format(microtime(true) - $start, 6) . "\n";
|
|
|
|
|
|
|
|
$this->_em->clear();
|
|
|
|
|
|
|
|
$start = microtime(true);
|
|
|
|
$articles = $this->_em->getRepository('Doctrine\Tests\Models\CMS\CmsGroup')->findAll();
|
|
|
|
echo "100 CmsGroup: " . number_format(microtime(true) - $start, 6) . "\n";
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testFindCmsUser()
|
|
|
|
{
|
|
|
|
for ($i = 0; $i < 100; $i++) {
|
|
|
|
$user = new CmsUser();
|
|
|
|
$user->name = "beberlei";
|
|
|
|
$user->status = "active";
|
|
|
|
$user->username = "beberlei".$i;
|
|
|
|
$this->_em->persist($user);
|
|
|
|
}
|
|
|
|
|
|
|
|
$this->_em->flush();
|
|
|
|
$this->_em->clear();
|
|
|
|
|
|
|
|
$start = microtime(true);
|
|
|
|
$articles = $this->_em->getRepository('Doctrine\Tests\Models\CMS\CmsUser')->findAll();
|
|
|
|
echo "100 CmsUser: " . number_format(microtime(true) - $start, 6) . "\n";
|
|
|
|
|
|
|
|
$this->_em->clear();
|
|
|
|
|
|
|
|
$start = microtime(true);
|
|
|
|
$articles = $this->_em->getRepository('Doctrine\Tests\Models\CMS\CmsUser')->findAll();
|
|
|
|
echo "100 CmsUser: " . number_format(microtime(true) - $start, 6) . "\n";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|