最佳实践 - 在application_start中加载很多东西?

Lar*_*ard 9 c# asp.net performance vps

我有一个网站,里面有很多产品和其他内容.目前,我将所有内容加载到Application_Start的全局列表中,这需要15-25秒的aprox.

这使得网站非常快,因为我可以在O(1)时间内获得任何产品/内容.

但是,这是最佳做法吗?

目前我有一个不是VPS/Dedicated服务器的webhotel,因此它会不时地回收应用程序,这使得随机访问者的加载时间最多可达15-25秒(只有更多内容才能成为更大的数字).这当然是完全不可接受的,但我想这将通过VPS解决.

这样做的正常方法是什么?我想像亚马逊这样的网店可能不会将所有产品加载到一个巨大的列表中:-D

任何想法和想法将受到高度赞赏.

Ale*_*kov 7

看起来你已经回答了你的问题情况下,"当然,这是完全不能接受的".

如果您的目标O(1)对单个产品的数据库的正常请求可能是O(1),除非您需要在产品之间进行复杂的连接.考虑尝试删除所有预缓存逻辑,看看是否有性能问题.您可以通过延迟缓存来限制启动影响.

大型网站经常使用像MemcaheD这样的分布式缓存.


Jon*_*all 5

更具可扩展性的设置是设置Web服务以提供网站在需要时调用的内容.Web服务需要缓存经常需要的内容以实现快速响应时间.