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 :
- -c adalah jumlah user yang akan akses
- -n adalah jumlah request yang akan di akses
- -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.
2 Komentar
mantap gan, selain tools ini ada lagikah
BalasHapusada gan bisa menggunakan npm autocannon ya untuk nodejs
Hapus