第一次请求很耗时

笑道江湖情 2011-05-12 01:07:54
第一次请求或者是间隔一段时间再去访问,等待时间差不多要15秒。找了很久都没找到原因。
PS:请求的页面后台没有加载任何信息。

不废话,直接上图:
...全文
674 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
笑道江湖情 2011-05-13
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 wxr0323 的回复:]
Global是干啥的。

要是没用删了。。
[/Quote]
Global的Application_Start原有Workflow的一些初始化信息,但已经注释掉了。

现在只有一些Trace.Warn输出,没有别的信息。
子夜__ 2011-05-12
  • 打赏
  • 举报
回复
Global是干啥的。

要是没用删了。。
HimeTale 2011-05-12
  • 打赏
  • 举报
回复
全文搜索(ctrl+shift+f)两个方法:
OnSessionStart 每次启动session调用,一般用来统计访问人数。
OnApplicationStart 第一次请求要调用的方法,一般是为了初始化一些缓存

打上断点,看看这两个方法里都做什么了吧
笑道江湖情 2011-05-12
  • 打赏
  • 举报
回复
下班了 再顶一下
笑道江湖情 2011-05-12
  • 打赏
  • 举报
回复
真悲剧,还有一点忘说了。

不是每个页面第一次请求都是这种情况(这里指的是第一次请求应用程序),有的页面第一次请求就很快。
比如说:A.aspx第一次请求很慢,而B.aspx第一次请求很快。
如果先请求的是A.aspx页面,就要等待很长时间。如果是先请求B.aspx页面,可以很快响应,但是再去请求A.aspx页面(不是应用程序的第一次请求)还是很慢。
也就是说,响应慢似乎与A.aspx页面有关系,而绝非LS说的是编译花费了时间。但奇怪的是A.aspx页面没有任何后台代码。
怪我开始没说清,给自己给耳光。

诶~~ 也不知道这次说清了没有。
小童 2011-05-12
  • 打赏
  • 举报
回复
是不是程序初次加载的东西太多了
丰云 2011-05-12
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 hl362496158 的回复:]
建议去了解一下.NET机制,页面第一次请求其实是要编译两次的!
[/Quote]
这个说法不完全对,
只有网站被重置了,
才需要编译.

当然,现在IIS6/IIS7为了保证网站连续工作,
经常会为了一点小事就重置,
也许就是因为这个原因!!

你的服务器不稳定,
导致IIS经常重置,
相当于你经常会遇到"第一次启动你的网站"的情况.....
笑道江湖情 2011-05-12
  • 打赏
  • 举报
回复
好像没人来了
笑道江湖情 2011-05-12
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 hl362496158 的回复:]
建议去了解一下.NET机制,页面第一次请求其实是要编译两次的!
[/Quote]
JIT要这么久吗?
hl362496158 2011-05-12
  • 打赏
  • 举报
回复
建议去了解一下.NET机制,页面第一次请求其实是要编译两次的!
myhope88 2011-05-12
  • 打赏
  • 举报
回复
期待高手出现
PitTroll 2011-05-12
  • 打赏
  • 举报
回复
高深问题啊。
笑道江湖情 2011-05-12
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 foren_whb 的回复:]
没有后台代码?
那就把Session禁用掉.
[/Quote]

禁用了<sessionState mode="Off"></sessionState>,还是如此。
丰云 2011-05-12
  • 打赏
  • 举报
回复
没有后台代码?
那就把Session禁用掉.
bleach001 2011-05-12
  • 打赏
  • 举报
回复
占个位置 坐等高手,有时候我也有这样的情况,貌似我用的是session
笑道江湖情 2011-05-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 foren_whb 的回复:]
貌似你的跟踪数据已经说明问题了,
是不是程序里有类似
if(Session["xxx"] == null)
{
Session["xxx"] = [.......];
}
这样的语句?

时间可能就是被[.......]这里的操作消耗掉的,
我的建议是,
这些会反复使用到的数据,
直接缓存到内存中,
不要频繁的连接数据库查找.
[/Quote]
代码中没有看到有很耗时,而且请求的页面没有后台代码,更别说连数据库了。
Global.asax里面也没什么东西。
  • 打赏
  • 举报
回复
晕死。。。 反复连接数据库 缓存
天下在我心 2011-05-12
  • 打赏
  • 举报
回复
优化代码,减少session的使用
jeje 2011-05-12
  • 打赏
  • 举报
回复
Session那一部分占的時間比較長的
丰云 2011-05-12
  • 打赏
  • 举报
回复
貌似你的跟踪数据已经说明问题了,
是不是程序里有类似
if(Session["xxx"] == null)
{
Session["xxx"] = [.......];
}
这样的语句?

时间可能就是被[.......]这里的操作消耗掉的,
我的建议是,
这些会反复使用到的数据,
直接缓存到内存中,
不要频繁的连接数据库查找.
加载更多回复(1)

62,073

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