19

parse_ini_file().ini ファイルに設定を保存し、PHPで値を取得する人がいることを知っています。テストを実行していないので、パフォーマンスに興味があります。

設定がiniファイルにある場合、オペコードキャッシュがこのタイプのものをキャッシュできるかどうか知っていますか?

4

5 に答える 5

26

ウェブアーカイブから取得したこの古いブログ投稿によると。

最速から低速へ:

  1. シリアライズされた配列
  2. プレーンな PHP コード
  3. INI ファイル
  4. XML ファイル
  5. YAML ファイル

編集 (2012 年 8 月 2 日)

APCまたは他のアクセラレーターがサーバーで使用可能な場合、プレーン PHP ファイルは、一度だけ解析され、後で使用するためにメモリに保持されるため、最も高速です。

于 2010-01-22T21:01:15.610 に答える
13

質問の他の部分について:オペコードキャッシュがiniファイルをキャッシュする場合。これを書いている時点で、私のバージョンの PHP 5.3.5 では、APC キャッシュは自動では実行しませんが、次のような関数を追加することで APC によって ini ファイルがキャッシュされることを確認し、それを ini ファイルの解析に使用できます。 :

function parse_ini_file_ext ($file, $sections = null) {
    ob_start();
    include $file;
    $str = ob_get_contents();
    ob_end_clean();
    return parse_ini_string($str, $sections);
}

その後、ini ファイルは APC によってキャッシュされます。単純なマイクロタイム ベンチマークで測定すると、これも ini ファイルを直接読み取るよりも高速です。

于 2011-12-26T12:29:25.107 に答える
7

私は常に、parse_ini_file がひどく遅く、PHP ファイルの配列に変数を格納する方が速いという疑いを抱いていました。しかし、2004 年のこの記事には、そうではないと書かれています。

そして最後に、設定パラメータを INI ファイルまたは PHP ファイルに連想配列として保存することをテストします。INI ファイルに格納して parse_ini_file() を使用すると、PHP ファイルを解析するよりも高速であることがわかりました。

私は自分でテストするまで、これを完全に信じることはできません。しかし、記事 (および雑誌) は、真剣に受け止められるほどしっかりしているように見えます。

于 2010-01-22T20:53:16.283 に答える
0

組み込み関数はparse_ini_fileC で実装されています。これにより、非常に高速になります。

于 2010-01-22T21:00:45.113 に答える
-4

ini ファイルをキャッシュしないと、はるかに高速になります。すべての専門家は、これが真実であると断言できます。

于 2010-01-22T20:56:48.930 に答える