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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
<?php // $Rev: 179 $ error_reporting(E_ALL); include_once('../simple_html_dom.php');
// ----------------------------------------------------------------------------- function dump_memory($init_size) { $peak = number_format(memory_get_peak_usage()/1024, 0, '.', ','); $curr = number_format(memory_get_usage()/1024, 0, '.', ','); $diff = $curr - $init_size; echo 'peak: ' . $peak . ' kb, end: ' . $curr . ' kb, add: ' . $diff . " kb<br>"; }
// ----------------------------------------------------------------------------- $filename = './html/google.htm'; //$filename = 'test.htm';
// ----------------------------------------------------------------------------- // test_load_file_memory function test_load_file_memory($filename, $init_size) { echo '[load file] init memory: '.number_format(memory_get_usage()/1024, 0, '.', ',').'<br>'; echo '--------------------------------------------------------------------<br>'; flush(); for($i=0; $i<3; ++$i) { $str = file_get_contents($filename); dump_memory($init_size); unset($str); } echo 'after loop: '.number_format(memory_get_usage(), 0, '.', ',').'<br>'; echo '--------------------------------------------------------------------<br>'; flush(); }
// ----------------------------------------------------------------------------- // test_multi_objects_str_get_html function test_multi_str_get_html($filename, $init_size) { global $__g_node_mgr; $str = file_get_contents($filename); echo '[str_get_html] init memory: '.number_format(memory_get_usage()/1024, 0, '.', ',').'<br>'; echo '--------------------------------------------------------------------<br>'; flush(); for($i=0; $i<3; ++$i) { $html = str_get_html($str); dump_memory($init_size); flush(); } echo 'after loop: '.number_format(memory_get_usage(), 0, '.', ',').'<br>'; echo '--------------------------------------------------------------------<br>'; flush(); unset($str); }
// ----------------------------------------------------------------------------- // test_multi_file_get_html function test_multi_file_get_html($filename, $init_size) { echo '[file_get_html] init memory: '.number_format(memory_get_usage()/1024, 0, '.', ',').'<br>'; echo '--------------------------------------------------------------------<br>'; flush(); for($i=0; $i<3; ++$i) { $html = file_get_html($filename); //$html->clear(); unset($html); dump_memory($init_size); flush(); } echo 'after loop: '.number_format(memory_get_usage(), 0, '.', ',').'<br>'; echo '--------------------------------------------------------------------<br>'; flush(); } /* // ----------------------------------------------------------------------------- // test_multi_objects_clear_memory function test_multi_objects_file_get_html_clear_memory($filename) { echo '<br><br>[one object]<br>init memory: '.number_format(memory_get_usage(), 0, '.', ',').'<br>'; echo '------------------------------------------<br>'; flush(); $html = new simple_html_dom; for($i=0; $i<3; ++$i) { $html->load_file($filename); $html->clear(); dump_memory(); } unset($dom); echo 'final: '.number_format(memory_get_usage(), 0, '.', ',').'<br>'; flush();
echo '<br><br>[multi objects without clear memory]<br>init memory: '.number_format(memory_get_usage(), 0, '.', ',').'<br>'; echo '------------------------------------------<br>'; flush(); for($i=0; $i<3; ++$i) { $html = file_get_html($filename); dump_memory(); } echo 'final: '.number_format(memory_get_usage(), 0, '.', ',').'<br>'; flush(); */
// ----------------------------------------------------------------------------- // begin test $init_size = number_format(memory_get_usage(), 0, '.', ','); echo 'init ' . $init_size . " bytes<br>"; flush();
echo '<br>before function: '.number_format(memory_get_usage()/1024, 0, '.', ',').'<br>'; test_load_file_memory($filename, $init_size); echo 'after function: '.number_format(memory_get_usage()/1024, 0, '.', ',').'<br><br>'; flush();
echo '<br>before function: '.number_format(memory_get_usage()/1024, 0, '.', ',').'<br>'; test_multi_file_get_html($filename, $init_size); echo 'after function: '.number_format(memory_get_usage()/1024, 0, '.', ',').'<br><br>'; flush();
echo '<br>before function: '.number_format(memory_get_usage()/1024, 0, '.', ',').'<br>'; test_multi_file_get_html($filename, $init_size); echo 'after function: '.number_format(memory_get_usage()/1024, 0, '.', ',').'<br><br>'; flush(); ?>
|