ホームページ ウェブフロントエンド jsチュートリアル js 文字列配列 splicing_javascript スキルのパフォーマンスの問題について議論する

js 文字列配列 splicing_javascript スキルのパフォーマンスの問題について議論する

May 16, 2016 pm 04:34 PM
パフォーマンス スプライシング 配列

js では、文字列の連結が最もパフォーマンスの低い操作の 1 つであることがわかっています。
例:

コードをコピーします コードは次のとおりです:

var text="こんにちは"; テキスト =" 世界!"

初期のブラウザでは、この操作が最適化されていませんでした。

文字列は不変であるため、これは、連結の結果を保存する中間文字列を作成することを意味します。バックグラウンドで頻繁に文字列の作成と破棄を行うと、パフォーマンスが非常に低下します。

したがって、配列オブジェクトを最適化に利用できます。

例:

var buffer=[],i=0; 
buffer[i++]="Hello";  //通过相应索引值添加元素比push方法快 
buffer[i++]=" World!"; 
var text=buffer.join("");
ログイン後にコピー
初期のブラウザでは、中間の文字列の作成と破棄がありませんでした。大量の文字列連結の場合、この手法は加算を使用するよりもはるかに高速であることが証明されています。


最近では、ブラウザーの文字列の最適化により、文字列の連結の状況が変わりました。 Safari、Opera、Chrome、Firefox、IE8 はすべて、加算演算子を使用するとパフォーマンスが向上します。ただし、IE8 より前のバージョンは最適化されていないため、配列メソッドは引き続き機能します。これは、文字列の連結時にブラウザ検出を行う必要があるという意味ではありません。連結方法を決定する際に考慮すべき点は、文字列のサイズと数です。

文字列が比較的小さく (20 文字未満)、接続数も少ない (1000 未満) 場合、すべてのブラウザーは加算演算子を使用して 1 ミリ秒未満で接続を簡単に完了できます。 IE7 では、文字列の数やサイズを増やすとパフォーマンスが大幅に低下します。文字列サイズが大きくなるにつれて、Firefox の加算演算子と配列合成手法の間のパフォーマンスの差は小さくなります。文字列の数が増えると、Safari での加算演算子と配列合成手法のパフォーマンスの差は小さくなります。 Chrome と Opera の加算演算子は、文字列の数やサイズを変更するときに先を行きます。

したがって、さまざまなブラウザーではパフォーマンスに一貫性がないため、選択されるテクノロジーは実際の状況と直面しているブラウザーによって異なります。

ほとんどの場合、加算演算子が推奨されます。ユーザーが主に IE6 または 7 を使用し、文字列のサイズが大きいか文字列の数が多い場合は、配列手法を使用する価値があります。


一般に、それがセマンティック文字列である場合、
のような配列は使用すべきではありません。 「こんにちは、私の名前は ' 名前です。
文字列が「同様の状況の繰り返し」である場合は、
のような配列を使用することをお勧めします。

var array = []; 
for (i = 0; i < length; i++) { 
array[i] = '<li>' + list[i] + '</li'>; 
} 
document.getElementById('somewhere').innerHTML = array.join('\n');
ログイン後にコピー
ここではjs文字列配列接続のパフォーマンス比較を紹介しますので、皆様のお役に立てれば幸いです。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

さまざまな Java フレームワークのパフォーマンスの比較 さまざまな Java フレームワークのパフォーマンスの比較 Jun 05, 2024 pm 07:14 PM

さまざまな Java フレームワークのパフォーマンス比較: REST API リクエスト処理: Vert.x が最高で、リクエスト レートは SpringBoot の 2 倍、Dropwizard の 3 倍です。データベース クエリ: SpringBoot の HibernateORM は Vert.x や Dropwizard の ORM よりも優れています。キャッシュ操作: Vert.x の Hazelcast クライアントは、SpringBoot や Dropwizard のキャッシュ メカニズムよりも優れています。適切なフレームワーク: アプリケーションの要件に応じて選択します。Vert.x は高パフォーマンスの Web サービスに適しており、SpringBoot はデータ集約型のアプリケーションに適しており、Dropwizard はマイクロサービス アーキテクチャに適しています。

