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
|
<?php // $Rev: 130 $ // ----------------------------------------------------------------------------- error_reporting(E_ALL);
include_once('../../simple_html_dom_reader.php');
$filename = '../html/google.htm';
function dump_memory() { echo 'peak: ' . number_format(memory_get_peak_usage(), 0, '.', ',') . ' bytes, end: ' . number_format(memory_get_usage(), 0, '.', ',') . " bytes<br>"; }
function stat_dom($dom) { $count_text = 0; $count_comm = 0; $count_elem = 0; $count_tag_end = 0; foreach($dom->nodes as $n) { if ($n->nodetype==HDOM_TYPE_TEXT) ++$count_text; if ($n->nodetype==HDOM_TYPE_COMMENT) ++$count_comm; if ($n->nodetype==HDOM_TYPE_ELEMENT) ++$count_elem; if ($n->nodetype==HDOM_TYPE_ENDTAG) ++$count_tag_end; } echo 'Total: '. count($dom->nodes).', Text: '.$count_text.', Commnet: '.$count_comm.', Tag: '.$count_elem.', End Tag: '.$count_tag_end.'<br>'; }
echo 'init ' . number_format(memory_get_usage(), 0, '.', ',') . " bytes";
echo '<br><br>[load file]<br>init memory: '.number_format(memory_get_usage(), 0, '.', ',').'<br>'; echo '------------------------------------------<br>'; flush(); for($i=0; $i<3; ++$i) { $str = file_get_contents($filename); unset($str); dump_memory(); } echo 'final: '.number_format(memory_get_usage(), 0, '.', ',').'<br>'; flush();
$str = file_get_contents($filename); echo '<br><br>[multi objects str_get_dom clear memory]<br>init memory: '.number_format(memory_get_usage(), 0, '.', ',').'<br>'; echo '------------------------------------------<br>'; flush(); for($i=0; $i<3; ++$i) { $dom = str_get_dom($str); //stat_dom($dom); $dom->clear(); unset($dom); dump_memory(); flush(); } echo 'final: '.number_format(memory_get_usage(), 0, '.', ',').'<br>'; flush();
echo '<br><br>[multi objects file_get_dom clear memory]<br>init memory: '.number_format(memory_get_usage(), 0, '.', ',').'<br>'; echo '------------------------------------------<br>'; flush(); for($i=0; $i<3; ++$i) { $dom = file_get_dom($filename); //stat_dom($dom); $dom->clear(); unset($dom); dump_memory(); flush(); } echo 'final: '.number_format(memory_get_usage(), 0, '.', ',').'<br>'; flush();
echo '<br><br>[one object]<br>init memory: '.number_format(memory_get_usage(), 0, '.', ',').'<br>'; echo '------------------------------------------<br>'; flush(); $dom = new simple_html_dom; for($i=0; $i<3; ++$i) { $dom->load_file($filename); $dom->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) { $dom = file_get_dom($filename); dump_memory(); } echo 'final: '.number_format(memory_get_usage(), 0, '.', ',').'<br>'; flush(); ?>
|