Lompat ke konten Lompat ke sidebar Lompat ke footer

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 seconds
Complete requests: 250
Keep-Alive requests: 250
Failed requests: 0
HTML transferred: 500 bytes
Total transferred: 50250 bytes
Time per request: 3754.556 [ms] (mean)
Requests per second: 5.33 [#/sec] (mean)
Transfer rate: 1.05 [Kbytes/sec] received
Time per request: 187.728 [ms] (mean, across all concurrent requests) ...
90% 3845
Percentage of the requests served within a certain time (ms) 50% 3755 66% 3804 75% 3818 80% 3825 95% 3858 98% 3874
100% 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"