Rumah hujung hadapan web tutorial js Perbincangan tentang prestasi IO tak segerak bagi Node.js_node.js

Perbincangan tentang prestasi IO tak segerak bagi Node.js_node.js

May 16, 2016 pm 04:34 PM
io node.js tak segerak prestasi

Python dan Ruby juga mempunyai rangka kerja sedemikian, tetapi kerana perpustakaan yang mengandungi kod penyegerakan tidak dapat dielakkan digunakan dalam penggunaan sebenar, mereka belum dewasa Sebelum Node.js, pengaturcaraan bahagian pelayan JavaScript hampir kosong mampu membina pangkalan kod di mana semua IO adalah tak segerak.

Hambatan kebanyakan aplikasi web ialah IO, iaitu cakera membaca dan menulis, rangkaian membaca dan menulis serta pangkalan data membaca dan menulis. Strategi apa yang perlu digunakan untuk menunggu tempoh masa ini menjadi titik utama untuk meningkatkan prestasi.

Strategi PHP: jalankan berbilang proses dan terus tunggu IO selesai. Kelemahan: Pelbagai proses menggunakan berbilang salinan memori, menjadikannya sukar untuk berkongsi data antara proses.
Strategi C/C biasa: dijalankan dalam berbilang urutan, dan program mengekalkan status kunci dengan sendirinya. Kelemahan: kos pembangunan yang tinggi, mudah ralat dan sukar dinyahpepijat.
Python (Tornado): Pelbagai permintaan dilaksanakan secara bergilir-gilir dalam satu proses, bertukar kepada permintaan lain apabila IO ditemui. Kelemahan: Masih bukan penggunaan masa yang paling cekap untuk satu permintaan.
Apakah "penggunaan masa yang paling cekap"? Sebagai contoh, terdapat dua pertanyaan pangkalan data yang tidak berkaitan Dalam PHP, satu biasanya dilaksanakan terlebih dahulu, dan kemudian yang kedua dilaksanakan selepas pelaksanaan selesai (jumlah masa adalah b. Jelas sekali ini bukan yang paling cekap, dan kedua-dua pertanyaan itu hendaklah dilaksanakan pada masa yang sama ialah maks(a, b).

Masalah dengan Python dan bahasa lain yang menyokong multi-threading ialah pada peringkat bahasa, adalah sukar bagi pengaturcara untuk memberitahu mesin maya bahawa dua operasi harus dilakukan pada masa yang sama Walaupun terdapat a Caranya, ia agak menyusahkan, dan kebanyakan orang terlalu malas untuk menggunakannya (Tidak berbaloi untuk menggunakannya). Dan kerana Node.js dengan tergesa-gesa memaksa semua IO untuk dilaksanakan secara tidak segerak, pengaturcara Node.js juga boleh dikatakan biasa dengannya Dengan beberapa perpustakaan yang meningkatkan kebolehbacaan kod (janji, async), mereka boleh dengan mudah membuat operasi yang tidak berkaitan dilaksanakan secara selari. .

Pelaksanaan IO tak segerak telah dibincangkan di atas, jadi apakah kelebihan IO tak segerak? Malah, IO asynchronous tidak boleh mengurangkan tekanan pada pelayan secara ajaib Jika anda perlu menambah pelayan, anda masih perlu menambah pelayan Walau bagaimanapun, IO tak segerak akan mengurangkan masa satu permintaan dan menghapuskan masa menunggu yang tidak bermakna permintaan tunggal. Oleh itu, bilangan permintaan yang diproses setiap unit masa tidak berubah, tetapi masa pemprosesan setiap permintaan telah berkurangan. Dari perspektif ini, pelayan juga menyimpan beberapa sumber - iaitu memori yang digunakan dengan mengekalkan sambungan untuk setiap permintaan.

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Perbandingan prestasi Windows 10 vs. Windows 11: Mana satu yang lebih baik? Perbandingan prestasi Windows 10 vs. Windows 11: Mana satu yang lebih baik? Mar 28, 2024 am 09:00 AM

Perbandingan prestasi Windows 10 vs. Windows 11: Mana satu yang lebih baik? Dengan pembangunan dan kemajuan teknologi yang berterusan, sistem pengendalian sentiasa dikemas kini dan dinaik taraf. Sebagai salah satu pembangun sistem pengendalian terbesar di dunia, siri sistem pengendalian Microsoft Windows sentiasa menarik perhatian ramai pengguna. Pada tahun 2021, Microsoft mengeluarkan sistem pengendalian Windows 11, yang mencetuskan perbincangan dan perhatian yang meluas. Jadi, apakah perbezaan prestasi antara Windows 10 dan Windows 11?

Membandingkan prestasi sistem Win11 dan Win10, yang manakah lebih baik? Membandingkan prestasi sistem Win11 dan Win10, yang manakah lebih baik? Mar 27, 2024 pm 05:09 PM

Sistem pengendalian Windows sentiasa menjadi salah satu sistem pengendalian yang paling banyak digunakan pada komputer peribadi, dan Windows 10 telah lama menjadi sistem pengendalian perdana Microsoft sehingga baru-baru ini apabila Microsoft melancarkan sistem Windows 11 baharu. Dengan pelancaran sistem Windows 11, orang ramai mula berminat dengan perbezaan prestasi antara sistem Windows 10 dan Windows 11 yang mana satu yang lebih baik antara kedua-duanya? Pertama, mari kita lihat W

Prestasi larian tempatan perkhidmatan Embedding melebihi OpenAI Text-Embedding-Ada-002, yang sangat mudah! Prestasi larian tempatan perkhidmatan Embedding melebihi OpenAI Text-Embedding-Ada-002, yang sangat mudah! Apr 15, 2024 am 09:01 AM

Ollama ialah alat super praktikal yang membolehkan anda menjalankan model sumber terbuka dengan mudah seperti Llama2, Mistral dan Gemma secara tempatan. Dalam artikel ini, saya akan memperkenalkan cara menggunakan Ollama untuk mengvektorkan teks. Jika anda belum memasang Ollama secara tempatan, anda boleh membaca artikel ini. Dalam artikel ini kita akan menggunakan model nomic-embed-text[2]. Ia ialah pengekod teks yang mengatasi prestasi OpenAI text-embedding-ada-002 dan text-embedding-3-small pada konteks pendek dan tugas konteks panjang. Mulakan perkhidmatan nomic-embed-text apabila anda telah berjaya memasang o

Perbandingan prestasi rangka kerja Java yang berbeza Perbandingan prestasi rangka kerja Java yang berbeza Jun 05, 2024 pm 07:14 PM

Perbandingan prestasi rangka kerja Java yang berbeza: Pemprosesan permintaan REST API: Vert.x adalah yang terbaik, dengan kadar permintaan 2 kali SpringBoot dan 3 kali Dropwizard. Pertanyaan pangkalan data: HibernateORM SpringBoot adalah lebih baik daripada Vert.x dan ORM Dropwizard. Operasi caching: Pelanggan Hazelcast Vert.x lebih unggul daripada mekanisme caching SpringBoot dan Dropwizard. Rangka kerja yang sesuai: Pilih mengikut keperluan aplikasi Vert.x sesuai untuk perkhidmatan web berprestasi tinggi, SpringBoot sesuai untuk aplikasi intensif data, dan Dropwizard sesuai untuk seni bina perkhidmatan mikro.

Pembalikan nilai kunci tatasusunan PHP: analisis perbandingan prestasi kaedah yang berbeza Pembalikan nilai kunci tatasusunan PHP: analisis perbandingan prestasi kaedah yang berbeza May 03, 2024 pm 09:03 PM

Perbandingan prestasi kaedah membalik nilai kunci tatasusunan PHP menunjukkan bahawa fungsi array_flip() berprestasi lebih baik daripada gelung for dalam tatasusunan besar (lebih daripada 1 juta elemen) dan mengambil masa yang lebih singkat. Kaedah gelung untuk membalikkan nilai kunci secara manual mengambil masa yang agak lama.

Apakah kesan fungsi C++ terhadap prestasi program? Apakah kesan fungsi C++ terhadap prestasi program? Apr 12, 2024 am 09:39 AM

Kesan fungsi pada prestasi program C++ termasuk overhed panggilan fungsi, pembolehubah tempatan dan overhed peruntukan objek: Overhed panggilan fungsi: termasuk peruntukan bingkai tindanan, pemindahan parameter dan pemindahan kawalan, yang mempunyai kesan ketara pada fungsi kecil. Overhed pembolehubah tempatan dan peruntukan objek: Sebilangan besar pembolehubah tempatan atau penciptaan objek dan pemusnahan boleh menyebabkan limpahan tindanan dan kemerosotan prestasi.

Bagaimana untuk mengoptimumkan prestasi program berbilang benang dalam C++? Bagaimana untuk mengoptimumkan prestasi program berbilang benang dalam C++? Jun 05, 2024 pm 02:04 PM

Teknik berkesan untuk mengoptimumkan prestasi berbilang benang C++ termasuk mengehadkan bilangan utas untuk mengelakkan perbalahan sumber. Gunakan kunci mutex ringan untuk mengurangkan perbalahan. Optimumkan skop kunci dan minimumkan masa menunggu. Gunakan struktur data tanpa kunci untuk menambah baik keselarasan. Elakkan sibuk menunggu dan maklumkan urutan ketersediaan sumber melalui acara.

Apakah pertimbangan prestasi untuk fungsi statik C++? Apakah pertimbangan prestasi untuk fungsi statik C++? Apr 16, 2024 am 10:51 AM

Pertimbangan prestasi fungsi statik adalah seperti berikut: Saiz kod: Fungsi statik biasanya lebih kecil kerana ia tidak mengandungi pembolehubah ahli. Pendudukan memori: tidak tergolong dalam mana-mana objek tertentu dan tidak menduduki memori objek. Panggilan overhed: lebih rendah, tidak perlu memanggil melalui penunjuk objek atau rujukan. Selamat berbilang benang: Secara umumnya selamat untuk benang kerana tiada pergantungan pada kejadian kelas.

See all articles