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

性能调优思路

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

1

空间换时间

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

2

时间换空间

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

3

分治思想

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

4

异步化

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

5

并行

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

6

集群化

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

性能调优的方式很多,然而最直接有效的办法就是使用优秀的工具,工欲善其事必先利其器,优秀的工具能让性能调优事半功倍!下面给大家推荐几款常用工具,亲测非常靠谱!

BenchmarkDotNet

性能基准测试

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

BenchmarkDotNet是一个用MIT协议开源的C#程序性能测试库,非常简单易用,开源地址为https://github.com/dotnet/BenchmarkDotNet。现在向Github提交代码前,都会来一波性能测试,用法也非常简单,直接用BenchmarkDotNet即可。下图内容,就是基于Benchmark做的性能基准测试结果。

.NET5调优 Part 1

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

参与人数较多,也可加微信号:zhaoxihhhhh

JMeter

压力测试

压力测试是一个项目质量的基础保障行为,没有经过压测的项目怎敢上线?说到压力测试,重量级的Loadrunner这些年用的要少一些了,很多专业测试,也是使用JMeter来做压测了。

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

.NET5调优 Part 2

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

参与人数较多,也可加微信号:zhaoxihhhhh

JetBrains DotTrace

内存优化

.NET开发者一般不怎么关心GC和内存泄漏问题,然而一旦发生了,往往就束手无策了。这里给大家推荐下JetBrains DotTrace Memory,亲测最好用的性能调试,内存优化工具!

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

.NET5调优 Part 3

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

参与人数较多,也可加微信号:zhaoxihhhhh

行动起来

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

【扫码领取软件工具包】

Java面试必问JVM调优,那.NET5呢?相关推荐

  1. hive 字段不包含某个字符_hive之面试必问 hive调优

    1.Fetch抓取(Hive可以避免进行MapReduce) Hive中对某些情况的查询可以不必使用MapReduce计算.例如:SELECT * FROM employees;在这种情况下,Hive ...

  2. 如何应对面试官的JVM调优问题

    为什么要进行JVM调优 我猜你肯定是为了面试,现在很多公司都会问这个,虽然你工作了N年JVM调优可能都不会接触到,但我觉得还是有考察的必要的.因为很多时候我们考察一个人不光要考察他的硬实力,还要看他有 ...

  3. Java 面试必问题目,Java 后端校招面试题

    字节跳动一面: 自我介绍,主要讲讲做了什么和擅长什么 看你项目做 Spring 比较多, 问一下 Spring 相关的东西, IoC 是什么概念? Bean 的默认作用范围是什么?其他的作用范围? 索 ...

  4. Java虚拟机这一块 —— JVM 调优和深入了解性能优化

    JVM 调优和深入了解性能优化 JVM 调优的本质 GC 调优原则 调优的原则 目的 GC 调优 调优步骤 日志分析 阅读 GC 日志 -XX:+UseSerialGC -XX:+UseParNewG ...

  5. 面试必问——jvm原理及优化(包括GC)

    jvm介绍 java从编码到运行 java文件被编译成class后,jvm先装载java类库,然后读取class,类加载器(ClassLoader)读取class文件,通过字节编码器和即时编译器(JI ...

  6. Java面试必问!javasocket服务端持久化

    前言 最近刷到了一句耐人寻味的话,"解决雪崩问题的最好办法是不发生雪崩". 不论是在硅谷互联网公司里还是在国内的互联网平台上,曾多次遇到过海量规模的交易瞬间吞噬平台的悲惨故事. 核 ...

  7. java项目processes设置,Jvm调优和SpringBoot项目优化的详细教程

    参考文章 1.先看一下未设置JVM参数的情况,默认情况下,没有设置任何Jvm参数. 2.设置Jvm参数. 配置参数: 关于这些设置的JVM参数是什么意思,参考Jvm调优. -XX:MetaspaceS ...

  8. 今年Java面试必问的这些技术面,看完这一篇你就懂了

    说明 Java生鲜电商平台中由于采用了微服务架构进行业务的处理,买家,卖家,配送,销售,供应商等进行服务化,但是不可避免存在分布式事务的问题. 业界有很多的解决方案,对此我相信大家都百度一下子就有很多 ...

  9. Java面试必问!mysql分页查询

    前言 高并发,几乎是每个程序员都想拥有的经验.原因很简单:随着流量变大,会遇到各种各样的技术问题,比如接口响应超时.CPU load升高.GC频繁.死锁.大数据量存储等等,这些问题能推动我们在技术深度 ...

最新文章

  1. 【PP】重复制造业务中工作中心变更的问题
  2. Filebeat配置module采集nginx日志
  3. 图˙谱˙马尔可夫过程˙聚类结构(转自MIT的中国留学生博客)
  4. 基于ASA防火墙的SSL ×××配置
  5. mysql命令书写顺序_MySQL SQL语句书写顺序和执行顺序
  6. php查找顶级分类,php 无限级分类 获取顶级分类ID,php顶级_PHP教程
  7. iOS开发 autoResizingMask使用
  8. java压栈重复字符串_Java 实例 – 压栈出栈的方法实现字符串反转
  9. 力扣题目——25. K 个一组翻转链表
  10. Rayzone2面大旗的官方汉译
  11. pytorch tensor_Pytorch之Tensor操作
  12. 《JAVA设计模式》之中介者模式(Mediator)
  13. 如何获取目标期刊的参考文献格式模板?
  14. Some file crunching failed, see logs for details解决方案 以及.9patch点9图片的报错的详细修改方法
  15. GNSS基本概述——GPS,BD,GLONASS,Galileo
  16. wp-db.php,WordPress中的数据库操作类wp-db.php
  17. 嵌入式工程师,怎么不被历史洪流冲走?
  18. 国内外云服务现状及发展探讨
  19. 牛牛的Link Power II
  20. 【spring】依赖注入之@Autowired依赖注入

热门文章

  1. Codeforces 1066 C(思维)
  2. Ubuntu防火墙:ufw
  3. 数据库_7_SQL基本操作——表操作
  4. 洛谷 P3391 文艺平衡树
  5. 高人写的浙大简史(转)
  6. 如何将Outgoing Webhook部署到中国版Azure
  7. 火狐 增强查找工具栏_在“提示”框中:简单的IE至Firefox同步,轻松的Windows工具栏和识别USB电缆...
  8. office自定义安装选项_如何自定义Office 2013中功能区上的现有选项卡
  9. 阿里云与中国联通首个公共云平台上线
  10. 异常检测之浅谈入侵检测