ASP 和 PHP 文件操作速度的對比

最近一個項目中,有一個讀取某個文件夾下所有文件的功能。使用了ThinkPHP + layui,本地測試沒有問題,到客戶哪里發現速度奇慢,需要10秒以上才能讀取完畢。 經溝通發現一個文件夾有1000+ 個文件,客戶之前有一套asp的老系統,1000多個 文件也能實現秒開。。。

一時竟然沒有頭緒,難道 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后 解決。

發表評論

電子郵件地址不會被公開。 必填項已用*標注

此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據。