Izinkan browser menggunakan lebih banyak core

1

Saya menulis sebuah algoritma dengan JavaScript. Ketika saya menjalankannya di Google Chrome, dibutuhkan sekitar 30 menit, yang cukup lama.
Ketika saya membuka task manager selama perhitungan, saya dapat melihat bahwa Chrome membutuhkan sekitar 25% CPU saya, jadi 1 dari 4 core saya.

Apakah mungkin, untuk mengizinkan Chrome menggunakan lebih banyak CPU saya, katakanlah 3 dari 4, sehingga perhitungannya akan dieksekusi lebih cepat?

PS: Saya tidak keberatan menggunakan browser lain (mis. Firefox) jika Chrome tidak mendukung itu.

user584127
sumber

Jawaban:

4

JavaScript standar adalah uni-threaded: hanya dapat menjalankan satu program pada satu CPU (inti).

Untuk apa yang Anda gambarkan, Anda mungkin harus mempartisi dataset Anda menjadi potongan-potongan dan membuat yang terpisah Pekerja Web JavaScript menjalankan algoritme Anda untuk memproses setiap chunk. Ini mengasumsikan bahwa Anda memiliki dataset yang seragam secara struktural. (Hati-hati dengan kondisi batas.)

Menggunakan Pekerja Web secara efektif membutuhkan pemahaman bagaimana menulis ulang algoritma serial sebagai paralel dan aspek lain dari pemrograman multi-threaded - yang semuanya memerlukan keterampilan pemrograman tingkat lanjut.

Pekerja Web JavaScript adalah unit eksekusi mandiri mandiri (utas), terpisah dan terisolasi dari program utama dan dari satu sama lain. Komunikasi antara program utama dan Pekerja Web, dan antara Pekerja Web itu sendiri, adalah melalui pesan data yang digerakkan oleh peristiwa.

Sistem operasi host dapat mengeksekusi masing-masing utas Pekerja Web pada inti yang terpisah, memungkinkan pemanfaatan hingga 100% kapasitas CPU.

Pekerja Web dirancang untuk menjadi hanya unit perhitungan. Mereka tidak memiliki akses ke DOM atau komponen browser terkait DOM, seperti jendela . (Ini menghindari semua jenis masalah potensial dengan akses serial ke mereka.) Jadi, setiap output yang akan ditampilkan harus diteruskan kembali dari Pekerja ke utas utama.

Semua browser terbaru menawarkan beberapa tingkat dukungan untuk Pekerja Web. Tabel di bagian bawah halaman API Pekerja Web Mozilla, https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API , menunjukkan masing-masing browser dan dukungan versi untuk berbagai fitur Pekerja Web.

Primer yang baik tentang menggunakan Pekerja Web:

http://www.html5rocks.com/en/tutorials/workers/basics/

Brian Howell
sumber