在层中加载多个图像,哪种方法更有效(资源方面)?-加载并编译PHP或将其堆叠

Which is more efficient (resource wise) way to load multiple images in layers? - Load and Compile PHP or Just stack them?

本文关键字:加载 编译 方面 资源 PHP 图像 有效 方法      更新时间:2024-02-19

我有一个图像文件夹,它基本上是用皮肤、眼睛、头发、面部表情、裤子、衬衫、鞋子绘制的。每个用户的字符集都以以下格式存储在数据库中。例如:

wbghbwb

每个字母都表示装载了哪个项目,在这种情况下是:

白皙的皮肤,蓝色的眼睛,灰色的头发,快乐的表情,黑色的裤子,白色的衬衫和棕色的鞋子。

我现在要制作一个函数,它将接受字符代码并返回图像,所以我的问题是哪种方法更有效(资源方面)?

1) 加载所有层,使用PHP GD将所有层放在一个图像中,并将其存储在服务器上(当用户注册和自定义他的角色时,他的角色在服务器上存储为.png,然后只加载它)

2) 加载所有层,然后将它们堆叠在一起,并使用CSS格式,这样它看起来像整个字符,但不会在服务器上存储任何内容?因此,从技术上讲,大约有7层被装载并堆叠在一起。

我知道第一种方法需要额外的存储空间,但第二种方法不会减慢服务器的速度吗?加载所有层不需要更多带宽吗?

注:每层约16kb。

没有正确或错误的答案,只有您想要优化的资源。即

选项1复制图像层的磁盘存储,并向服务器添加少量处理,但这样做可以节省传输组合图像时的网络延迟。根据您是否懒惰地"编译"图像堆栈,可以为您提供额外的灵活性。

选项2优化了服务器上各层的数据存储,因为您不再需要将图像堆栈"预编译"到服务器上的所有层排列中。

因此,关于降低服务器速度的问题,您必须进行测量以确定,但如果我们要推测,那么从几个组件中合成新图像的处理是否比获取要在客户端上组装的组件所需的几个网络请求慢。

有时候,重要的不仅仅是原始的性能比较。感知到的性能同样重要,可以让你在设计中更加灵活。