/home/mjc1/public_html/lib/html_dom/testcase/reader/memory_test.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
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();
?>