forked from doctrine/mongodb-odm
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMemoryUsageTest.php
52 lines (41 loc) · 1.29 KB
/
MemoryUsageTest.php
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?php
namespace Doctrine\ODM\MongoDB\Tests\Performance;
use Documents\CmsPhonenumber;
use Documents\CmsUser;
/**
* @group performance
*/
class MemoryUsageTest extends \Doctrine\ODM\MongoDB\Tests\BaseTest
{
/**
* [jwage: Memory increased by 14.09 kb]
*/
public function testMemoryUsage()
{
$memoryUsage = array();
for ($i = 0; $i < 100; $i++) {
$ph1 = new CmsPhonenumber();
$ph1->phonenumber = '12345';
$ph2 = new CmsPhonenumber();
$ph2->phonenumber = '12346';
$user = new CmsUser();
$user->username = 'jwage';
$user->addPhonenumber($ph1);
$user->addPhonenumber($ph2);
$this->dm->persist($user);
$this->dm->flush();
$this->dm->clear();
gc_collect_cycles();
$memoryUsage[] = memory_get_usage();
}
$start = current($memoryUsage);
$end = end($memoryUsage);
$increase = $end - $start;
echo sprintf('Memory increased by %s', $this->formatMemory($increase)) . PHP_EOL;
}
private function formatMemory($size)
{
$unit = array('b', 'kb', 'mb', 'gb', 'tb', 'pb');
return round($size / pow(1024, ($i = floor(log($size, 1024)))), 2) . ' ' . $unit[$i];
}
}