写点什么

你会如何优化应用程序的性能?

  • 2011-11-06
  • 本文字数:884 字

    阅读完需:约 3 分钟

StackExchange 是构建在 ASP.NET 和 SQL Server 基础之上的项目。最近, Sam Saffron Marc Gravell 分别撰写了博客,其中讲述了他们发现和解决性能问题的经验,在该过程中最终追踪到了.NET GC GEN-2 对象。大家可以从他们的博文中吸取很多关于优化生产环境中应用程序性能的经验。

问题是由自定义标签引擎引起的,它会在内存中存放大型对象列表。这两篇博文都值得一读,而 Sam 的文章则更详细地讲述了如何诊断问题。其中主要的应对方法包括:

  • 使用分析器。你可以使用类似于 MVC-MiniProfiler 的工具来分析方法调用,使用类似于.NET Memory Profiler 或者 Redgate ANTS Memory profiler 之类的内存分析器来跟踪内存使用情况。
  • 如果可以的话,要拥有可查询的日志——StackExchange 团队有后台执行的进程,它会解析原始的日志,并把它插入到大型的、专门的 SQL Server 实例中。如果无法查询日志,那么你就无法绘制出统计图并查看趋势或者模式。
  • 理解 GC 是如何工作的——.NET 中的垃圾回收器支持三代对象(GEN 0 到 GEN 2),而存放时间最长的数据会使用 GEN-2。GEN-2 的扫描频率最低,执行的成本最高,甚至可能会堵塞其它线程。Sam 建议阅读 Rico 的《Garbage Collector Basics and Performance Hints》一文以获得更多细节。

最后,团队采取了多项优化措施,包括针对应用程序的特定部分,从对象数组切换到索引数组,从类切换到结构体等。第一项措施是一种很常用的模式,这样数组就只针对主要的不可变列表的索引;而第二项并不常用,Sam 建议只在有超过 50 万个对象以上才使用它,这样在达到第二代垃圾回收器标准的时候就会很快释放内存。

StackExchange 团队对性能问题非常关注——比方说,你可以看到 StackOverflow 在三个不同的等级上使用caching ,从而提升反应时间,减少服务器的负载。

在InfoQ 上和MSDN 上都有很多关于性能和可伸缩性的资源可供参考,包括这篇 Rob Howard 撰写的文章。最后,引用 Sam 的话:“做很少的工作总是要比做更多工作消耗的资源少。”

你在扩展 ASP.NET 应用程序的时候,也有发现和解决瓶颈问题的类似经验和大家分享吗?

查看英文原文: How Do You Tune Your Application For Performance?

2011-11-06 02:503539
用户头像

发布了 340 篇内容, 共 145.6 次阅读, 收获喜欢 13 次。

关注

评论

发布
暂无评论
发现更多内容

哒哒家政小程序开发多少钱?

ALVIS

微商新零售小程序怎么开发??

ALVIS

图书馆预约小程序开发多少钱?

ALVIS

织信Informat低代码平台,赋能企业数字化飞速升级,提效300%!

优秀

低代码 低代码平台

女巫面具APP开发是什么??

ALVIS

茶酒交易小程序开发难吗??

ALVIS

美牙视界软件开发讲解

(王经理)专业app小程序开发

皇家家政小程序开发怎么做?

ALVIS

绿袋环保小程序开发怎么样?

ALVIS

益题库小程序找谁开发??

ALVIS

关键字transient的认识

阿志

序列化 java关键字

劳务派遣公司管理小程序开发

(王经理)专业app小程序开发

课程管理APP开发难吗?

ALVIS

短短29天,应对高峰100W+访问,看浙大如何交出满分答卷

TakinTalks稳定性社区

小羽佳家政小程序开发

ALVIS

本夕生活小程序开发|快速搭建

ALVIS

浪潮云说丨浪潮云IBP数据工场,打造行业数据基座

云计算

驾校软件开发

(王经理)专业app小程序开发

商家入驻平台开发多少钱??

ALVIS

红色壹佰拼团小程序开发

(王经理)专业app小程序开发

爱购团购软件开发

(王经理)专业app小程序开发

e家帮系统开发有哪些功能?

ALVIS

美健日纪系统开发怎么做??

ALVIS

纷多多拼团小程序开发

ALVIS

DockerHub再现百万下载量黑产镜像,小心你的容器被挖矿

腾讯安全云鼎实验室

容器 云原生 镜像

万题库小程序开发

(王经理)专业app小程序开发

题库答题软件开发

(王经理)专业app小程序开发

美健日纪小程序开发定制

ALVIS

绿色篮子APP怎么开发??

ALVIS

微商新零售模式开发怎么做???

ALVIS

新零售商城怎么开发??

ALVIS

你会如何优化应用程序的性能?_.NET_Roopesh Shenoy_InfoQ精选文章