KKUT Docs

Benchmark

KUT 1.0’da desteklenir Benchmark kütüphanesi, yazacağınız sistemin veya kodların performansını test etmek amacıyla oluşturulmuştur. # Kurulum KUT Framework içinde ayrıca paket kurulumu gerek…

This article is currently available in Turkish. Its English translation is being prepared.

KUT 1.0’da desteklenir

Benchmark kütüphanesi, yazacağınız sistemin veya kodların performansını test etmek amacıyla oluşturulmuştur.

Kurulum

Bu bileşen KUT ile birlikte gelir; ayrıca kurulum gerektirmez.

↓ Paket KUT ile birlikte gelir.

Yöntemler

KUT 1.0 void start(string $test)
KUT 1.0 void end(string $test)
KUT 1.0 this run(callable $callback)
KUT 1.0 this cycle(int $count = 1, callable $callback)
KUT 1.0 float elapsedTime(string $result, int $decimal = [[4]])
KUT 1.0 int memoryUsage(bool $realMemory = [[false]])
KUT 1.0 int maxMemoryUsage(bool $realMemory = [[false]])
KUT 1.0 int calculatedMemory(string $result)
KUT 1.0 array usedFiles(string $result = [[NULL]])
KUT 1.0 int usedFileCount(string $result = [[NULL]])

# Start KUT 1.0’da desteklenir

Testi başlatır.

Parametreler

string $test Test adı.
return void

Kullanımı

Benchmark::start('test');
# your codes
Benchmark::end('test');

output(Benchmark::elapsedTime('test'));

# End KUT 1.0’da desteklenir

Testi bitirir.

Parametreler

string $test Test adı.
return void

Kullanımı

Benchmark::start('test');
     # your codes
Benchmark::end('test');

Benchmark::start('test1');
     # your codes
Benchmark::end('test1');

output(Benchmark::elapsedTime('test'));
output(Benchmark::elapsedTime('test1'));

# Run KUT 1.0’da desteklenir

Benchmark::start() ve Benchmark::end() yöntemlerinin yaptığı işlemi yapar.

Parametreler

callable $callback Performansı ölçülecek kodlar.
return this

Opsiyonel Yöntemler

this result()

Kullanımı

File: Controller/TestController.php
 namespace Project\Controllers;

use Benchmark, DB;

class TestController extends Controller
{
    public function main(string $params = NULL)
    {
        $bench = Benchmark::run(function()
        {
            DB::get('users')->result();
        });

        output($bench->result());
    }
}
elapsedTime => double 0.0162 ( length = 6 )
calculatedMemory => double 407640 ( length = 6 )
usedFileCount => integer 18 ( length = 2 )
usedFiles => object
(
        129 => string 'System/Libraries/Database/DBInternalDB.php' ( length = 107 )
        130 => string 'System/Libraries/Database/DBInternalDB.php' ( length = 72 )
        131 => string 'System/Libraries/Database/Connection.php' ( length = 69 )
        132 => string 'System/Libraries/Database/ConnectionInterface.php' ( length = 78 )
        133 => string 'System/Libraries/Database/Database/DBTraitsVariableTypesTrait.php' ( length = 87 )
        134 => string 'System/Libraries/Database/Database/DBTraitsStatementsTrait.php' ( length = 84 )
        135 => string 'System/Libraries/Database/DBTraitsFunctionsTrait.php' ( length = 83 )
        136 => string 'System/Libraries/Database/DBInternalDBInterface.php' ( length = 81 )
        137 => string 'Projects/Example/Config/Database.php' ( length = 63 )
        138 => string 'Projects/Example/Resources/Statics/System/Libraries/Individual/Structures/Support/FacadeSupport.php' ( length = 129 )
        139 => string 'System/Libraries/IndividualStructures/Support/FacadeSupport.php' ( length = 94 )
        140 => string 'System/Libraries/Requirements/Controllers/CallController.php' ( length = 89 )
        141 => string 'System/Libraries/IndividualStructures/Support/FacadeSupportInterface.php' ( length = 103 )
        142 => string 'System/Libraries/Database/DriversPDOPDO.php' ( length = 74 )
        143 => string 'System/Libraries/Database/DriverConnectionMappingAbstract.php' ( length = 90 )
        144 => string 'System/Libraries/Database/Properties.php' ( length = 69 )
        145 => string 'System/Libraries/Database/DriversPDODriversMySQL.php' ( length = 84 )
        146 => string 'System/Libraries/Database/DriversPDODriverInterface.php' ( length = 86 )

 

# Cycle KUT 1.0’da desteklenir

Benchmark::run() kullanımı gibidir. Farklı olarak bir kodu belli sayıda çalıştırmak için kullanılır. Bir nevi çalıştırılacak kodu döngüye sokarak test eder.

Parametreler

int $count = 1 Kodların kaç kez çalıştırılacağı.
callable $callback Performansı ölçülecek kodlar.
return this

Opsiyonel Yöntemler

this result()

Kullanımı

File: Controller/TestController.php
 namespace Project\Controllers;

use Benchmark, DB;

class TestController extends Controller
{
    public function main(string $params = NULL)
    {
        $bench = Benchmark::cycle(1000, function()
        {
            DB::get('users')->result();
        });

        output($bench->result());
    }
}

Yukarıdaki örnekte kodun 1000 kez çalıştırılması sağlanmıştır.

# ElapsedTime KUT 1.0’da desteklenir

Test sonunda geçen süreyi öğrenmek için kullanılır.

Parametreler

string $test Test adı.
int $decimal = 4 Ondalıklı rakam adeti.
return float

Kullanımlar

\Output::writeLine( Benchmark::elapsedTime('test', 5) );
\Output::writeLine( Benchmark::elapsedTime('test1', 6) );
0.87320
0.429302

# MemoryUsage KUT 1.0’da desteklenir

PHP kodlarının sistemde kaç byte yer kapladığını öğrenmek için kullanılır.

Parametreler

bool $realMemory = false Gerçek hafıza miktarı hesaplansın mı?
return float

Kullanımlar

echo Converter::byte( Benchmark::memoryUsage() );
876.9 KB

# MaxMemoryUsage KUT 1.0’da desteklenir

PHP kodlarına ayrılan maksimum bellek miktarını öğrenmek için kullanılır.

Parametreler

bool $realMemory = false Gerçek hafıza miktarı hesaplansın mı?
return float

Kullanımlar

echo Converter::byte( Benchmark::maxMemoryUsage() );
1 MB

# CalculatedMemory KUT 1.0’da desteklenir

Bir PHP kodunun bellekte ne kadar yer kapladığını hesaplamak için kullanılır.

Parametreler

string $test Test adı.
return float

Kullanımlar

echo Benchmark::calculatedMemory('test'); 
echo Benchmark::calculatedMemory('test1');
13882
12231
Uyarı: Bu yöntemin hesaplamaları %100 doğru sonuç vermeyebilir.

# UsedFiles KUT 1.0’da desteklenir

Testte kullanılan dosyaların listesini dizi türünde çıktılar.

Parametreler

string $test Test adı.
return array

Kullanımlar

output( Benchmark::usedFiles('test1') );

# UsedFileCount KUT 1.0’da desteklenir

Testte kullanılan dosyaların sayısını çıktılar.

Parametreler

string $test Test adı.
return int

Kullanımlar

echo Benchmark::usedFileCount('test1');
10
KUT Framework 1.0Katmanlı Uygulama Tabanı

Kur. Uyarla. Türet.