1. ホーム
  2. Web プログラミング
  3. ASP プログラミング
  4. アプリケーションのヒント

ASPとPHPのファイル操作速度の比較

2022-01-18 13:27:34

最近のプロジェクトで、あるフォルダ以下のファイルをすべて読み込む機能があります。ThinkPHP + layuiを使用し、ローカルテストでは問題なかったのですが、読み込みが終わるまでに10秒以上かかり、非常に遅いことがわかりました。フォルダ内に1000以上のファイルがあり、顧客は1000以上のファイルを数秒で開くことができる古いaspシステムを持っていることがわかりました。

PHPがASPより速いかどうかはわからない。プロジェクト内のコードが多すぎたので、別のコードテストを書きました。files/1000ディレクトリには、テスト用のファイルが1428個格納されていました。

test.aspのソースコードは以下の通りです。

set fso = server.createobject("Scripting.FileSystemObject")
set fpo = fso.getFolder(server.mappath("files/1000"))
for each x in fpo.files
 response.write x.name & "<br />"
next

test.phpのソースコードは以下の通りです。

<?php
 foreach( scandir('files/1000') as $f ){
  echo "${f}<br>";
 }

Windowsのテキスト名がGBKエンコードされているので、フロントエンドとバックエンドを分けたい、JSONでファイル名をフロントエンドに返す、ファイル名をUTF-8エンコードに変更する必要もある、公平に見て、プラスUTF8変換時間を比較。 test_utf8.phpソースコードは以下の通りです。

<?php
 foreach( scandir('files/1000') as $f ){
  $f = mb_convert_encoding($f, 'utf-8', 'gbk');
  echo "${f}<br>";
 }

トランスコード時間を加えても、PHPは1倍速です。

言語の問題を解消。結局、リストデータが多いと layui.table のレンダリングが超遅くなることがわかり、Vue に変更して修正した。

ASPとPHPのファイル操作の速度比較の記事は以上となります。ASPとPHPのファイル操作速度については、スクリプトハウスの過去記事を検索していただくか、引き続き以下の関連記事をご覧ください。