4

我第一次尝试 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
%>

为什么我的旧的、已完成的、死的、已弃用的、老式的、病态的 Classic ASP 版本比好的旧 PHP 版本做得更好?ASP 版本实际上比 PHP 版本做得更多。除了 READFILE 之外,我还有什么可以更快的使用吗?我正确使用 READFILE 吗?我并不是说我正在等待我的时钟,两者都在瞬间加载,但是 PHP 有一个非常明显的延迟。

4

1 回答 1

0

首先:您声明 PHP 5.2

请注意,不再支持 5.2;你真的应该升级(如果是第三方 ISP 提供它,那么你应该从他们升级;没有 ISP 应该提供不受支持的 PHP 版本——这是一个明显的安全风险)。

升级的另一个原因是 PHP 5.3 比 5.2 快得多。并且 5.4 明显比 5.3 快。如果您担心速度,那么您真的必须使用最新版本。

其他想法?

您的 PHP 和 ASP 代码可能不在同一台服务器上,对吧?两台服务器有区别吗?处理器速度、内存、网络速度?从这些项目中为您的计划提供的资源是否有任何限制?

鉴于您正在做的是从远程 URL 获取文件,我建议这里的服务器或网络性能比程序性能更可能是一个问题。

于 2012-07-22T15:15:59.193 回答