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

标签 c# asp.net performance vps

<分区>

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

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

但是,这是最佳实践吗?

目前我有一个不是 VPS/专用服务器的网络酒店,所以它会不时地回收应用程序,这给随机访问者加载时间长达 15-25 秒(只会变成一个更大的数字和更多的内容) .这当然是完全不能接受的,但我想这可以通过 VPS 来解决。

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

任何想法和想法将不胜感激。

最佳答案

看起来您已经回答了您的案例的问题“这当然是完全不能接受的”。

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

大型站点经常使用分布式缓存,例如 MemcaheD。

关于c# - 最佳实践 - 在 application_start 中加载很多东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9708072/

相关文章:

c# - 在 Chrome 中使用 selenium webdriver 在 google 搜索结果中查找搜索文本

c# - 使用带结构图的命名 session 实例策略的 Setter 剖分

performance - HasCallStack 如何影响 Haskell 中正常分支的性能?

c# - 如何在不循环的情况下使用 System.TimeSpan 值实现模数运算?

c# - 如何从字符串的索引中获取数据

c# - 我应该用 LINQ 替换这些嵌套的 foreach 循环吗?如何替换?

asp.net - 清除AjaxToolkit AsyncFileUpload控件

javascript - LoginStatus 注销不会在母版页的一个特定页面中触发 javascript

opengl - 在OpenGL中管理大量行的最有效方法是什么?

c# - 将 MySqlDataReader 记录转换为 ObservableCollection<T>