如果一个asp.net开发的网站出现了访问慢的情况,请教从哪些方面入手查找问题呢?

bccu 2010-08-17 04:43:28
如果一个asp.net开发的网站出现了访问慢的情况,请教从哪些方面入手查找问题呢?
...全文
111 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
gongsun 2010-08-17
  • 打赏
  • 举报
回复
我记得 以前公司一个客户 用一个 3羊 2点几的电脑给我们当服务器,让我们给他部署。

后来客户说慢,我们说你机器太破了,不行。

-------------------

然后客户火了,买了台8核的 intel cpu的 服务器...

当时第一次看到8核,激动啊。任务管理器里8个小框子显示波浪线。
wwfgu00ing 2010-08-17
  • 打赏
  • 举报
回复
楼上都是可以考虑的
bobo_msdn 2010-08-17
  • 打赏
  • 举报
回复
1.SQL 查询优化。
2.加缓存
fenshm 2010-08-17
  • 打赏
  • 举报
回复
都可以去参考~!
chenyu112 2010-08-17
  • 打赏
  • 举报
回复
楼上都已经说了,
myhope88 2010-08-17
  • 打赏
  • 举报
回复
楼上说得都差不多了
wangjunfeng2010 2010-08-17
  • 打赏
  • 举报
回复
好多方面的原因呢。
yb00k 2010-08-17
  • 打赏
  • 举报
回复
用个网页检测工具 来检测下不就行了。网站访问变慢的原因太多了。排除外在的因素,在去检查代码质量问题。
路人乙e 2010-08-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 bccu 的回复:]
主要是想了解监控服务器的哪些指数来找问题呢?
[/Quote]
1、如果页面标题显示出来不慢,说明是页面问题
2、如果去掉数据库连接加载速度不慢,说明是数据库连接过多、或数据库问题,否则是程序问题

测试C#效率:
Response.Write(DateTime.Now)
//your code here
Response.Write(DateTime.Now)

测试SQL效率:
select getdate()
--your sql code here
select getdate()
神码浮云 2010-08-17
  • 打赏
  • 举报
回复
高手们,帮我看一下这个问题怎么解决,没分了.非常急.

http://topic.csdn.net/u/20100816/18/5979057f-14e4-4018-85f7-7a79d75ca834.html

QQ:149012959
路人乙e 2010-08-17
  • 打赏
  • 举报
回复
1、页面优化
是否有多余js、css引用;
是否有过多、过大图片;
是否有冗余HTML标签;
代码压缩

2、程序优化
是否有过多的非必需循环;
是否有底性能的查询、字符串处理;
是否有过多的数据库请求

3、数据库优化
表结构设计是否合理;
索引创建是否合理;
是否有过多事务操作;
SQL语句性能测试
bccu 2010-08-17
  • 打赏
  • 举报
回复
主要是想了解监控服务器的哪些指数来找问题呢?
eastzheng1 2010-08-17
  • 打赏
  • 举报
回复
页面最好静态的
用好缓存
别太多的包含文件
能用JS实现的效果都用JS实现
能用客户端控件就用客户端控件
分页时使用预编译的存储过程
减少数据回发操作
记得销毁数据库连接
不要把所有内容都放在大表格中 而是尽量
web服务器的配置优化


