我第一次尝试使用PHP(来自经典的ASP),我正在测试使用READFILE加载远程图像并显示它。在测试过程中,我注意到与旧的ASP脚本相比,返回时间存在巨大差异,这几乎完全相同。 PHP版本实际上需要加载两倍的时间。
这是我的PHP,它只有3行代码:
<?php
$url = "https://s3.amazonaws.com/bucket/file.jpg";
header("Content-Type: image/jpeg");
readfile($url);
?>
这是我的ASP版本:
<%
Set objHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP")
objHTTP.Open "GET", "https://s3.amazonaws.com/bucket/file.JPG"
objHTTP.Send
Set Jpeg = Server.CreateObject("Persits.Jpeg")
Jpeg.OpenBinary(objHTTP.responseBody)
Jpeg.SendBinary
%>
为什么我的旧的,已完成的,死的,已弃用的,老派的,患病的经典ASP版本比旧的PHP好得多? ASP版本实际上比PHP版本更多。除了READFILE之外我还能用更快的东西吗?我正确使用READFILE吗?我不是说我正在看着我的时钟等待,两者都在一瞬间加载,但PHP有一个非常明显的延迟。
答案 0 :(得分:0)
首先:你陈述PHP 5.2
请注意,不再支持5.2;你真的应该升级(如果它是提供它的第三方ISP,那么你应该从它们升级;没有ISP应该提供不受支持的PHP版本 - 这是一个明显的安全风险)。
升级的另一个原因是PHP 5.3明显快于5.2。并且5.4明显快于5.3。如果你担心速度,那么你真的必须使用最新版本。
其他想法?
您的PHP和ASP代码可能不在同一台服务器上,对吧?两台服务器之间有什么区别吗?处理器速度,内存,网络速度?这些项目给你的程序提供的资源有限制吗?
鉴于您正在做的是从远程URL获取文件,我建议服务器或网络性能更可能是程序性能的问题。