Cara Benchmark API Bahasa Pemrograman atau Framework

Result Benchmark

Hallo teman-teman kali ini saya akan berbagi tulisan yang cukup singkat, tentang bagaimana sih cara kita melakukan benchmarking suatu bahasa pemrograman khususnya backend dengan framework yang digunakan nya.

Sedikit mengenal apa sih istilah benchmarking tersebut, benchmarking adalah suatu patokan atau tolak ukur yang digunakan untuk menilai atau membandingkan hal tertentu. Dalam contoh kasus didalam dunia IT kita ingin membandingkan bahasa pemrograman Nodejs dan PHP dengan framework nya.

Tools

Sebenarnya ada banyak tools yang bisa kita gunakan untuk melakukan benchmark API, akan tetapi disini saya menggunakan tools yang bernama apache bench, kenapa menggunakan itu karena ini sudah otomatis terinstall di mac atau linux OS, untuk windows harus install dulu dikoreksi jika salah.

Okay cara menggunakan nya yaitu teman-teman di local bikin satu endpoint api misal pertama dengan bahasa pemrograman PHP framework Laravel url nya http://localhost:8080/ping terus buat kembali satu endpoint dengan bahasa pemrograman Nodejs dengan framework Expressjs url nya http://localhost:3000/ping, lalu jalankan kedua program tersebut dan buka terminal ketikan perintah berikut : 

ab -k -c 100 -n 100 "http://localhost:8080/ping"

lalu test endpoint satu lagi

ab -k -c 100 -n 100 "http://localhost:3000/ping"

nanti akan keluar output kurang lebih seperti ini contoh :

➜  ~ ab -k -c 100 -n 100 -t 1 "http://localhost:3000/"
This is ApacheBench, Version 2.3 <$Revision: 1843412 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Finished 2029 requests


Server Software:        
Server Hostname:        localhost
Server Port:            3000

Document Path:          /
Document Length:        139 bytes

Concurrency Level:      100
Time taken for tests:   1.000 seconds
Complete requests:      2029
Failed requests:        0
Non-2xx responses:      2029
Keep-Alive requests:    2029
Total transferred:      833919 bytes
HTML transferred:       282031 bytes
Requests per second:    2028.96 [#/sec] (mean)
Time per request:       49.286 [ms] (mean)
Time per request:       0.493 [ms] (mean, across all concurrent requests)
Transfer rate:          814.36 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.9      0       6
Processing:     6   48  10.9     47      83
Waiting:        1   48  10.9     47      83
Total:          6   48  10.8     47      85

Percentage of the requests served within a certain time (ms)
  50%     47
  66%     51
  75%     55
  80%     58
  90%     64
  95%     68
  98%     72
  99%     73
 100%     85 (longest request)

penjelasan singkat :

  1. -c adalah jumlah user yang akan akses
  2. -n adalah jumlah request yang akan di akses
  3. -t adalah jumlah eksekusi waktu

Untuk windows instalasinya bisa kunjungi link ini dan deskripsi lengkapnya ada disini

Mungkin segitu yang bisa saya sharing semoga bermanfaat bagi teman-teman, jika ada yang tidak mengerti, ada kesalahan dalam penulisan dan ada yang ingin ditanyakan atau di tambahkan bisa tulis dikolom komentar terimakasih.

Posting Komentar

2 Komentar

  1. mantap gan, selain tools ini ada lagikah

    BalasHapus
    Balasan
    1. ada gan bisa menggunakan npm autocannon ya untuk nodejs

      Hapus