.NET开源5年了,这些宝藏你还没get?

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: .NET开源5年了,这些宝藏你还没get?

从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做的性能基准测试结果。

image.png

2 JMeter压力测试

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

image.png

3 JetBrains DotTrace内存优化

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

image.png

落地实践

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
14天前
|
存储 缓存 供应链
.NET 开源工业级移动端仓库管理系统
【9月更文挑战第17天】.NET 开源工业级移动端仓库管理系统是一款基于 .NET 技术的高效仓库管理解决方案,具备开源免费、工业级品质、移动端支持等特性,提供全面的仓库管理功能,如入库、出库、库存及报表统计,并采用模块化设计,便于定制和扩展,显著提升仓库管理效率与准确性。
|
26天前
|
Linux C# Android开发
一个开源、跨平台的.NET UI框架 - Avalonia UI
一个开源、跨平台的.NET UI框架 - Avalonia UI
|
26天前
|
前端开发 关系型数据库 MySQL
ThingsGateway:一款基于.NET8开源的跨平台高性能边缘采集网关
ThingsGateway:一款基于.NET8开源的跨平台高性能边缘采集网关
|
26天前
|
机器学习/深度学习 人工智能 算法
ML.NET:一个.NET开源、免费、跨平台的机器学习框架
ML.NET:一个.NET开源、免费、跨平台的机器学习框架
|
26天前
|
API C# Windows
一个.NET开源、现代、轻量级的文本编辑器
一个.NET开源、现代、轻量级的文本编辑器
|
26天前
|
消息中间件 开发框架 前端开发
YuebonCore:基于.NET8开源、免费的权限管理及快速开发框架
YuebonCore:基于.NET8开源、免费的权限管理及快速开发框架
|
2月前
|
开发者
.NET生态的开源宝藏:探索参与开源项目的秘密路径与丰厚回报
【8月更文挑战第28天】本文介绍了.NET生态系统中开源项目的重要性和参与方法。.NET开源项目涵盖基础库到高级框架,促进技术交流与创新。参与项目可提升技能、建立品牌,并获得职业网络。选择合适项目需考虑兴趣、活跃度和难度。贡献流程包括了解项目、设置环境、查找问题和提交代码。开发者还可通过使用开源库、学习最佳实践和获得社区支持来受益。此外,有能力的开发者也可尝试维护自己的开源项目。希望本文能帮助更多.NET开发者参与开源项目。
32 5
|
2月前
|
API
【Azure Key Vault】.NET 代码如何访问中国区的Key Vault中的机密信息(Get/Set Secret)
【Azure Key Vault】.NET 代码如何访问中国区的Key Vault中的机密信息(Get/Set Secret)
|
26天前
|
网络协议 C#
NSmartProxy:一款.NET开源、跨平台的内网穿透工具
NSmartProxy:一款.NET开源、跨平台的内网穿透工具
|
2月前
|
开发框架 JavaScript 前端开发
提升生产力:8个.NET开源且功能强大的快速开发框架
提升生产力:8个.NET开源且功能强大的快速开发框架
下一篇
无影云桌面