.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。每次取乘积最小的加入数组,并把指针后移。加入时要判断是否…

mysql rpm 安装后修改路径_mysql rpm包安装后修改数据目录

mysql rpm包安装后修改数据目录发布时间:2020-06-14 23:24:25来源:51CTO阅读:1160作者:梦在这里mysql rpm包安装后修改数据目录1.停止mysql数据服务/etc/init.d/mysqld stop2.为创建的数据目录指定权限chmod -R 777 /home/mysql/d…

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

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

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

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

XenServer XAPI简介

什么是XAPI,或者说XAPI在XenServer中有什么作用? XAPI(或者XenAPI)是XenServer中的一组管理接口的统称,是XenServer管理的核心,由一系列的toolstack组成。 XAPI主要提供XenCenter以及pool中各主机通信的接口…

leetcode刷题可以用python吗_LeetCode刷题——第四天(python)

每天选壁纸做封面这个环节是我最喜欢的,今天的题目是比较经典又十分简单的一道题。第四天——第四题(回文数)请看题:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例1:输入: 121输出: true示例2&…

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

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

C# 调用动态链接库读取二代身份证信息

概述一般来说winform应用程序解决这个问题起来时很容易的,web应用程序就麻烦一点了。你必要有联机型居民身份证阅读器一个。实现方式1、新建一个winform控件项目ReadCardControl,添加一个主类ReadIDCardprivate bool ReadIDCard(){try{BLL.API.SynIDCar…

lighttpd mysql_lighttpd+mysql+php

博客已经搬家,请访问如下地址:http://www.czhphp.com一:安装mysql安装:unzip mysql-5.1.33.zipcd mysql-5.1.33.zip./configure –prefix/usr/local/mysql –enable-assembler –with-extra-charsetscomplex –enable-thread-safe…

ibatis学习笔记

http://code.google.com/p/mybatisnet/ 官网

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

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

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

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