.NET6发布了Preview2,这点超越过去10年!

从ASP.NET的性能诟病,到.NET Core的性能持续改进,在每一个.NET Core版本都能看到性能优化提升的介绍。.NET Core3.1在各种性能排行中霸榜,.NET5再度提升了性能,前些天发布的.NET Preview2,通过PGO (Profile-Guided Optimization)来优化二进制内的原生代码,预期全平台能得到 10% 的启动速度提升和吞吐量性能提升!为啥微软花这么大力气做性能提升?因为当下的微服务和云原生时代,服务已经碎片化了,业务会经历更长的调用路径,单一节点性能提升直接影响全局!作为.NET开发者,必须有性能优化意识和方法,才能走在高薪前沿!

优化5大手段

互联网发展至今,各种架构设计优化的思路已经很成熟了,优化的目标就是用更少的资源提供更好的服务,成本利益最大化,常规手段如下:

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

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

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

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

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

优化3大工具

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

1  BenchmarkDotNet性能基准测试

性能测试是开发人最关心的,然而一个算法的性能在不同的设备、不同的CLR、不同的测试方式、不同的数据量,表现出来的结果也是不一样,因此要测试一个算法的性能,需要在充分的背景下才有意义,这就是性能基准测试,C#首选的就是大名鼎鼎的BenchmarkDotNet。这是一个用MIT协议开源的C#程序性能测试库,非常简单易用,开源地址为https://github.com/dotnet/BenchmarkDotNet。现在向Github提交代码前,都会来一波性能测试,用法也非常简单,直接用BenchmarkDotNet即可。在Github上经常能看到下图内容,就是基于Benchmark做的性能基准测试结果。

2  JMeter压力测试

压力测试是一个项目质量的基础保障行为,没有经过压测的项目怎敢上线?说到压力测试,重量级的Loadrunner这些年用的要少一些了,很多专业测试,也是使用JMeter来做压测了。JMeter是Apache公司基于Java开发的一款开源压力测试工具,体积小,功能全,是一个轻量级的测试工具,使用起来非常简单。其原理是通过中间代理,监控与收集并发客户端发现的指令,将其生成脚本,并发送到应用服务器,再监控服务器反馈结果的一个过程。有着详尽的可视化界面,让开发者可以针对性去优化,有的放矢!

3 JetBrains DotTrace内存优化

.NET开发者一般不怎么关心GC和内存泄漏问题,然而一旦发生了,往往就束手无策了。这里给大家推荐下JetBrains DotTrace Memory,亲测最好用的性能调试,内存优化工具!DotTrace Memory支持两种模式,识别即时内存状态,或者动态监控内存分配,拥有丰富的快照视图,还能快速查找关注的对象数据,甚至可以追踪到对应的源代码文件,应用起来效率非常高!

落地实践

性能调优从来都不简单,类似的工具还有很多,然而百闻不如一见,工具还是操作起得来最直观,优化还是数据最好看!今晚八点,我会在线直播演练BenchmarkDotNet多场景代码基准性能测试,JMeter压测Docker里面的Core WebAPI实例,DotTrace监控内存分配和碎片管理,分享多年积累的性能优化经验,欢迎扫码进群关注。

写在最后

从事多年IT,也见识无数码农,深知IT不易,也不是每一份儿努力都能换来对应的回报。当下正值金三银四跳槽季,我们更应该在CRUD之余,去关注下框架,关注下底层,关注下架构,关注下调优,争取让自己的付出拿到更好的回报。新年跳槽季,这里准备了一系列.NET5实战教程、微服务架构教程、多套高频笔面试题等,能助你跳槽加薪一臂之力,请扫码领取!

扫码添加好友即可免费领取

添加微信:zhaoxi066也可获取

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/303576.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人工智能预测2018年世界杯 | 德国人打破历史将在俄罗斯上取得最后的胜利?

2018年俄罗斯世界杯近在眼前,比赛将于6月14日~7月15日在俄罗斯的各地举行。但世界杯还没开始,人们已经出现了各种各样的“比赛结果预测”。其中不乏有一些专业人士以及原足球选手,也有许多“生物”对此预测。前几年,章鱼哥保罗就准…

Q+开放的互联网:腾讯QQ “亮剑” 开放平台

(图一) 近日,人民日报的腾讯广告(图一),在网民心中引起不小的波动。看着图中憨厚的小企鹅,后面是数以万计的应用软件,给人一种大将领兵征战沙场的感觉。图片左下角是 “Q开放的互联网…

php查询mysql乱码_php 查询mysql乱码怎么办

php查询mysql乱码的解决办法:1、修改PHP页面语言本身的编码类型;2、将MySQL字符集更改为“UTF8”;3、使用ultraplus中的编码转换功能进行转换。php读取mysql中文数据出现乱码的解决方法1.PHP页面语言本身的编码类型不合适,这时候&…

猝不及防,Google成功“造人”令人胆寒!人类迎来史上最惨失业潮…

01猝不及防!这次,Google“造人”了!5月8号,谷歌召开一年一度的Google I/O大会。谷歌CEO劈柴直接祭出了这次大会的王牌AI,这个智能过人的Al让人看完不禁倒吸一口凉气……相比Apple Siri和Microsoft Cortana只能机械式对…

雷军这个程序员!真的牛逼!

