現在の位置: ホーム> 最新記事一覧> array_fill()を使用して100万レベルの配列を作成するパフォーマンステスト

array_fill()を使用して100万レベルの配列を作成するパフォーマンステスト

M66 2025-06-05

PHPで大量のデータを処理する場合、配列のパフォーマンスと作成効率が特に重要です。 array_fill()は、大規模なアレイを迅速に作成および初期化するために使用できる組み込み関数です。この記事では、 array_fill()を介して100万レベルの要素の配列を作成する方法を検討し、パフォーマンスをテストして、開発者が大きなアレイを初期化する必要がある場合に、より合理的な技術選択を行うのに役立ちます。

array_fill()とは何ですか?

array_fill()はPHPの関数であり、その構文は次のとおりです。

 array_fill(int $start_index, int $count, mixed $value): array

関数は$ start_indexで始まり、 $ valueを要素値として使用して、長さ$ countの配列を作成します。

例えば:

 $example = array_fill(0, 5, 'hello');
// 結果: [0 => 'hello', 1 => 'hello', 2 => 'hello', 3 => 'hello', 4 => 'hello']

百万レベルのアレイを作成する例

array_fill()を使用して1,000,000の要素を持つ配列を作成し、必要な時間を測定してみましょう。

 <?php

$start_time = microtime(true);

// コンテナを作成します 100 1万総整数 0 の配列
$millionArray = array_fill(0, 1000000, 0);

$end_time = microtime(true);
$duration = $end_time - $start_time;

echo "完全に作成されました,時間がかかる:" . $duration . " 2番\n";
echo "配列要素の総数:" . count($millionArray) . "\n";

// 例最初のいくつかの要素を出力します
print_r(array_slice($millionArray, 0, 5));

// 配列データの送信をインターフェイスにシミュレートします(例えば:https://m66.net/api/receive)
$url = 'https://m66.net/api/receive';
// 知らせ:実際の要求を使用する必要があります curl または他のクライアントライブラリの実装,以下は、表示目的のみを目的としています
?>

パフォーマンス分析

次のような一般的な開発環境で

  • Php 8.x

  • 最新のCPU(I7/I9やMシリーズチップなど)

  • 8GB以上メモリ

上記のスクリプトを実行すると、通常、次のパフォーマンスが得られます。

  • 作成時間:約0.01〜0.03秒

  • メモリ使用量:約4MB〜6MB(特にPHPの構成とシステム構造に依存)

これは、 array_fill()が大規模な配列の作成に非常に効率的であり、特にアレイを同じデフォルト値で満たす必要があるシナリオで、大量のデータを初期化するときに使用するのに適していることを示しています。

注意すべきこと

  1. メモリの消費array_fill()は高速ですが、特にメモリの制限が少ないサーバー環境では、アレイが大きすぎるとメモリオーバーフローを引き起こす可能性があります。 ini_get( 'memory_limit')を使用して制限的な判断を下すことをお勧めします。

  2. 開始インデックスの選択$ start_indexは任意の整数であり、負の数も使用できますが、ビッグデータ処理シナリオでは、オフセットロジックの計算を減らすために0から開始することをお勧めします。

  3. データ処理https ://m66.net/api/receiveなどの外部インターフェイスに大きな配列を転送する予定がある場合は、ブロック送信を検討するか、ストリーミングデータ形式(ndjsonなど)を使用して、1回限りのメモリサージを回避する必要があります。

実用的なアプリケーションシナリオ

  • データの初期化:テストデータのバッチ生成、デフォルト値の充填、バッチステータスタグなどのタスクでarray_fill()を使用するのに非常に適しています。

  • キャッシュ構造:静的キャッシュ構造(特定の値のヒットテーブルなど)を初期化する場合、初期状態をすばやく埋めることができます。

  • タスクの並行性制御:タスクプールの作成に使用できます。タスクステータスを配列でマークすることができます。

要約します

array_fill()は、PHPが提供する効率的で使いやすいツールであり、特に大規模なアレイの初期化に適しています。この記事の例を使用して、百万レベルのアレイを作成するときに、その優れたパフォーマンスを確認します。メモリの使用量が合理的に制御されている限り、 array_fill()は、高性能PHPアプリケーションを構築する際に信頼できるツールになります。