从编码方面提高网站性能的手段
一、缓存
  缓存是ASP.NET中提高性能的重要手段,缓存一般遵循以下原则:

  1) 在页面中将静态内容与动态内容分割开来

  考虑将动态内容作成用户控件

  2) 缓存合理的数据

  一般应当缓存应用程序集的数据、多个用户共同使用的数据、静态数据、生成数据需要很大开销的动态数据、DataSet以及自定义对象等。不要缓存数据库连接对象、DataReader。

  3) 选择适当的方式

  如可以使用页面缓存指令,API等。

  二、视图状态

  视图状态放在页面中名为_VIEWSTATE的表单隐藏域里面,随页面一起被发送到客户端,在用户提交页面时,又被提交到服务器。

  1) 如果不需要视图状态,则禁用

  视图状态默认是允许的,如果页面不进行PostBack,如果不处理服务器控件的事件,如果服务器控件的数据每次都需要重新计算等

  2) 尽量减少视图状态中存放的对象

  三、关于页面处理(减少页面生成的时间和过程)

  1) 应尽量减少页面文件的大小

  2) 通过检测Page.IsPostBack减少代码执行的数量

  3) 禁止使用Debug=“true”,减少页面生成过程中生成额外的调试信息

  4) 使用Server.Transfer而不使用Response.Redirect,减少服务器和客户端间的往返

  5) 尽量使用客户端验证,减少服务器和客户端间的往返

  6) 在适当的场合使用服务器控件

  7) 尽量避免嵌套的服务器控件

  四、避免使用Page.DataBind和DataBinder.Eval

  五、关于Application对象和Session对象

  1) 使用静态属性存储数据而不使用Application对象,在Application对象里存储只读类型的数据都将回提高性能

  2) 尽量使用InProc模式的Session,这个模式是最快的

  3) 在Session里存储基本类型的数据减少序列化的所消耗的资源

  4) 如果不用Session变量,使用EnvableViewState=“false”禁用

  5) 如果不修改Session变量的值,尽量使用ReadOnly属性设置

六、关于字符串操作

  1) 尽量使用Response.Write将结果输出到浏览器,这种方法是最快的。不要将字符串连接在一起一次输出。

  2) 在字符串短并且少的情况下可以使用String.Concat方法,而在字符串长度未知,并且字符串大的情况下,使用StringBuilder对象

  3) 不要使用strVar==“”来判断字符串是否为“”,这样它会创建额外的字符串,请使用strVar==String.Empty代替或者使用strVar.Length==0来判断

  4) 请使用String.Compare方法进行字符串的比较

  七、关于数据访问

  1) 尽量使用存储过程返回数据,不要直接在代码中进行查询

  2) 在数据库中只返回有用的数据结果,不要选择不使用的数据字段

  3) 进行使用DataReader进行数据绑定,DataReader是单向只读的

  4) 尽量一次返回多个数据集而不是每个记录集分别打开一次数据库连接进行查询

  5) 尽量晚的打开数据库,尽量早的关闭数据库

  6) 使用连接池提高性能

  7) 使用ExecuteNonQuery方法执行不返回数据的操作,使用ExecuteScalar方法返回单个结果的操作,使用Commandbehavīor.Sequentialaccess返回二进制数据或者大数据

  8) 如果多次相同的查询,请使用Command.Prepare方法

  9) 使用GetOrdinal方法预先得到索引值,使用索引值比使用字符串的列名查询数据效率更高

  八、关于代码优化

  1) 在解析基本数据类型时,使用Try方法如果解析失败,会抛出异常,使用TryParse方法则只执行Else下的语句。

 2) 使用AppendAllText、WriteAllBytes等方法读写文件内容可以优化性能

  3) 将循环判定条件放在for语句外

  4) 避免在循环里创建对象

  5) 尽量减少装箱的次数

  6) 不要使用例外控制程序的流程

  7) 在循环中不要使用不变的对象属性或者字段

  8) 使用for循环代替foreach循环遍历结合内容

  9) 数组是所有集合中最快的,如果没有特殊需要,尽量使用数组代替集合

  10) 了解各个集合类型的特性,选择合适的类型

  11) 使用泛型避免减少装箱、拆箱

q107770540 2010-08-17
  • 打赏
  • 举报
回复
1.网站自身性能问题
2.服务器是否被攻击
3.查看IIS是否正常
nextuntil 2010-08-17
  • 打赏
  • 举报
回复
我的一点理解勒。、

1,SQL查询的效率。
2,缓存。
3,静态化、

呵呵、暂时想到就这几个勒

62,046

社区成员

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

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

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

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