代码之家  ›  专栏  ›  技术社区  ›  Pablo

动态调整PHP图像大小与存储调整大小的图像

  •  24
  • Pablo  · 技术社区  · 16 年前

    哪个更快?

    哪个更可靠?

    两种方法在速度和性能上的差距有多大?

    请注意,无论哪种方式的图像通过一个PHP脚本的统计数据,如视图或如果热链接是允许的等等。。。所以,这不是像它将是一个直接链接的图像,如果我选择存储调整大小的图像。

    我会很感激你的意见或任何有关这个问题的有用的链接。

    4 回复  |  直到 12 年前
        1
  •  17
  •   spender    16 年前

    这听起来像是过早的优化。你知道你的网站会有多少用户/你的服务器会有多少计算量吗?使用最简单的(维护方面的)选项,即动态调整大小,直到性能成为问题,然后从中找出要做的事情。

        2
  •  30
  •   Community Mohan Dere    9 年前

    这是绝对无法比拟的事情。

    实际上,动态调整图像大小就像在自己的服务器上运行DoS攻击。调整一个普通图像的大小需要更多的CPU和RAM,而不是向php脚本提供一个普通请求。这已经对性能产生了巨大影响。然而,一个常见的缩略图并不是单独显示的,而是以数字的形式显示的。因此,在只显示一个库页面的同时,您创建了几十个重载进程,将服务器负载增加了10倍或更多。

    快速而肮脏的测试来证明我的话:

    $ /usr/bin/time --format="%MK mem %Es CPU time" /usr/bin/convert angry_birds_1280x800.jpg -resize 100x100 thumb.jpg
    10324K mem 0:00.10s CPU time
    

    它花了我们0,1秒,所以,显示10个图像预览会占用你整整一秒钟的CPU时间。而正确编写的PHP画廊页面将需要大约0,01秒。因此,在动态调整大小的情况下,服务器负载将增加100倍。

    这是真实的数字。

    与这个问题有关的一件有趣的事:
    完全相同的PHP用户
    A similar question 高度关注 同时在微不足道的事情上 speed difference between Constants, Variables or Variable Arrays . 最近是谁 run into allowed memory size exhausted problem ,似乎这样的灾难是不够的。

    同时,也有这样的问题——关于两种方法在性能上的巨大的、不可比较的差异,这看起来仅仅等同于作者。

    这就是普通PHP用户和这个网站的问题。
    前者只是没有办法区分真实和微观的事物。
    然而,后者没有对问题进行理智检查的机制——每个人都以同样的热情回答问题,即使两个问题相互矛盾(而且都是常识性的)。

        3
  •  23
  •   warrenm    16 年前

        4
  •  17
  •   Vidar Vestnes    16 年前

    我强烈建议你缓存你的图像,而不是调整大小的飞行。

    图像的大小调整对服务器来说是非常CPU密集和内存消耗的。

    如果你有一个动态缩放的图像库,页面会慢慢加载图像,比如说3-10秒,这取决于原始文件的大小。

    也许不是,因为大多数客户机一次只请求4个图像,但是12MB对于页面负载来说还是很大的。如果源图像小于100x100px,我只会动态缩放。

    PhpThumb