【问题标题】:Optimize image output performance优化图像输出性能
【发布时间】:2012-01-26 10:56:36
【问题描述】:

我有一个 php 文件,用于检查图像是否可用。如果是,则将图像返回给用户,如果不是,则将其创建然后返回给用户。

if(file_exists($filepath)) {
    $fp = fopen($filepath, 'rb'); # stream the image directly from the cachefile
    fpassthru($fp);
    exit;
} 

我想为了优化这个我可以跳过“file_exists”调用并尝试“fopen”它,如果返回“false”我创建图像,否则我直接返回它(正确吗?)。

我想知道的是,这是在 PHP 中加载图像的最快方法吗?在此之前我使用了imagepng($image),但读到 fpassthru 更快: http://www.php.net/manual/en/function.imagepng.php#103787

【问题讨论】:

    标签: php performance file-exists


    【解决方案1】:

    最快的方法是首先不通过 PHP 处理图像。使用反向代理服务器,它为现有文件提供服务,对于每个不存在的文件,它调用的是 PHP 脚本。

    接下来,移除对 file_exists() 的调用是微优化;但是,如果文件不存在,PHP 将触发警告,将其写入日志,根据设置输出...就 CPU 而言,这比 file_exists 调用更昂贵。

    【讨论】:

      猜你喜欢
      • 2022-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-16
      • 2012-03-08
      • 1970-01-01
      • 2019-06-05
      相关资源
      最近更新 更多