Rumah hujung hadapan web tutorial js Membincangkan isu prestasi kemahiran splicing_javascript tatasusunan rentetan js

Membincangkan isu prestasi kemahiran splicing_javascript tatasusunan rentetan js

May 16, 2016 pm 04:34 PM
rentetan prestasi Penyambungan tatasusunan

Kami tahu bahawa dalam js, penggabungan rentetan ialah salah satu operasi prestasi terendah.
Contohnya:

Salin kod Kod adalah seperti berikut:

var text="Hello";
teks =" Dunia!";
Pelayar awal tidak mengoptimumkan operasi ini.

Oleh kerana rentetan tidak boleh diubah, ini bermakna mencipta rentetan perantaraan untuk menyimpan hasil penggabungan. Kerap mencipta dan memusnahkan rentetan di latar belakang menghasilkan prestasi yang sangat rendah.

Oleh itu, objek tatasusunan boleh digunakan untuk pengoptimuman.

Contohnya:

var buffer=[],i=0; 
buffer[i++]="Hello";  //通过相应索引值添加元素比push方法快 
buffer[i++]=" World!"; 
var text=buffer.join("");
Salin selepas log masuk
Dalam penyemak imbas awal, tiada penciptaan dan pemusnahan rentetan perantaraan Dalam kes penyambungan rentetan yang banyak, teknik ini telah terbukti lebih pantas daripada menggunakan penambahan.


Pada masa kini, pengoptimuman pelayar rentetan telah mengubah keadaan penggabungan rentetan. Safari, Opera, Chrome, Firefox dan IE8 semuanya menunjukkan prestasi yang lebih baik menggunakan pengendali tambahan. Walau bagaimanapun, versi sebelum IE8 tidak dioptimumkan, jadi kaedah tatasusunan masih berfungsi. Ini tidak bermakna kita perlu melakukan pengesanan penyemak imbas apabila penyambungan rentetan. Perkara yang perlu dipertimbangkan semasa memutuskan cara menggabungkan ialah saiz dan bilangan rentetan.

Apabila rentetan agak kecil (kurang daripada 20 aksara) dan bilangan sambungan juga kecil (kurang daripada 1000), semua penyemak imbas boleh melengkapkan sambungan dengan mudah dalam masa kurang daripada 1 milisaat menggunakan operator penambahan. Prestasi menurun dengan ketara dalam IE7 apabila meningkatkan bilangan atau saiz rentetan. Apabila saiz rentetan meningkat, perbezaan prestasi antara operator penambahan dan teknik gubahan tatasusunan dalam Firefox menjadi lebih kecil. Apabila bilangan rentetan bertambah, perbezaan prestasi antara operator penambahan dan teknik gubahan tatasusunan dalam Safari menjadi lebih kecil. Pengendali tambahan dalam Chrome dan Opera sentiasa mendahului apabila menukar nombor atau saiz rentetan.

Oleh itu, disebabkan prestasi yang tidak konsisten di bawah pelbagai pelayar, teknologi yang dipilih bergantung pada situasi sebenar dan pelayar yang anda hadapi.

Dalam kebanyakan kes, pengendali penambahan lebih disukai jika pengguna menggunakan IE6 atau 7, dan saiz rentetannya besar atau banyak, maka teknik tatasusunan adalah berbaloi.


Secara umumnya, jika ia adalah rentetan semantik, Array tidak boleh digunakan, seperti:
'Helo, nama saya ialah ' nama

Jika rentetan ialah "pengulangan situasi yang serupa", adalah disyorkan untuk menggunakan Tatasusunan, seperti:

var array = []; 
for (i = 0; i < length; i++) { 
array[i] = '<li>' + list[i] + '</li'>; 
} 
document.getElementById('somewhere').innerHTML = array.join('\n');
Salin selepas log masuk
Perbandingan prestasi sambungan tatasusunan rentetan js diperkenalkan di sini. Saya harap ia akan membantu semua orang.

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.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

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 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.

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.

Aplikasi fungsi pengelompokan tatasusunan PHP dalam pengisihan data Aplikasi fungsi pengelompokan tatasusunan PHP dalam pengisihan data May 04, 2024 pm 01:03 PM

Fungsi array_group_by PHP boleh mengumpulkan elemen dalam tatasusunan berdasarkan kekunci atau fungsi penutupan, mengembalikan tatasusunan bersekutu dengan kuncinya ialah nama kumpulan dan nilainya ialah tatasusunan elemen kepunyaan kumpulan.

Peranan fungsi pengelompokan tatasusunan PHP dalam mencari elemen pendua Peranan fungsi pengelompokan tatasusunan PHP dalam mencari elemen pendua May 05, 2024 am 09:21 AM

Fungsi array_group() PHP boleh digunakan untuk mengumpulkan tatasusunan dengan kunci yang ditentukan untuk mencari elemen pendua. Fungsi ini berfungsi melalui langkah berikut: Gunakan key_callback untuk menentukan kunci kumpulan. Secara pilihan, gunakan value_callback untuk menentukan nilai kumpulan. Kira elemen terkumpul dan kenal pasti pendua. Oleh itu, fungsi array_group() sangat berguna untuk mencari dan memproses elemen pendua.

Bolehkah tatasusunan digunakan sebagai parameter fungsi? Bolehkah tatasusunan digunakan sebagai parameter fungsi? Jun 04, 2024 pm 04:30 PM

Ya, dalam banyak bahasa pengaturcaraan, tatasusunan boleh digunakan sebagai parameter fungsi, dan fungsi itu akan menjalankan operasi pada data yang disimpan di dalamnya. Sebagai contoh, fungsi printArray dalam C++ boleh mencetak elemen dalam tatasusunan, manakala fungsi printArray dalam Python boleh melintasi tatasusunan dan mencetak elemennya. Pengubahsuaian yang dibuat pada tatasusunan oleh fungsi ini juga ditunjukkan dalam tatasusunan asal dalam fungsi panggilan.

Perbandingan prestasi C++ dengan bahasa lain Perbandingan prestasi C++ dengan bahasa lain Jun 01, 2024 pm 10:04 PM

Apabila membangunkan aplikasi berprestasi tinggi, C++ mengatasi bahasa lain, terutamanya dalam penanda aras mikro. Dalam penanda aras makro, kemudahan dan mekanisme pengoptimuman bahasa lain seperti Java dan C# mungkin berprestasi lebih baik. Dalam kes praktikal, C++ berprestasi baik dalam pemprosesan imej, pengiraan berangka dan pembangunan permainan, dan kawalan langsungnya terhadap pengurusan memori dan akses perkakasan membawa kelebihan prestasi yang jelas.

Perbandingan prestasi rangka kerja Java Perbandingan prestasi rangka kerja Java Jun 04, 2024 pm 03:56 PM

Mengikut penanda aras, untuk aplikasi kecil dan berprestasi tinggi, Quarkus (permulaan pantas, memori rendah) atau Micronaut (TechEmpower cemerlang) adalah pilihan yang ideal. SpringBoot sesuai untuk aplikasi bertindan penuh yang besar, tetapi mempunyai masa permulaan dan penggunaan memori yang lebih perlahan.

See all articles