惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

云风的 BLOG
云风的 BLOG
The GitHub Blog
The GitHub Blog
Y
Y Combinator Blog
博客园 - 三生石上(FineUI控件)
T
The Blog of Author Tim Ferriss
宝玉的分享
宝玉的分享
Hugging Face - Blog
Hugging Face - Blog
WordPress大学
WordPress大学
V
Visual Studio Blog
小众软件
小众软件
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
MongoDB | Blog
MongoDB | Blog
V
V2EX
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 【当耐特】
Microsoft Azure Blog
Microsoft Azure Blog
The Cloudflare Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Engineering at Meta
Engineering at Meta
L
LangChain Blog
Martin Fowler
Martin Fowler
GbyAI
GbyAI
博客园 - 司徒正美

博客园 - DataFlow

word break 在不同浏览器中的表现 系统架构 创造HTTPS的是个神 为Chrome开发插件提高工作效率 Javascript 控制style 小结 svcutil 生成代理类时的问题 xeam Build Definition Extension uninstall 卸载 Wcf客户端配置里Endpoint的Name属性无效 屏蔽电信流氓弹出广告 正则替换中的一个Bug SQL server 性能相关 SQL Express 相关 时间格式 输出一个在没有.Net 环境的机器也可以跑得安装包 SCOM Configuration NumSamples and Absolute XML中的时间 decimal.Round 的区别 Dos中常用的命令 反序列化怪现象,数组无父
再谈性能力
DataFlow · 2012-06-20 · via 博客园 - DataFlow

我也是标题党,哈哈,是想谈一下在性能优化方面的经验

高内存占用:

              之前有做过一个应用,内存动辄4G,做了两点改进后,内存占用缩小到10M

              改动:

                    1. 检查所有非托管资源的使用,make sure 所有对象均正常调用 dispose

                    2. 检查所有大家伙(过长string, 和过长byte[]), 拆分为小块,分而冶之

高CPU占用:

              另外一个应用,开始运行的时候,cpu占用率很低,运行一段时间后,CPU占用率就大于70%。

    分析过程:

    从任务管理器上找到哪个w3wp, 哪个用户名,一般不同应用程序池会使用不同的用户,打开IIS management, 找到是哪个应用

    看资源管理器,是线程太多了,还是磁盘高并发,DiskQueueLength,如果QueueLength>2, 瓶颈在磁盘

             改动:

                    1. 控制总线程数,过高的线程数,会使线程切换过频繁,导致CPU高占用

                    2. 使用异步,使线程使用率更高。

                    3. 异常处理

                    4. 最重要的是,找到系统瓶颈,缩小处理时间,提高应用程序的吞吐能力,在这里可以用一些Cloud, SOA, NoSQL方面的知识

性能谈到最后,归于两块:

1. Service数据接口,DB数据接口的设计和DB存储的设计,优化的空间小,代价大,所以最好是在设计阶段充分考虑,一考虑目前的设计接口在能否支撑5年后的数据量,二考虑DB的设计,分库,分表,是否所有的数据块都可以支撑5年后数据量的扩张,会不会出现巨型数据块(不可分的数据单元,如表,文件,库)

总结,没有好的设计,就不要谈性能