最近一個項目中,有一個讀取某個文件夾下所有文件的功能。使用了ThinkPHP + layui,本地測試沒有問題,到客戶哪里發(fā)現(xiàn)速度奇慢,需要10秒以上才能讀取完畢。 經(jīng)溝通發(fā)現(xiàn)一個文件夾有1000+ 個文件,客戶之前有一套asp的老系統(tǒng),1000多個 文件也能實(shí)現(xiàn)秒開。。。
一時竟然沒有頭緒,難道 PHP 不如 ASP快 ??因為項目中代碼太多,編寫單獨(dú)的代碼測試。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轉(zhuǎn)換時間。test_utf8.php的源碼如下:
?php
foreach( scandir('files/1000') as $f ){
$f = mb_convert_encoding($f, 'utf-8', 'gbk');
echo "${f}br>";
}
即使加個轉(zhuǎn)碼時間,PHP還是要快1倍。
排除語言的問題了。最終發(fā)現(xiàn) layui.table 列表數(shù)據(jù)一多,就會渲染超慢,改為 Vue后 解決。
到此這篇關(guān)于ASP和PHP文件操作速度的對比的文章就介紹到這了,更多相關(guān)ASP和PHP文件操作速度內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!