/var/www/html_us/wp-content/plugins/revslider/admin/includes/debug.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
<?php

if( !defined'ABSPATH') ) exit();

class 
RevSliderMemoryUsageInformation
{

    private 
$real_usage;
    private 
$statistics = array();

    
// Memory Usage Information constructor
    
public function __construct($real_usage false)
    {
        
$this->real_usage $real_usage;
    }

    
// Returns current memory usage with or without styling
    
public function getCurrentMemoryUsage($with_style true)
    {
        
$mem memory_get_usage($this->real_usage);
        return (
$with_style) ? $this->byteFormat($mem) : $mem;
    }

    
// Returns peak of memory usage
    
public function getPeakMemoryUsage($with_style true)
    {
        
$mem memory_get_peak_usage($this->real_usage);
        return (
$with_style) ? $this->byteFormat($mem) : $mem;
    }

    
// Set memory usage with info
    
public function setMemoryUsage($info '')
    {
        
$this->statistics[] = array(
            
'time' => time(), //microtime(),
            
'info' => $info,
            
'memory_usage' => $this->getCurrentMemoryUsage());
    }

    
// Print all memory usage info and memory limit and 
    
public function printMemoryUsageInformation()
    {
        
//return true;
        
echo '<pre>';
        foreach (
$this->statistics as $satistic)
        {
            echo 
"Time: " $satistic['time'] .
            
" | Memory Usage: " $satistic['memory_usage'] .
            
" | Info: " $satistic['info'];
            echo 
"\n";
        }
        echo 
"\n\n";
        echo 
"Peak of memory usage: " $this->getPeakMemoryUsage();
        echo 
"\n\n";
        echo 
'</pre>';
    }

    
// Set start with default info or some custom info
    
public function setStart($info 'Initial Memory Usage')
    {
        
$this->setMemoryUsage($info);
    }

    
// Set end with default info or some custom info
    
public function setEnd($info 'Memory Usage at the End')
    {
        
$this->setMemoryUsage($info);
    }

    
// Byte formatting
    
private function byteFormat($bytes$unit ""$decimals 2)
    {
        
$units = array('B' => 0'KB' => 1'MB' => 2'GB' => 3'TB' => 4,
            
'PB' => 5'EB' => 6'ZB' => 7'YB' => 8);

        
$value 0;
        if (
$bytes 0)
        {
            
// Generate automatic prefix by bytes 
            // If wrong prefix given
            
if (!array_key_exists($unit$units))
            {
                
$pow floor(log($bytes) / log(1024));
                
$unit array_search($pow$units);
            }

            
// Calculate byte value by prefix
            
$value = ($bytes pow(1024floor($units[$unit])));
        }

        
// If decimals is not numeric or decimals is less than 0 
        // then set default value
        
if (!is_numeric($decimals) || $decimals 0)
        {
            
$decimals 2;
        }

        
// Format output
        
return sprintf('%.' $decimals 'f ' $unit$value);
    }

}