UnitOfWorkPerformanceTest.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. namespace Doctrine\Tests\ORM\Performance;
  3. require_once __DIR__ . '/../../TestInit.php';
  4. use Doctrine\Tests\Models\CMS\CmsUser;
  5. /**
  6. * Description of InsertPerformanceTest
  7. *
  8. * @author robo
  9. * @group performance
  10. */
  11. class UnitOfWorkPerformanceTest extends \Doctrine\Tests\OrmPerformanceTestCase
  12. {
  13. protected function setUp()
  14. {
  15. $this->useModelSet('cms');
  16. parent::setUp();
  17. }
  18. public function testComputeChanges()
  19. {
  20. $n = 100;
  21. $users = array();
  22. for ($i=1; $i<=$n; ++$i) {
  23. $user = new CmsUser;
  24. $user->status = 'user';
  25. $user->username = 'user' . $i;
  26. $user->name = 'Mr.Smith-' . $i;
  27. $this->_em->persist($user);
  28. $users[] = $user;
  29. }
  30. $this->_em->flush();
  31. foreach ($users AS $user) {
  32. $user->status = 'other';
  33. $user->username = $user->username . '++';
  34. $user->name = str_replace('Mr.', 'Mrs.', $user->name);
  35. }
  36. $s = microtime(true);
  37. $this->_em->flush();
  38. $e = microtime(true);
  39. echo ' Compute ChangeSet '.$n.' objects in ' . ($e - $s) . ' seconds' . PHP_EOL;
  40. }
  41. }