在层中加载多个图像,哪种方法更有效(资源方面)?-加载并编译PHP或将其堆叠
Which is more efficient (resource wise) way to load multiple images in layers? - Load and Compile PHP or Just stack them?
我有一个图像文件夹,它基本上是用皮肤、眼睛、头发、面部表情、裤子、衬衫、鞋子绘制的。每个用户的字符集都以以下格式存储在数据库中。例如:
wbghbwb
每个字母都表示装载了哪个项目,在这种情况下是:
白皙的皮肤,蓝色的眼睛,灰色的头发,快乐的表情,黑色的裤子,白色的衬衫和棕色的鞋子。
我现在要制作一个函数,它将接受字符代码并返回图像,所以我的问题是哪种方法更有效(资源方面)?
1) 加载所有层,使用PHP GD将所有层放在一个图像中,并将其存储在服务器上(当用户注册和自定义他的角色时,他的角色在服务器上存储为.png,然后只加载它)
2) 加载所有层,然后将它们堆叠在一起,并使用CSS格式,这样它看起来像整个字符,但不会在服务器上存储任何内容?因此,从技术上讲,大约有7层被装载并堆叠在一起。
我知道第一种方法需要额外的存储空间,但第二种方法不会减慢服务器的速度吗?加载所有层不需要更多带宽吗?
注:每层约16kb。
没有正确或错误的答案,只有您想要优化的资源。即
选项1复制图像层的磁盘存储,并向服务器添加少量处理,但这样做可以节省传输组合图像时的网络延迟。根据您是否懒惰地"编译"图像堆栈,可以为您提供额外的灵活性。
选项2优化了服务器上各层的数据存储,因为您不再需要将图像堆栈"预编译"到服务器上的所有层排列中。
因此,关于降低服务器速度的问题,您必须进行测量以确定,但如果我们要推测,那么从几个组件中合成新图像的处理是否比获取要在客户端上组装的组件所需的几个网络请求慢。
有时候,重要的不仅仅是原始的性能比较。感知到的性能同样重要,可以让你在设计中更加灵活。
相关文章:
- ng高图表的响应行为,加载时隐藏编译的ng点击xAxis标签
- 在window.print()中加载为循环指令而编译时准备DOM失败
- 在层中加载多个图像,哪种方法更有效(资源方面)?-加载并编译PHP或将其堆叠
- 加载HTML后编译JS指令
- 如何在骨干中加载预编译的模板
- 加载模板、编译和打印
- 节点应用程序自动重新加载,自动编译咖啡脚本和自动编译更少的css
- 我可以编译加载的车把模板吗?
- 如何在angular外部加载的页面上手动编译angular指令
- 如何在RingoJS中加载预编译的JavaScript模块
- 让用户在加载后使用已编译的RequireJS Widget
- Angular如何从服务器动态加载后编译整个jTable
- 实现Webpack css加载器时遇到问题,编译错误
- Webpack Babel加载器编译jsx失败
- 如何在Jasmine测试中加载和编译AngularJs的HTML片段/部分?
- AngularJS指令在链接或编译函数中修改加载的模板
- 从网页中删除CSS(动态加载,编译,不链接标签)
- 加载和编译外部把手模板
- 资产管道- application.js未编译/加载
- 在Node脚本中加载预编译的把手栏模板