gpt4 book ai didi

c# - ASP.NET 中的字典查找效率和请求范围全局变量?可由 global.asax 和 pages/etc 访问

转载 作者:行者123 更新时间:2023-11-30 21:17:09 25 4
gpt4 key购买 nike

我知道这里有几个关于“请求范围”全局变量的问题得到了解答,但我想挑剔一些特别的东西,也许可以从你们中的一两个人那里榨取一些额外的启发。

我有一个 ASP.NET C# 网站和一个静态对象字典(在应用程序启动时从数据库加载一次)。每个页面请求都需要在字典中进行查找(基于从请求 url 等派生的键)并获取适当的对象。

问题是我试图通过减少每个请求对字典的查找来最大限度地提高效率。在 Page 本身内只进行一次查找就足够容易了,我也可以将对象传递给子控件等。但是 global.asax 与 Page 是分开的,它还需要使用该对象(在 Application_BeginRequest 和 Session_Start 中)。

那么在 Application_BeginRequest 中进行一次字典查找,一次(必要时)在 Session_Start 中进行一次,一次在页面中进行一次可以忽略不计的速度,即使每秒有很多请求?

如果我可以拥有一个可以轻松调用的 Request 范围的全局变量,我希望如此。不过我看到唯一可用的变量是 HttpContext.Current.Items,它本身就是一个字典。

我对效率的担忧是不是太挑剔了?或者从长远来看,当发出越来越多的请求时,这些毫秒(纳秒?)会让我受益吗?

谢谢。

附言。我目前在词典中只有大约 100 个对象,尽管将来可能会增加。

最佳答案

字典查找(大致)是一个恒定时间的操作,所以,是的,我确实相信您在此处尝试过度优化。

一如既往,当性能成为问题时,请尝试在进行微优化之前进行分析(为此有 tools available)。否则,您最终可能会浪费时间优化应用程序的错误部分。

关于c# - ASP.NET 中的字典查找效率和请求范围全局变量?可由 global.asax 和 pages/etc 访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4939864/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com