我想知道,哪种管理缩略图的方式对web服务器性能的影响较小。
这是一个场景:
1)每张订单最多支持10张图片。2)订单完成后不需要保存镜像(最长2周)。3)潜在地,任何时候都可能有几千个活动订单。4)带图片的订单会被客户频繁访问。
IMO,在硬盘中预先生成缩略图是一个更好的解决方案,因为即使使用RAID,硬盘也更便宜。
但是磁盘I/O速度和加载图像所需的资源又如何呢?与实时生成缩略图相比,它会占用更多资源吗?
如果您能分享您的意见,我们将不胜感激。
发布于 2010-08-30 13:59:07
如果订单经常被客户访问,最好创建缩略图并存储在磁盘上。这样,way服务器就不需要处理页面那么长的时间。它将加快您的网页的加载时间。
发布于 2010-08-30 14:00:53
这取决于你的负载。如果资源被多次请求,那么缓存它是有意义的。
总会有一个图像吗?如果没有,您可以在第一次请求时创建它,然后将其缓存到内存中,或者更有可能是数据库中,以供后续请求使用。
但是,如果您总是需要每个订单存在n个图像,并且/或者您有多个订单被定期创建,那么将缩略图的创建传递给工作线程或某种异步页面会更好。这样,可以堆叠多个请求,从而减少服务器上的负载。
发布于 2011-06-22 08:07:48
我建议将两者结合起来--动态生成和磁盘缓存。这可以防止未使用的图像浪费空间,但绝对不会增加重复请求的图像的开销。SQL和内存缓存都不是好的选择,它们都需要太多的RAM。IIS可以在只使用100k RAM的情况下从磁盘提供大图像服务。
在创建http://imageresizing.net时,我发现了29 image resizing pitfalls,其中一些是显而易见的。我强烈建议你读一读这份清单,即使它有点无聊。您需要一个HttpModule才能将缓存的请求传递给IIS.
尽管--为什么要重新发明轮子呢?ImageResizer库得到了广泛的使用和良好的测试。
https://stackoverflow.com/questions/3598166
复制相似问题