速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

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

  • 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:503061
用户头像

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

关注

评论

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

Luminar Neo(超强AI图像编辑器) 中文版

理理

AutoMQ BYOC 模式如何管理云的权限

AutoMQ

Java 数据库 kafka Linux

全彩LED显示屏与单色的区别

Dylan

技术 场景 LED显示屏 全彩LED显示屏 led显示屏厂家

电商企业转起数据飞轮,火山引擎助力商家实现“数据找人”

字节跳动数据平台

大数据 数据飞轮

小红书笔记详情 API 接口:获取、应用与收益全解析

科普小能手

API API 接口 小红书笔记接口 小红书API 小红书笔记详情数据采集

Top WiFi 7 Solutions: QCN9274, IPQ9574, QCN6274, and IPQ9554 for High-Performance Networks

wallyslilly

ipq9554 qcn9274 qcn6274 ipq9574

mac电脑怎么彻底清除卸载的软件,苹果电脑卸载软件的实用技巧

阿拉灯神丁

性能优化 CleanMyMac X 卸载软件 应用程序卸载 mac 效率工具

淘宝实时API接口丨淘宝商品详情接口(Taobao.item_get)

tbapi

淘宝API接口 淘宝商品详情接口

百度智能云千帆大模型平台引领企业创新增长

百度Geek说

百度 智能云 大模型 百度千帆

Video Copilot Element 3D:一键开启 3D 特效盛宴

Rose

一种轻量分表方案-MyBatis拦截器分表实践

京东科技开发者

ScreenFlow:专业视频录制与编辑的终极利器,释放无限创意

理理

【免费开源】JeecgBoot单点登录源码全部开源了

JEECG低代码

低代码 单点登录 低代码平台 JeecgBoot

非凸科技荣获2024中国人工智能行业创新力企业奖

非凸科技

人工智能

InheritableThreadLocal从入门到放弃

京东零售技术

后端 应用开发

在ArkTS中,如何优化布局以提高性能?

威哥爱编程

HarmonyOS ArkTS HarmonyOS NEXT

Ample Sound Ample Ethno Banjo for mac(民族班卓琴) v1.5.0激活版

Rose

《Hive编程指南》读书笔记

京东科技开发者

Real Glow:图像焕新之光,解锁逼真光影特效的魔法钥匙

Rose

前端调试实践

京东零售技术

前端

TechTool Pro 15 for Mac 系统硬盘诊断和维护工具

理理

扬州等级测评机构叫什么名字?在哪里?

行云管家

等保 等保测评机构 扬州

影视业一定要购买堡垒机吗?为什么?

行云管家

等保 等保测评 影视

Taro小程序开发性能优化实践

京东科技开发者

软通智慧:鲲鹏原生开发助力 城市治理平台信息查询效率提升17%

Geek_2d6073

AI Agent开发需要注意的问题

北京木奇移动技术有限公司

软件开发、 AI应用 AI智能体

圆极化平板天线仿真01【CST软件仿真实例】

思茂信息

cst cst操作 CST软件

Grequests,非常 Nice 的 Python 异步 HTTP 请求神器

左诗右码

写在极限科技成立三周年之际

极限实验室

极限科技三周年

集团企业在身份基础能力建设阶段的统一身份安全管理体系

芯盾时代

风险识别 iam 统一身份认证 安全审计 统一身份管理平台

ON1 Resize AI 2023(图片无损缩放软件)中文版

理理

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