vlambda博客
学习文章列表

鹅厂面试官问了句.NET性能调优,求职者的回复亮瞎全场...

鹅厂面试官问了句.NET性能调优,求职者的回复亮瞎全场...

JVM调优已经是普通Java工程师的必修课了,而.NET开源快5年了,CLR层面的优化到目前都不多见,甚至常用的性能调优工具都还没玩过。.NET5马上来了,要想在互联网大潮中逆袭,光靠平台是不够的,开发者也得给力才行!这里整理了几款性能调优工具,就着个人的实操经验给大家分享下,希望能有些帮助。

鹅厂面试官问了句.NET性能调优,求职者的回复亮瞎全场...
性能调优思路
鹅厂面试官问了句.NET性能调优,求职者的回复亮瞎全场...

性能调优就是用更少的资源提供更好的服务,成本利益最大化。性能调优的手段并不新鲜,常规手段如下:


1
空间换时间

缓存就是典型的例子,将数据额外存储一份儿,下次直接重用,空间换时间。

2
时间换空间

大文件处理时,切分数据分批次处理,花更多的时间,用更少的空间完成处理。

3
分治思想

典型的归并排序、快排,都是将数据分成小块儿排序最终再合并,分而治之。

4
异步化

各种消息队列就是典型案例,将业务分拆,避免阻塞,提升吞吐量。

5
并行

包括多线程和单线程多进程两种模式,就是将任务分开,同时执行以加快速度。

6
集群化

提供良好的扩展能力,更多的资源换取更好的性能。


鹅厂面试官问了句.NET性能调优,求职者的回复亮瞎全场...

鹅厂面试官问了句.NET性能调优,求职者的回复亮瞎全场...
BenchmarkDotNet
鹅厂面试官问了句.NET性能调优,求职者的回复亮瞎全场...
性能基准测试

性能测试是开发人最关心的,然而一个算法的性能在不同的设备、不同的CLR、不同的测试方式、不同的数据量,表现出来的结果也是不一样,因此要测试一个算法的性能,需要在充分的背景下才有意义,这就是性能基准测试,C#首选的就是大名鼎鼎的BenchmarkDotNet。

鹅厂面试官问了句.NET性能调优,求职者的回复亮瞎全场...

.NET5调优 Part 1

基于BenchmarkDotNet对多场景代码进行基准性能测试,打破陋习探究本质,完成代码定向优化,输出优化思维方式。


鹅厂面试官问了句.NET性能调优,求职者的回复亮瞎全场...


鹅厂面试官问了句.NET性能调优,求职者的回复亮瞎全场...
JMeter
鹅厂面试官问了句.NET性能调优,求职者的回复亮瞎全场...
压力测试

压力测试是一个项目质量的基础保障行为,没有经过压测的项目怎敢上线?说到压力测试,重量级的Loadrunner这些年用的要少一些了,很多专业测试,也是使用JMeter来做压测了。鹅厂面试官问了句.NET性能调优,求职者的回复亮瞎全场...

JMeter是Apache公司基于Java开发的一款开源压力测试工具,体积小,功能全,是一个轻量级的测试工具,使用起来非常简单。其原理是通过中间代理,监控与收集并发客户端发现的指令,将其生成脚本,并发送到应用服务器,再监控服务器反馈结果的一个过程。有着详尽的可视化界面,让开发者可以针对性去优化,有的放矢!


.NET5调优 Part 2

基于JMeter压测Docker里面的Core WebApi实例,输出响应曲线图,实践Core WebApi多个优化技巧,定向优化项目!


鹅厂面试官问了句.NET性能调优,求职者的回复亮瞎全场...


鹅厂面试官问了句.NET性能调优,求职者的回复亮瞎全场...
JetBrains DotTrace
鹅厂面试官问了句.NET性能调优,求职者的回复亮瞎全场...
内存优化

DotTrace Memory支持两种模式,识别即时内存状态,或者动态监控内存分配,拥有丰富的快照视图,还能快速查找关注的对象数据,甚至可以追踪到对应的源代码文件,应用起来效率非常高!

鹅厂面试官问了句.NET性能调优,求职者的回复亮瞎全场...

.NET5调优 Part 3

快速分配和快速释放内存-生成内存碎片-制造内存泄漏,DotTrace监控全过程,在限制内存的docker容器实例中追踪内存使用并完成优化!


鹅厂面试官问了句.NET性能调优,求职者的回复亮瞎全场...


鹅厂面试官问了句.NET性能调优,求职者的回复亮瞎全场...
行动起来
鹅厂面试官问了句.NET性能调优,求职者的回复亮瞎全场...


鲁迅说过:菜鸟写业务,老鸟搭架构,高手玩调优。性能调优可谓是食物链顶端的技术,高薪面试必备良品。有心尝试的小伙伴儿,这里还给大家整理了软件工具包,到时候跟着直播一起操作扫码拿去不谢!

【扫码领取软件工具包】