3 namespace Doctrine\Tests\ORM\Performance;
5 use Doctrine\ORM\Tools\SchemaTool;
6 use Doctrine\ORM\Query;
7 use Doctrine\Tests\Models\CMS\CmsUser;
8 use Doctrine\Tests\Models\CMS\CmsPhonenumber;
9 use Doctrine\Tests\Models\CMS\CmsAddress;
10 use Doctrine\Tests\Models\CMS\CmsGroup;
11 use Doctrine\Tests\Models\CMS\CmsArticle;
12 use Doctrine\Tests\Models\CMS\CmsComment;
14 require_once __DIR__ . '/../../TestInit.php';
19 class PersisterPerformanceTest extends \Doctrine\Tests\OrmFunctionalTestCase
21 protected function setUp()
23 $this->useModelSet('cms');
27 public function testFindCmsArticle()
29 $author = new CmsUser();
30 $author->name = "beberlei";
31 $author->status = "active";
32 $author->username = "beberlei";
33 $this->_em->persist($author);
36 for ($i = 0; $i < 100; $i++) {
37 $article = new CmsArticle();
38 $article->text = "foo";
39 $article->topic = "bar";
40 $article->user = $author;
41 $this->_em->persist($article);
47 $start = microtime(true);
48 $articles = $this->_em->getRepository('Doctrine\Tests\Models\CMS\CmsArticle')->findAll();
49 echo "100 CmsArticle findAll(): " . number_format(microtime(true) - $start, 6) . "\n";
53 $start = microtime(true);
54 $articles = $this->_em->getRepository('Doctrine\Tests\Models\CMS\CmsArticle')->findAll();
55 echo "100 CmsArticle findAll(): " . number_format(microtime(true) - $start, 6) . "\n";
59 $start = microtime(true);
60 for ($i = 0; $i < 100; $i++) {
61 $articles = $this->_em->getRepository('Doctrine\Tests\Models\CMS\CmsArticle')->find($ids[$i]->id);
63 echo "100 CmsArticle find(): " . number_format(microtime(true) - $start, 6) . "\n";
67 $start = microtime(true);
68 for ($i = 0; $i < 100; $i++) {
69 $articles = $this->_em->getRepository('Doctrine\Tests\Models\CMS\CmsArticle')->find($ids[$i]->id);
71 echo "100 CmsArticle find(): " . number_format(microtime(true) - $start, 6) . "\n";
74 public function testFindCmsGroup()
76 for ($i = 0; $i < 100; $i++) {
77 $group = new CmsGroup();
78 $group->name = "foo" . $i;
79 $this->_em->persist($group);
84 $start = microtime(true);
85 $articles = $this->_em->getRepository('Doctrine\Tests\Models\CMS\CmsGroup')->findAll();
86 echo "100 CmsGroup: " . number_format(microtime(true) - $start, 6) . "\n";
90 $start = microtime(true);
91 $articles = $this->_em->getRepository('Doctrine\Tests\Models\CMS\CmsGroup')->findAll();
92 echo "100 CmsGroup: " . number_format(microtime(true) - $start, 6) . "\n";
95 public function testFindCmsUser()
97 for ($i = 0; $i < 100; $i++) {
98 $user = new CmsUser();
99 $user->name = "beberlei";
100 $user->status = "active";
101 $user->username = "beberlei".$i;
102 $this->_em->persist($user);
108 $start = microtime(true);
109 $articles = $this->_em->getRepository('Doctrine\Tests\Models\CMS\CmsUser')->findAll();
110 echo "100 CmsUser: " . number_format(microtime(true) - $start, 6) . "\n";
114 $start = microtime(true);
115 $articles = $this->_em->getRepository('Doctrine\Tests\Models\CMS\CmsUser')->findAll();
116 echo "100 CmsUser: " . number_format(microtime(true) - $start, 6) . "\n";