还有人用.Net 吗,亲测.Net5 性能飞升
下午亲测了下.Net5,性能确实飞升
性能逼近以高并发著称的 Go
当然我的测试还比较简单,打印:hello + 当前时间
使用云服务器:centos 7.6 2 核 4G
所有程序都打包在 docker 中运行
使用 abtest 测试 与其它语言对比结果如下图: 
PS:要用.Net5, 需要装 VS2019 V16.8 以上版本,不然会出错
下午亲测了下.Net5,性能确实飞升
性能逼近以高并发著称的 Go
当然我的测试还比较简单,打印:hello + 当前时间
使用云服务器:centos 7.6 2 核 4G
所有程序都打包在 docker 中运行
使用 abtest 测试 与其它语言对比结果如下图: 
PS:要用.Net5, 需要装 VS2019 V16.8 以上版本,不然会出错
看了 CSharp 9 加入 record, 从 Java 15 代码翻译过去更简单了,写一个玩具。
https://github.com/hantsy/code-challenges/tree/master/csharp
>要用.Net5, 需要装 VS2019 V16.8 以上版本,不然会出错
安装了 .net 5 sdk, 用 rider 和 VsCode 也可以啊。
如果再加个 Nodejs 就好了
富途牛牛和 github win 版都非常优秀,没什么奇葩依赖
最全的 Web benchmark 参考
https://www.techempower.com/benchmarks
编译命令行类似这样:
`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 跨平台。
https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/go-csharpcore.html
aliyun2c4g ubuntu18 我曾经闲的用 wrk 压过 java vert.x 和.netcore5,类似返回 hello world 这种,上面是 vertx 的结果,cpu 没拉满,.netcore5 稍微低一点 cpu 打满
单论语言性能 java/c#/go 其实相差不大
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 十八条街
@SpiritLingPub 别说 MySQL 了….SQL server 也经常出奇怪的问题
但是 NHibernate 确实一直在更新, 不仅支持 .Net Standard 2.0, 而且还支持实现了 Asp.Net Core 的 Identity
每次想学.Net 的 web 开发都被这些搞大了头,所以真不明白为什么还有人说.Net 简单? 光特么这些概念都把人搞头大了。
你们鄙视的 java 也比他简单啊 ,java web 就是 servlet 那一套,完了主流框架 spring 等就是对 servlet 的封装,完事儿。
有大佬帮忙解释下吗?
至于其他的什么 webpack babel 啥的,都是工具,能跑起来就行。
根本不是一回事好吧,别人学 Java 根本不需要了解这些,他先从 Java 语法开始就是了,学完语法就开始 Java Servlet JSP 什么的,这个时候他已经学会基础了,然后才会了解到 Spring 之类框架什么的,然后才会了解到 MVC 之类。
微软这套东西,一上来就是一堆名词,都不知道要先学什么东西,搜索半天学哪个好,要学什么语言,我记得当初可以用三种语言开发,所以又要去研究那三种语言学哪个好,当然要上网搜索看看了,到这个时候对这套东西就没啥好感了,在当年,搜索几次就会了解到 PHP Java 之类,然后就学 PHP 去了。
对于现在的我来说,是很容易搞清楚这些关系,因为我已经学过别的了,那现在搞清楚了也没啥意义了,我也不会去学了,用不上了,而且我现在看到这堆名词依然没啥好感,因为名字还在变来变去,依然感觉很乱。
Spring 5 大量删除了第三方依赖,其中包括大名鼎鼎的 Apache Velocity 模板。同时开辟了 ReactiveStreams 规范集成,加入 Functional 编程概念(比如 Router 定义可以是使得程序代替 Annotations ),并深度集成了 Kotlin,支持 Kotlin Coroutines,支持 RSocket 协议等。这些东西引进后,基于 Java EE 规范在 Spring 中地位大大降低。
https://github.com/hantsy/spring-reactive-sample