From 2692435705413c7bed7040c2495532b036a6bda5 Mon Sep 17 00:00:00 2001 From: Marco Pivetta Date: Thu, 26 May 2016 21:58:24 +0200 Subject: [PATCH] Benchmarking insert operations for a JTI --- .../InheritanceInsertPerformanceBench.php | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 tests/Doctrine/Performance/Hydration/InheritanceInsertPerformanceBench.php diff --git a/tests/Doctrine/Performance/Hydration/InheritanceInsertPerformanceBench.php b/tests/Doctrine/Performance/Hydration/InheritanceInsertPerformanceBench.php new file mode 100644 index 000000000..220ec5c01 --- /dev/null +++ b/tests/Doctrine/Performance/Hydration/InheritanceInsertPerformanceBench.php @@ -0,0 +1,100 @@ +entityManager = EntityManagerFactory::getEntityManager([ + Company\CompanyPerson::class, + Company\CompanyEmployee::class, + Company\CompanyManager::class, + Company\CompanyOrganization::class, + Company\CompanyEvent::class, + Company\CompanyAuction::class, + Company\CompanyRaffle::class, + Company\CompanyCar::class, + Company\CompanyContract::class, + ]); + + $person = new Company\CompanyEmployee(); + $person->setName('Poor Sales Guy'); + $person->setDepartment('Sales'); + $person->setSalary(100); + $this->entityManager->persist($person); + + for ($i = 0; $i < 33; $i++) { + $this->fixContracts[$i] = new Company\CompanyFixContract(); + $this->fixContracts[$i]->setFixPrice(1000); + $this->fixContracts[$i]->setSalesPerson($person); + $this->fixContracts[$i]->markCompleted(); + + $this->flexContracts[$i] = new Company\CompanyFlexContract(); + $this->flexContracts[$i]->setSalesPerson($person); + $this->flexContracts[$i]->setHoursWorked(100); + $this->flexContracts[$i]->setPricePerHour(100); + $this->flexContracts[$i]->markCompleted(); + + $this->ultraContracts[$i] = new Company\CompanyFlexUltraContract(); + $this->ultraContracts[$i]->setSalesPerson($person); + $this->ultraContracts[$i]->setHoursWorked(150); + $this->ultraContracts[$i]->setPricePerHour(150); + $this->ultraContracts[$i]->setMaxPrice(7000); + } + } + + public function benchInsertFixContracts() + { + array_map([$this->entityManager, 'persist'], $this->fixContracts); + $this->entityManager->flush(); + } + + public function benchInsertFlexContracts() + { + array_map([$this->entityManager, 'persist'], $this->flexContracts); + $this->entityManager->flush(); + } + + public function benchInsertUltraContracts() + { + array_map([$this->entityManager, 'persist'], $this->ultraContracts); + $this->entityManager->flush(); + } + + public function benchInsertAllContracts() + { + array_map([$this->entityManager, 'persist'], $this->fixContracts); + array_map([$this->entityManager, 'persist'], $this->flexContracts); + array_map([$this->entityManager, 'persist'], $this->ultraContracts); + $this->entityManager->flush(); + } +}