阅读本文大概需要3分钟。这两天忙着给CEO汇报工作以及跟进几个新产品的进展,忙到连新闻都没时间看。今天终于轻松了点,早上起来刷了刷知乎,看见一个让我惊呆了的消息:雷军要造车了!雷军宣称亲自带队,初期就…

poj2545

题意:给出三个质数,求这素因子只有这三个质数的数中第k大的。 分析:用一个数列,第一位是1。用三个指针指向三个prime要乘的被乘数,最开始都指向1。每次取乘积最小的加入数组,并把指针后移。加入时要判断是否…

微软发布 Windows 10 预览版 Build 21343:此电脑和回收站等启用全新图标

微软已向开发频道(Dev)的 Windows 预览体验成员发布了 Windows 10 Insider Preview Build 21343 更新。内置应用和文件夹启用全新图标从去年开始,微软就不断为 Windows 10 内置应用重新设计图标。在 Windows 10 版本 20H2 更新中,…

什么样的程序员会让人讨厌

我有一个朋友,就是一个程序员,找他做事的时候,最让人讨厌了。00不愿意帮我修电脑。我说电脑坏了,想让他看看,他先是叫我检查插头,然后叫我重启,重启好之后,他冷淡的说:以…

金州勇士队,硅谷黑科技打造的NBA奇迹!

【导读:2018NBA决赛表明,创业如同打球,应该学习勇士,团队作战打“群架”,单打独斗像骑士,纵有“小皇帝”,也难免被横扫】NBA是中国人民最喜欢观看和讨论的美国体育联赛。在NBA诸强中&#xff0c…

入坑机器学习?送你一篇麻省博士的学习心得

[导读] 随着人工智能技术的火热,越来越多的年轻学者正准备投身其中,开启自己的研究之路。和所有其他学科一样,人工智能领域的新人总会遇到各种各样的难题,其中不仅有研究上的,也有生活方面的。MIT EECS 在读博士、前 V…

C# 读写Ini文件

ini文件在Win95以前比较盛行,之后由于出册表等技术的出现,ini技术主键退居二线,不过对于一些小项目,读写ini文件还是很适用的。Windows API提供了读写配置文件的操作,在C#程序中只要导入相应的API即可。例如GetPrivate…

更改windows2003远程最大连接数

windows 2003中的远程桌面功能非常方便,但是初始设置只允许2个用户同时登陆。有些时候因为我在公司连接登陆后断开,同事在家里用其他用户登陆后断开,当我再进行连接的时候,总是报错终端服务超过最大连接数。这时候我和同事都不能登…

mysql sp who_对ASE系统存储过程的剖析-sp_who

昨晚有空,把 sybase 系统过程 sp_who , DDL 后分析了一下,全文如下:-- 以下是 DDL 出来的内容:------------------------------------------------------------------------------- DDL for Stored procedure sybsyste…

区块链、自动驾驶、人工智能鏖战开始 谁将成为下一个风口?

近年来,区块链、自动驾驶以及人工智能的概念频繁爆红于科技界。有业者称,区块链的颠覆在于人们找到了一个低成本解决信任问题的方案;自动驾驶的出现方便了人们的交通出行;人工智能则为我们打开了新的世界。不论是区块链、自动驾驶…

JWT 介绍 - Step by Step

翻译自 Mohamad Lawand 2021年3月11日的文章 《Intro to JWT - Step by Step》 [1]在本文中,我将向您介绍 JWT[2]。我们今天要讲的内容包含:JWT 是什么我们应该在什么时候使用它JWT 与 Session Id 比较JWT 结构JWT 签名JWT 是什么JWT (JSON Web Token) 是…

Helpdesk 流程

最近Fox的公司部署了新的Helpdesk系统。为了让用户从原来打电话和发邮件寻求IT员工帮助的方式转变为使用Helpdesk系统提交tickets,需要制定和规范Helpdesk流程,小小推动下ITIL进程。 HelpDesk系统与AD集成。公司用户可以使用域用户名和密码登陆Helpdesk系…

vscode 快速调到定义处_vim技巧:在程序代码中快速跳转,在文件内跳转到变量定义处...

本篇文章介绍 vim 的一些使用技巧:在程序代码中快速跳转在文件内跳转到变量定义处在程序代码中快速跳转在 vim 中查看代码文件时,可以使用下面命令在程序代码中快速跳转,提高效率。%跳转到光标所在括号的另一个配对括号上,适用于小…

震撼!英伟达用深度学习做图像修复,毫无ps痕迹

在计算机视觉研究领域,NVIDIA常常让人眼前一亮。比如“用Progressive Growing的方式训练 GAN,生成超逼真高清图像”,“用条件 GAN 进行 2048x1024 分辨率的图像合成和处理”的pix2pixHD项目,或者脑洞大开的让晴天下大雨、小猫变狮…

程序员过关斩将--重复的请求并不好过滤

为什么要做重复请求的过滤呢?不过滤不行吗?过滤重复请求很难吗?加一个请求ID不就好了吗?每个技术难点的话题,肯定是由一个产品需求引发的,俗话说:如果没有产品经理,程序员将不需要听…

.NET团队送给.NET开发人员的云原生学习资源

企业正在迅速采用云的功能来满足用户需求,提高应用程序的可伸缩性和可用性。要完全拥抱云并优化节约成本,就需要在设计应用程序时考虑到云的环境,也就是要用云原生的应用开发方法。这意味着不仅要更改应用程序的构建方式,还要更改…