Websockify: Pertimbangkan kembali penggunaan dan rekomendasi numpy

Dibuat pada 19 Apr 2013  ·  2Komentar  ·  Sumber: novnc/websockify

Saat ini, websockify/websocket.py akan memberikan peringatan jika "numpy" tidak tersedia:

PERINGATAN: tidak ada modul 'numpy', protokol HyBi lebih lambat atau dinonaktifkan

Ini agak membingungkan. Pertama-tama, HyBi jelas tidak "dinonaktifkan". Dan apakah itu benar-benar lebih lambat? Saya telah melakukan beberapa tes dengan noVNC, dan bahkan ketika memutar video Youtube dengan frame rate tinggi, proses menggunakan websocket.py tidak menghabiskan banyak CPU sama sekali; jarang muncul di daftar "atas" sama sekali. Jadi saya bertanya-tanya, apakah ada pengukuran nyata yang dilakukan pada ini? Saya telah melakukan beberapa Googling dan gagal menemukan apa pun (kecuali masalah dengan numpy ...). IMHO, kecuali kita dapat mengukur bahwa numpy membuat perbedaan besar, saya pikir akan lebih baik dan lebih bersih untuk hanya membutuhkan fungsionalitas Python standar.

question

Komentar yang paling membantu

Bagian "lebih lambat atau dinonaktifkan" adalah karena ada 4 modul python berbeda yang opsional dan diperiksa menggunakan kode yang sama di bagian atas websocket.py. Misalnya, jika modul ssl tidak ditemukan, maka TLS/wss dinonaktifkan. Saya baru saja mendorong perubahan yang akan membuat ini lebih jelas.

Numpy jelas lebih cepat. Menggunakan tes/latency.py + tes/latency.html saya mendapatkan hasil berikut (dengan penundaan pengiriman 10 ms dan hanya berjalan di localhost):

Ukuran paket 2000 byte:

  • Latensi pulang pergi rata-rata 0,8 md dengan numpy
  • Latensi pulang pergi rata-rata 1,6 ms tanpa numpy

Ukuran paket 20000 byte:

  • Latensi pulang pergi rata-rata 2,5 ms dengan numpy
  • Latensi pulang pergi rata-rata 9,2 ms tanpa numpy

Ukuran paket 100000 byte:

  • Latensi pulang pergi rata-rata 6,3 md dengan numpy
  • Latensi perjalanan rata-rata 40.1ms tanpa numpy

Selain itu, dengan ukuran paket 100kb, latensi tidak hanya 6 kali lebih tinggi tanpa numpy, tetapi server mulai tertinggal dan klien harus mundur berulang kali selama pengujian.

Perhatikan bahwa numpy benar-benar hanya memengaruhi pembukaan data klien-> server, jadi untuk penggunaan seperti noVNC pada dasarnya tidak relevan. Namun, websockify bukan hanya untuk noVNC, jadi jika klien mengirim banyak data ke server, numpy memberikan peningkatan kinerja yang signifikan.

Semua 2 komentar

Bagian "lebih lambat atau dinonaktifkan" adalah karena ada 4 modul python berbeda yang opsional dan diperiksa menggunakan kode yang sama di bagian atas websocket.py. Misalnya, jika modul ssl tidak ditemukan, maka TLS/wss dinonaktifkan. Saya baru saja mendorong perubahan yang akan membuat ini lebih jelas.

Numpy jelas lebih cepat. Menggunakan tes/latency.py + tes/latency.html saya mendapatkan hasil berikut (dengan penundaan pengiriman 10 ms dan hanya berjalan di localhost):

Ukuran paket 2000 byte:

  • Latensi pulang pergi rata-rata 0,8 md dengan numpy
  • Latensi pulang pergi rata-rata 1,6 ms tanpa numpy

Ukuran paket 20000 byte:

  • Latensi pulang pergi rata-rata 2,5 ms dengan numpy
  • Latensi pulang pergi rata-rata 9,2 ms tanpa numpy

Ukuran paket 100000 byte:

  • Latensi pulang pergi rata-rata 6,3 md dengan numpy
  • Latensi perjalanan rata-rata 40.1ms tanpa numpy

Selain itu, dengan ukuran paket 100kb, latensi tidak hanya 6 kali lebih tinggi tanpa numpy, tetapi server mulai tertinggal dan klien harus mundur berulang kali selama pengujian.

Perhatikan bahwa numpy benar-benar hanya memengaruhi pembukaan data klien-> server, jadi untuk penggunaan seperti noVNC pada dasarnya tidak relevan. Namun, websockify bukan hanya untuk noVNC, jadi jika klien mengirim banyak data ke server, numpy memberikan peningkatan kinerja yang signifikan.

Terima kasih!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat