.Net程序内存异常的原因及解决(2)

(3)最后一个问题,就是讲所有的方法修改为异步方法。这时候就能祭出Task、Async、Await了。但是基于的框架是.net freamwork4的,后来又去查阅MSDN的文档发现.net freamwork4远古框架中还是有这些特性的虽然用法稍微难受点但是还是能优化的。一定要记住一点,开发服务端要有“服务端”思维如果都是同步方法就会被同步阻塞处于“等待处理结果状态”这样的话服务端的并发量是上不去的。

这里虽然没怎么用上的一发大招,但是这里还是分享给大家“注释大法”;注释掉最有可能出问题的地方逐一排查一定能发现问题的所在就是非常的耗时那会我基本每天工作12小时,尤其是公司的远古项目通常“代码烂”、“设计基本没有”、“使用的.net框架版本低”等等,一堆恶心人的事情发生。

(2)工具

Visual Studio自带的Profile。【可以分析CPU、内存等占用情况;这款比较推荐】

VMMap【可以分析CPU、内存等占用情况】

ANTS Performance Profiler【这款工具比较强大能分析调用链路逐级告诉你内存占用的地方以及内存占用大小】

Window操作系统自带的资源监视器这个不用多说大家都会用。

Part3,总结

基于以上的修改,在测试服务器上稳定运行3周内存稳定在2.9G左右;

一定要记住:

“遇到任何棘手的事情不要抱怨。”

“一个优秀的软件工程招聘进来就是解决问题的,而不是制造问题;”

“对于任务的安排,高手永远都是说出解决问题的期限;到点交东西。而不是支支吾吾说不清楚、退缩。”

“遇到问题冷静思考,相信自己一定可以的;那怕失败去尝试一下也好。”

“没解决问题的时候不要说任何话,说什么都像是在找理由。闭上嘴巴去想办法。”

其实解决这个问题时期发生了很多有趣的故事,不过最终还是要解决难啃的问题证明自己,开发学习本身就是一个不断变强的过程“修技术,也修内心”当自己逐渐变强之后也不要鄙视技术不好的同事始终保持一颗学徒的心。

Part4,彩蛋

解决这个问题之后在同部门同事的眼里威望都会有提升(尤其是测试部门的小姐姐,因为她们不用费力的每天去看服务器了),最终解决项目的重大事故部门老大给了机会调到其他省的研发中心当项目经理薪资平移的基础上再上浮百分之十。可见掌握一手救急的技能有多么划算。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyggxw.html