PHP 配列キー値の反転: さまざまな方法のパフォーマンス比較分析 PHP 配列キー値の反転: さまざまな方法のパフォーマンス比較分析 May 03, 2024 pm 09:03 PM

PHP の配列キー値の反転メソッドのパフォーマンスを比較すると、array_flip() 関数は、大規模な配列 (100 万要素以上) では for ループよりもパフォーマンスが良く、所要時間が短いことがわかります。キー値を手動で反転する for ループ方式は、比較的長い時間がかかります。

C++ でマルチスレッド プログラムのパフォーマンスを最適化するにはどうすればよいですか? C++ でマルチスレッド プログラムのパフォーマンスを最適化するにはどうすればよいですか? Jun 05, 2024 pm 02:04 PM

C++ マルチスレッドのパフォーマンスを最適化するための効果的な手法には、リソースの競合を避けるためにスレッドの数を制限することが含まれます。競合を軽減するには、軽量のミューテックス ロックを使用します。ロックの範囲を最適化し、待ち時間を最小限に抑えます。ロックフリーのデータ構造を使用して同時実行性を向上させます。ビジー待機を回避し、イベントを通じてリソースの可用性をスレッドに通知します。

データソートにおけるPHP配列グループ化機能の応用 データソートにおけるPHP配列グループ化機能の応用 May 04, 2024 pm 01:03 PM

PHP の array_group_by 関数は、キーまたはクロージャ関数に基づいて配列内の要素をグループ化し、キーがグループ名、値がグループに属する要素の配列である連想配列を返すことができます。

重複要素の検索における PHP 配列グループ化関数の役割 重複要素の検索における PHP 配列グループ化関数の役割 May 05, 2024 am 09:21 AM

PHP の array_group() 関数を使用すると、指定したキーで配列をグループ化し、重複する要素を見つけることができます。この関数は次の手順で動作します。 key_callback を使用してグループ化キーを指定します。必要に応じて、value_callback を使用してグループ化値を決定します。グループ化された要素をカウントし、重複を特定します。したがって、array_group() 関数は、重複する要素を見つけて処理するのに非常に役立ちます。

C++ と他の言語のパフォーマンスの比較 C++ と他の言語のパフォーマンスの比較 Jun 01, 2024 pm 10:04 PM

高パフォーマンスのアプリケーションを開発する場合、C++ は、特にマイクロベンチマークで他の言語よりも優れたパフォーマンスを発揮します。マクロベンチマークでは、Java や C# などの他の言語の利便性と最適化メカニズムの方がパフォーマンスが優れている場合があります。実際のケースでは、C++ は画像処理、数値計算、ゲーム開発で優れたパフォーマンスを発揮し、メモリ管理とハードウェア アクセスを直接制御することで明らかなパフォーマンス上の利点をもたらします。

配列を関数のパラメータとして使用できますか? 配列を関数のパラメータとして使用できますか? Jun 04, 2024 pm 04:30 PM

はい、多くのプログラミング言語では、配列を関数のパラメーターとして使用でき、関数はそこに格納されているデータに対して操作を実行します。たとえば、C++ の printArray 関数は配列内の要素を出力できますが、Python の printArray 関数は配列を走査してその要素を出力できます。これらの関数によって配列に加えられた変更は、呼び出し関数の元の配列にも反映されます。

Java フレームワークのパフォーマンス比較 Java フレームワークのパフォーマンス比較 Jun 04, 2024 pm 03:56 PM

ベンチマークによると、小規模で高性能なアプリケーションの場合、Quarkus (高速起動、低メモリ) または Micronaut (TechEmpower に優れた) が理想的な選択肢です。 SpringBoot は大規模なフルスタック アプリケーションに適していますが、起動時間とメモリ使用量が若干遅くなります。

See all articles