Versio

Benchmarking tool

Twee kleine functies (benchMark en convertBytes) om je PHP pagina's of scripts te benchmarken op tijd en op gebruik van server geheugen.

function benchMark($action, $name = FALSE, $show = FALSE)
argumenten:
- $action (start, status, stop, short_summary, long_summary)
- $name (naam van de benchmark)
- $show (als je TRUE mee geeft worden de huidige waarden van deze benchmark getoond, ander geeft retourneerd de functie TRUE)

start een benchmark als volgt:
benchMark('start','benchmark_naam');

als je tussen tijds wild weten wat de benchmark nu is gebruik je:
echo benchMark('status','benchmark_naam', TRUE);

stoppen van een benchmark als volgt:
benchMark('stop','benchmark_naam');

Als je aan het einde van je script/pagina een overzicht wild hebben van alle benchmarks gebruik je argument $action met de waarde long_summary.
echo benchMark('long_summary');

Als je short_summary meegeeft krijg je een totaal terug en ruimt hij de global $benchMarks op, ok leegt hij het ;)
echo benchMark('short_summary');

de functie convertBytes is er alleen voor omzetting van de bytes naar de hoogst mogelijke opslageenheid

Ik hoop dat dit script jullie kan helpen!

Gesponsorde koppelingen

PHP script bestanden

  1. benchMark.php

 

4 reacties op 'Benchmarking tool'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Pim -
Pim -
2 jaar geleden
 
1 +1 -0 -1
Dit kan toch veel mooier met een klasse?
Sander Wieland
Sander Wieland
2 jaar geleden
 
1 +1 -0 -1
@pim dat klopt helemaal!
maar waarvoor ik het nodig had is dit even simpeler ;)
Danny Roelofs
Danny Roelofs
2 jaar geleden
 
0 +1 -0 -1
Dank je, ja het script heeft me geholpen voor mijn project zodat ik zelf ook kon zien hoe het verbruik een beetje verliep, heb het alleen dan wat beperkt tot dat gene wat ik nodig had.

Ben geen kei in OOP, zal wel wat op aan te merken zijn (dat overkomt me vaak) maar ik dump het hier wel gelijk, voor wie er plezier aan beleeft.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php

class Benchmark
{


    private $i_CurrentMemory;
    private $i_EndMemory;
    private $i_DiffMemory;
    private $i_CurrentTime;
    private $i_EndTime;
    private $i_DiffTime;

    public function __construct()
    {



        $this->Start();
    }


    public function Start()
    {

        $this->i_CurrentMemory        =    memory_get_usage();
        $this->i_CurrentTime        =    microtime(true);
    }


    private function Stop()
    {

        $this->i_EndMemory        =    memory_get_usage();
        $this->i_EndTime        =    microtime(true);
        $this->i_DiffMemory        =    $this->i_EndMemory - $this->i_CurrentMemory;
        $this->i_DiffTime        =    $this->i_EndTime - $this->i_CurrentTime;
    }


    public function Summary()
    {

        $this->Stop();
        $a_Data['MemoryUsage']    =    $this->ConvertBytes($this->i_DiffMemory);
        $a_Data['MemoryAtStart']=    $this->ConvertBytes($this->i_CurrentMemory);
        $a_Data['MemoryAtEnd']    =    $this->ConvertBytes(memory_get_usage());
        $a_Data['MemoryPeak']    =    $this->ConvertBytes(memory_get_peak_usage());
        $a_Data['MemoryPhp']    =    $this->ConvertBytes(memory_get_peak_usage(true));
        $a_Data['TimeUsed']        =    round($this->i_DiffTime,3);
        return $a_Data;
    }


    private function ConvertBytes($i_Size)
    {

        $a_Sizes=array('b','kb','mb','gb','tb','pb');
        return @round($i_Size/pow(1024,($i=floor(log($i_Size,1024)))),2).' '.$a_Sizes[$i];
    }

}

?>
Sander Wieland
Sander Wieland
2 jaar geleden
 
0 +1 -0 -1
@danny ziet er zo ver goed uit hoor, alleen kan je tussen tijds niet even de waarden checken.

Om te reageren heb je een account nodig en je moet ingelogd zijn.