Benchmarking tool

Door Sander Wieland, 17 jaar geleden, 5.572x bekeken

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

 

Er zijn 4 reacties op 'Benchmarking tool'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Pim -
Pim -
17 jaar geleden
 
Dit kan toch veel mooier met een klasse?
Sander Wieland
Sander Wieland
17 jaar geleden
 
@pim dat klopt helemaal!
maar waarvoor ik het nodig had is dit even simpeler ;)
Danny Roelofs
Danny Roelofs
17 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];
    }

}

?>
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Sander Wieland
Sander Wieland
17 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.

Inhoudsopgave

  1. benchMark.php

Labels

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.