跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 还有人用.Net 吗,亲测.Net5 性能飞升
未分類
5 1 月 2021

还有人用.Net 吗,亲测.Net5 性能飞升

还有人用.Net 吗,亲测.Net5 性能飞升

資深大佬 : kaka6 2

下午亲测了下.Net5,性能确实飞升

性能逼近以高并发著称的 Go

当然我的测试还比较简单,打印:hello + 当前时间

使用云服务器:centos 7.6 2 核 4G

所有程序都打包在 docker 中运行

使用 abtest 测试 与其它语言对比结果如下图: 还有人用.Net 吗,亲测.Net5 性能飞升

PS:要用.Net5, 需要装 VS2019 V16.8 以上版本,不然会出错

大佬有話說 (100)

  • 資深大佬 : WangMister

    www.techempower.com/benchmarks
    作 Web 服务来说,性能很强了,我一直感觉.net 太适合写业务类的 Web 服务了

  • 資深大佬 : hantsy

    没做过 .net 项目。

    看了 CSharp 9 加入 record, 从 Java 15 代码翻译过去更简单了,写一个玩具。

    https://github.com/hantsy/code-challenges/tree/master/csharp

    >要用.Net5, 需要装 VS2019 V16.8 以上版本,不然会出错

    安装了 .net 5 sdk, 用 rider 和 VsCode 也可以啊。

  • 資深大佬 : hoyixi

    多谢分享。

    如果再加个 Nodejs 就好了

  • 資深大佬 : hantsy

    xUnit, Moq 也还不错,可以代替 Java JUnit+Mockito 。

  • 主 資深大佬 : kaka6

    @WangMister
    .net 做为企业应用是可以的,做 hr,oa, crm 等协作管理软件问题不大
    因为企业应用并发不会太多
    之前用.Net 开发的协作管理软件为 3000+员工的企业提供服务,没什么问题
    他的稳定性是可以的,以前就是并发不行

  • 資深大佬 : kiracyan

    没有人带头很难有起色 现在用.net 的不是工业就是小厂 生态真的很差

  • 主 資深大佬 : kaka6

    @hantsy 对对对,我表达有误
    我的意思是如果用 vs 2019 的 ide,得用 v16.8 以上版本,其它的没试过

  • 資深大佬 : wysnylc

    看好,但是还不能作为吃饭的家伙

  • 資深大佬 : telung

    现在流行 macOS

  • 資深大佬 : hantsy

    @kiracyan 欧洲应该应用蛮多的。.net 跨平台后,大厂里面跳出来首先支持 1.0 是 redhat 。

  • 資深大佬 : hantsy

    @kaka6 对于我长期写 Java 的 VS 实在不习惯。Rider 才是我的菜。

  • 資深大佬 : hantsy

    @telung 苹果真能折腾,M1 让多少在等待应用程序。

  • 資深大佬 : liuhan907

    我们有在用 dotnet5 开发,不过是游戏后端。挺棒的,性能瓶颈就从来不在语言这里。

  • 資深大佬 : kiracyan

    @hantsy 当然说的国内环境

  • 資深大佬 : hantsy

    @liuhan907 Web 程序性能基本上都是网络,Database 的问题。

  • 資深大佬 : Grapefruit

    目前还在用 3.1,比较期待 MAUI

  • 資深大佬 : fiveelementgid

    (*﹏*;)差不多得了,建议测试一下 EF Core 跨平台辅助性能,大家都不分家,肯定要用的
    性能垃圾(.net 5.1)如是说,正头大

  • 資深大佬 : fiveelementgid

    @hantsy 说到点上了,EF Core 用的要吐了

  • 資深大佬 : liuhan907

    @hantsy 游戏还是有一定的计算量的,不过反正堆机器。

  • 資深大佬 : hantsy

    @kiracyan 国内没什么可说的,整个行业都是伸手,代表不了趋势。虽然国内软件从业人员数量很大,但影响力在国际上不如周边的一些小国。就 Java 来讲,老外几乎遗忘了 MyBatis,国内的公司居然是标配。其它国家开发人员中的 Java 比例也不会有中国这么高。

  • 資深大佬 : liuhan907

    @fiveelementgid 我们目前在用 ef,没感觉出性能有瓶颈。你们 ops 有多少遇到了瓶颈?我得看看我们是否会遇到。

  • 資深大佬 : iceneet

    .net 在外国还挺火的额 在中国就太少了 不过性能还是很强的

  • 資深大佬 : hantsy

    @fiveelementgid EF 一直以它的语法 API 优雅著称,操作数据库就像操作本地内存数据一样,刚开始玩 .net ,后面再试一下。Groovy 下的有新项目准备 Copy EF,之前的 GORM 我觉得已经很像了。

  • 資深大佬 : chenqh

    国内还是 java, 大公司好一点的还有 golang,其他基本都凉了

  • 資深大佬 : masquerader

    从.NET Framework 到.NET Core,再到现在的.NET 5 将两者融合到一起,.NET 框架以及核心的语言 C#/F#进步巨大,尤其是命令行工具和对跨平台( macOS/Linux/Windows,X86/ARM )的支持真的让人刮目相看。
    我不是以写代码为生,不过业余时间还是会撸撸码研究一些程序化交易。交易很多成熟框架都用 Python,试过几次,无奈实在懒得记动态语言的各种函数,IDE 的提示也做不到像静态语言那样精准迅速,还是决定.NET 生态上自造回测引擎的轮子。选了 F#作为主语言写交易回测框架以及 CTP 的程序化交易。个人感受是无论是写框架,写各种应用( Web/Desktop app ),还是用 REPL/Interactive 进行数据分析,都爽到起飞。

  • 資深大佬 : chenqh

    abp 性能那么差吗

  • 資深大佬 : hantsy

    目前 .Net 写测试有哪些工具? 目前我只试用了 xUnit, Moq 。

  • 資深大佬 : ntgeralt

    一看到 [要用.Net5, 需要装 VS2019 V16.8 以上版本,不然会出错]
    主要是这些 win 自己不自带。难道开发个样品,还要发一堆依赖给客户

    富途牛牛和 github win 版都非常优秀,没什么奇葩依赖

  • 資深大佬 : goodboy95

    @ntgeralt 跟客户有啥关系,vs2019 是 ide,客户只要一个 runtime.
    .Net 5 稳定之后微软一般都会给一个.Net runtime 更新的,就像.Net framework 4.x 一样

  • 資深大佬 : SpiritLingPub

    @fiveelementgid ef core 连接使用 mysql,感觉要吐了,各种问题。但是使用 sql server 的话,还是挺好使的,毕竟是一家的,各种做的都挺好的。个人开发或者小型企业大多数使用 mysql,导致 ef core 使用 mysql 贼难受

  • 資深大佬 : quan01994

    用啊。

  • 資深大佬 : TypeError

    Python 用 fastapi 好一点,不过高并发还是 go 爽

    最全的 Web benchmark 参考
    https://www.techempower.com/benchmarks

  • 資深大佬 : diib

    针对回复说一下吧,dotnet core 5 可以编译成没有 CLR 依赖的本地程序(其实 3 就可以了,5 只是 3 plus 版),如果设计得当还可以编译成单文件程序。

    编译命令行类似这样:

    `dotnet publish -r linux-x64 -c Release /p:PublishSingleFile=true –self-contained`

    -r 指定平台(经测试,可以在 linux 平台发布 win 平台,另 intel 的 mac 平台编译无问题,m1 尚不清楚)
    /p 指定了单文件发布
    –self-contained 指定了无依赖发布

    各参数详情请见 ms 官方文档。

    单文件发布需要注意:

    1 、确认使用的第三方包支持;
    2 、涉及到文件夹操作、c lib 引用的需要充分测试;

    另:
    EF Core 性能优化比较考验人,通常项目上为了性能会直接通过 ADO.NET 和 SQL 来操作 DB ;
    CLR 自带了 JSON 库,虽说是同一个人开发的,但是生产环境还是使用 NewtonSoft 来保护历史代码;
    只要 run 起来,性能从来就不是问题;
    5 还不能 UI 跨平台。

  • 資深大佬 : manami

    用过 go 就不想写其他语言了

  • 資深大佬 : AX5N

    这样一对比,好像 python 的 flask 的效率也不差啊

  • 資深大佬 : Zcyisabigman

    @manami 为啥?

  • 資深大佬 : Rwing

    qps 竟然比 go 差,我不信~

    https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/go-csharpcore.html

  • 資深大佬 : manami

    @Zcyisabigman 简单强大,用 go 写项目感觉不用框架都快的飞起

  • 資深大佬 : Rwing

    @manami go 的语法还是很感人的。。。基础类库也缺少很多。。。泛型也没有,真的不舒服

  • 資深大佬 : manami

    @Rwing 习惯成自然 🙂

  • 資深大佬 : hantsy

    写 Go 回到原始社会了,https://github.com/hantsy/code-challenges/tree/master/go

  • 主 資深大佬 : kaka6

    哇,这么多人回复啊
    看来语言的争议始终有之
    不管如何,挣到钱最重要
    祝大家 2021 不管三七二十一,挣大钱
    语言不行,机子来凑,无所谓,挣钱是王道
    哈哈哈…

  • 資深大佬 : jaylengao

    Running 1m test
    2 threads and 100 connections
    Thread Stats Avg Stdev Max +/- Stdev
    Latency 2.59ms 4.64ms 203.46ms 92.69%
    Req/Sec 28.01k 4.95k 35.73k 92.00%
    Latency Distribution
    50% 1.51ms
    75% 2.73ms
    90% 6.70ms
    99% 12.89ms
    3345736 requests in 1.00m, 810.45MB read
    Requests/sec: 55733.32
    Transfer/sec: 13.50MB

    aliyun2c4g ubuntu18 我曾经闲的用 wrk 压过 java vert.x 和.netcore5,类似返回 hello world 这种,上面是 vertx 的结果,cpu 没拉满,.netcore5 稍微低一点 cpu 打满

    单论语言性能 java/c#/go 其实相差不大

  • 主 資深大佬 : kaka6

    @chenqh
    abp 框架加载的东西很多,性能并不太好,它就比较适合快速开发
    不过.net2.0 在正常情况下 qps 也都在 60 左右,占的初始内存还得 200M 以上
    .net5 确实比之前好很多

  • 資深大佬 : forgottencoast

    @hantsy xUnit 是测试框架,VS 自己也有一个,还有原来的 NUnit 。
    Moq 是 Mock 工具,语法简单好用。
    这两个其实就够用了。

  • 資深大佬 : forgottencoast

    @kaka6 用 abp 能带来哪些好处?

  • 資深大佬 : salamanderMH

    .NET5 确实性能高。

  • 資深大佬 : chinvo

    质疑性能的可以看看 TechEmpower 的 Web Framework Benchmarks

    https://www.techempower.com/benchmarks/#section=data-r19&hw=ph&test=composite

    综合评分 Spring 排第 34,Asp.Net Core MVC 排第 6

    数据查询 Asp.Net Core MVC + EF Core + PG 表现不太好, 但是 Asp.Net Core MVC + ADO + PG 表现和 Spring 全家桶不相上下

    数据写性能 Asp.Net Core MVC + ADO 更甩 Spring 十八条街

  • 資深大佬 : chinvo

    至于 JSON 和 Plaintext 性能, Asp Net Core MVC 的性能也是力压 Spring

  • 資深大佬 : chinvo

    .Net 毕竟是晚于 Java 开发出来的语言, 在设计之初就规避了很多 Java 当时已经暴露出来的问题

  • 資深大佬 : Jackeriss

    tornado 换 uvloop 才快,和 go 差不多

  • 資深大佬 : fiveelementgid

    @liuhan907 没,学生,在搞 Linux 迁移,经常出现一些莫名奇妙的错误,性能分析的话,主要是 migration 之类的 Linq 语法生成中间层代码
    牺牲了部分性能
    @hantsy Java 也开始准备抄

    @SpiritLingPub 别说 MySQL 了….SQL server 也经常出奇怪的问题

  • 資深大佬 : beginor

    @SpiritLingPub 如果是使用 SQLServer 之外的其它数据库的话, 可以考虑 NHibernate, 我们一直用, 非常稳

  • 資深大佬 : hantsy

    @beginor NHibernate 和 Spring.net 还在更新?

  • 資深大佬 : chinvo

    @hantsy #51 确实都在更新

  • 資深大佬 : fafa2npu

    @hantsy Nsubstitute

  • 資深大佬 : timsensor

    一直都很看好.net core,linq 、ef core 、asp.net core 太强大了

  • 資深大佬 : timsensor

    在国内,.net 就差头部公司来带动生态

  • 資深大佬 : hantsy

    @chinvo spring-net 好久没更新了,网站还是 2012 年的。代码里面记录还最近跳到 .net 5 重新编译了一下。

  • 資深大佬 : hantsy

    https://github.com/spring-projects/spring-net

  • 資深大佬 : hantsy

    http://www.springframework.net/

  • 資深大佬 : charlie21

    谁规定的快就要用阿?

  • 資深大佬 : chinvo

    @hantsy #56 呃,我不用 spring.net ,也只是粗略看了眼 repo,看来是乌龙了

  • 資深大佬 : SashaMu

    这三年进的两家公司都是.net 转 Java
    现在新公司也有 .net 转 Java,php 转 Java 的同事

  • 資深大佬 : xcstream

    主要是.net 之前的印象就是和 windows 强绑定

  • 資深大佬 : darknoll

    就是性能超过 c++也没啥人用

  • 資深大佬 : aaronlam

    .net 在国内真的也就国企用的起了吧,感觉 net core 出来的还是太晚了。。

  • 資深大佬 : beginor

    @hantsy spring.net 不清楚。

    但是 NHibernate 确实一直在更新, 不仅支持 .Net Standard 2.0, 而且还支持实现了 Asp.Net Core 的 Identity

  • 資深大佬 : beginor

    @xcstream 现在 .Net 跨平台已经是官方支持的了

  • 資深大佬 : beyondex

    .NET Core 每一代的基础性能都有较大提升,ASP.NET Core Web 框架性能提升很猛。

  • 資深大佬 : beyondex

    @hantsy NHibernate 一直在更新,非常完善。

  • 資深大佬 : UnknownSky

    .net ,我寫外掛還是蠻順的

  • 資深大佬 : love

    万年扶不起的框架,我最近一次使用都 10 年前了,现在还是这吊样哈哈
    推广不力框架本身的问题占最大,没比别的语言开发效率高反而更臃肿,当然这是微软风格

  • 資深大佬 : baba233

    上家公司几乎全是.net

  • 資深大佬 : php8

    国内在互联网以外,.net 用户可不少,只是没有跳出来说,也不像 Java 那样各种分析框架代码,分析各版本 jdk 库的实现差异

  • 資深大佬 : hihanley

    @love 你都说了”最近一次使用是十年前了”,是怎么得出”推广不力框架本身的问题占最大,没比别的语言开发效率高反而更臃肿”的结论的?

  • 資深大佬 : forgottencoast

    @love 国外用的人很多很多,不知道你这个结论是怎么来的。

  • 資深大佬 : bijue

    @UnknownSky 还可以写外挂,不是 c++方便吗。我不是 it 人员,不懂

  • 資深大佬 : liuhan907

    @fiveelementgid 我们是从头开始写的 Linux 下的代码,还没遇到系统兼容性问题。ef 的话我觉得迁移代码性能差点也无所谓吧,反正是只跑一次的东西。

  • 資深大佬 : fiveelementgid

    @liuhan907 hhhhhh 也是,问问你们在 VS 上面开发还是直接用 Linux 跑 VSC/Rider 进行开发

  • 資深大佬 : roundgis

    @forgottencoast .net 在中國也有很多應用,只不過大多不是互聯網行業,不那麼引人注目罷了

  • 資深大佬 : kaedea

    MAC 上面能用 Visual Studio 吗?

  • 資深大佬 : azhuge233

    @kaedea Intel mac 可以,VS for Mac,M1 的不清楚

  • 資深大佬 : qinfensky

    和 Vert.x 比呢

  • 資深大佬 : X2031

    .net 用户 在此

  • 資深大佬 : netnr

    现在是基金会打理,不是微软(当然微软是主要贡献者)

  • 資深大佬 : wangxiaoaer

    .Net/.NetCore/.Net Framework/ASP.Net/ASP.NET MVC/Web Forms/Core CLR………………

    每次想学.Net 的 web 开发都被这些搞大了头,所以真不明白为什么还有人说.Net 简单? 光特么这些概念都把人搞头大了。

    你们鄙视的 java 也比他简单啊 ,java web 就是 servlet 那一套,完了主流框架 spring 等就是对 servlet 的封装,完事儿。

    有大佬帮忙解释下吗?

  • 資深大佬 : Rwing

    这个。。。。其实都一样,没区别,没有谁更简单谁更复杂之说。
    .Net/.NetCore/.Net Framework 你就拿 java/java se/java ee 来理解
    ASP.Net/ASP.NET MVC/Web Forms 你就拿 java web/spring mvc/java jsp 来理解
    CLR 就是 jvm 咯

  • 資深大佬 : nguoidiqua

    上说出了我的心声,PHP 和 ASP 对决的年代我就被 ASP ASP.NET VB.NET C# 之类搞迷糊了,不晓得学哪个才好,直接放弃,而且我很讨厌名字里面用 # 号 . 号 ++ 号什么的,看上去就不舒服。

  • 資深大佬 : zhuangzhuang1988

    @wangxiaoaer 看现代前端开发那才叫多。。。

  • 資深大佬 : wangxiaoaer

    @zhuangzhuang1988 #90 多吗?主流开发模式也就 jquery 时代–>backbone 为代表的 MVC 时代–>angular 为代表的 MVVM 时代 /以 ReactJS 技术栈为代表的 FLUX 时代,除了 flux 的模式跟之前有点变化外,大多都是换汤不换药,而 flux 的核心也就是 v=f(state)。

    至于其他的什么 webpack babel 啥的,都是工具,能跑起来就行。

  • 資深大佬 : chouchoui

    太好了又有 go 吹跳出来送,跟风吹见一个 B 一个

  • 資深大佬 : wangxiaoaer

    @chouchoui #92 大哥……,你这,虽然我也非常恶心 go 的语法,但是你这是不是有点激动? golang(er)伤害你了?

  • 資深大佬 : pkoukk

    .net python node go 都写过的表示,c#绝对是世界上对开发者最友好的语言
    完善的标准库,规范统一的 api,充足的文档,配合上宇宙级 ide vs,断网开发一个项目轻松愉悦,其它语言做得到么?

  • 資深大佬 : niubee1

    到奶主要是生态太小了,池子浅

  • 資深大佬 : Cloutain

    .NET 在鄙人心里一直是最好的框架

  • 資深大佬 : nguoidiqua

    @Rwing

    根本不是一回事好吧,别人学 Java 根本不需要了解这些,他先从 Java 语法开始就是了,学完语法就开始 Java Servlet JSP 什么的,这个时候他已经学会基础了,然后才会了解到 Spring 之类框架什么的,然后才会了解到 MVC 之类。

    微软这套东西,一上来就是一堆名词,都不知道要先学什么东西,搜索半天学哪个好,要学什么语言,我记得当初可以用三种语言开发,所以又要去研究那三种语言学哪个好,当然要上网搜索看看了,到这个时候对这套东西就没啥好感了,在当年,搜索几次就会了解到 PHP Java 之类,然后就学 PHP 去了。

    对于现在的我来说,是很容易搞清楚这些关系,因为我已经学过别的了,那现在搞清楚了也没啥意义了,我也不会去学了,用不上了,而且我现在看到这堆名词依然没啥好感,因为名字还在变来变去,依然感觉很乱。

  • 資深大佬 : lbp0200

    然并卵

  • 資深大佬 : DelayNoMay

    .Net 在体制内或传统单位还是很香的,不考虑 996 互联网的可以去学下.Net

  • 資深大佬 : hantsy

    @wangxiaoaer
    @nguoidiqua Spring 5 算个分水岭,以前的版本可以说对 Java EE 和第三方一些常见开源技术的深度封装。

    Spring 5 大量删除了第三方依赖,其中包括大名鼎鼎的 Apache Velocity 模板。同时开辟了 ReactiveStreams 规范集成,加入 Functional 编程概念(比如 Router 定义可以是使得程序代替 Annotations ),并深度集成了 Kotlin,支持 Kotlin Coroutines,支持 RSocket 协议等。这些东西引进后,基于 Java EE 规范在 Spring 中地位大大降低。

    https://github.com/hantsy/spring-reactive-sample

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具