Pembuatan Profile NODEJS #2
Sekarang asumsikan bahwa kita telah menerapkan aplikasi kita dan pengguna mengeluh tentang latensi tinggi pada permintaan. Kita dapat dengan mudah menjalankan aplikasi dengan profiler bawaan:
NODE_ENV=production node --prof app.js
dan letakkan beberapa beban di server menggunakan ab (ApacheBench):
curl -X GET "http://localhost:8080/newUser?username=matt&password=password"
ab -k -c 20 -n 250 "http://localhost:8080/auth?username=matt&password=password"
dan ambil url dari ab:
Concurrency Level: 20
Time taken for tests: 46.932 secondsComplete requests: 250Keep-Alive requests: 250Failed requests: 0HTML transferred: 500 bytesTotal transferred: 50250 bytesTime per request: 3754.556 [ms] (mean)Requests per second: 5.33 [#/sec] (mean)Transfer rate: 1.05 [Kbytes/sec] receivedTime per request: 187.728 [ms] (mean, across all concurrent requests) ...90% 3845Percentage of the requests served within a certain time (ms) 50% 3755 66% 3804 75% 3818 80% 3825 95% 3858 98% 3874100% 4225 (longest request)99% 3875
Dari keluaran ini, kami melihat bahwa kami hanya mengelola untuk melayani sekitar 5 permintaan per detik dan bahwa permintaan rata-rata membutuhkan waktu kurang dari 4 detik pulang pergi. Dalam contoh dunia nyata, kami dapat melakukan banyak pekerjaan di banyak fungsi atas nama permintaan pengguna tetapi bahkan dalam contoh sederhana kami, waktu dapat hilang dalam menyusun ekspresi reguler, menghasilkan garam acak, menghasilkan hash unik dari kata sandi pengguna, atau di dalam kerangka Express itu sendiri.
Karena kami menjalankan aplikasi kami menggunakan opsi --prof, file centang dibuat di direktori yang sama dengan menjalankan aplikasi lokal Anda. Ini harus memiliki bentuk isolate-0xnnnnnnnnnnnn-v8.log (di mana n adalah digit).
Untuk memahami file ini, kita perlu menggunakan prosesor tick yang dibundel dengan biner Node.js. Untuk menjalankan prosesor, gunakan tanda --prof-proses:
Posting Komentar untuk "Pembuatan Profile NODEJS #2"