我正在开发一个phonegap应用程序,应用程序的一部分是大约10个base64编码的图像,每周每个用户下载一次(现在有100个用户,希望增长很多) 我的服务器很慢,我也在努力,因此这些图像的传输速度很慢。 我的问题是: 将这些base64图像生成并保存到db一次并根据请求从db获取图像或者每次请求图像时对base64进行编码都会更快,php和服务器更快吗?
感谢您的帮助。
答案 0 :(得分:1)
肯定会更快地对图像进行base64编码并存储编码。
这是一个经典的内存与速度权衡,您可以支付更低的计算成本,以获得更高的内存成本。在这种情况下,这意味着存储更多数据( 8/7 8/6,如果你只保留编码版本,如果保留原始数据,则多于2倍)太)。
您可以做的最好的事情是将图像保存在内存中,因为这样可以避免访问磁盘的成本。您可以使用shared memory functions执行此操作,也可以通过滥用会话变量并指定固定的会话ID来检索内容。
答案 1 :(得分:1)
在不知道你的应用程序的细节的情况下,在我看来,只有10个图像的数据库是过度的。在慢速服务器上运行数据库所增加的额外开销可能会扼杀从保存base64编码中获得的任何好处。
我会将base64编码的图像存储为文件而不是数据库,以便它们可以由Web服务器直接提供给客户端。
如果客户端可以处理它,我还会确保你可以提供gzip压缩数据,因为base64数据压缩效果非常好。这将大大减少服务器的流量。请参阅this。
答案 2 :(得分:1)
在您的服务器成为处理器绑定之前,您很可能会受到带宽限制。我的想法: