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

2021-01-04 15:58:49 +08:00
 kaka6

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

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

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

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

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

使用 abtest 测试 与其它语言对比结果如下图:

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

30291 次点击
所在节点    .NET
231 条回复
liuhan907
2021-01-04 16:33:42 +08:00
@fiveelementgid 我们目前在用 ef,没感觉出性能有瓶颈。你们 ops 有多少遇到了瓶颈?我得看看我们是否会遇到。
iceneet
2021-01-04 16:33:58 +08:00
.net 在外国还挺火的额 在中国就太少了 不过性能还是很强的
hantsy
2021-01-04 16:36:37 +08:00
@fiveelementgid EF 一直以它的语法 API 优雅著称,操作数据库就像操作本地内存数据一样,刚开始玩 .net ,后面再试一下。Groovy 下的有新项目准备 Copy EF,之前的 GORM 我觉得已经很像了。
chenqh
2021-01-04 16:37:19 +08:00
国内还是 java, 大公司好一点的还有 golang,其他基本都凉了
masquerader
2021-01-04 16:38:02 +08:00
从.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
2021-01-04 16:38:42 +08:00
abp 性能那么差吗
hantsy
2021-01-04 16:39:20 +08:00
目前 .Net 写测试有哪些工具? 目前我只试用了 xUnit, Moq 。
ntgeralt
2021-01-04 16:52:09 +08:00
一看到 [要用.Net5, 需要装 VS2019 V16.8 以上版本,不然会出错]
主要是这些 win 自己不自带。难道开发个样品,还要发一堆依赖给客户

富途牛牛和 github win 版都非常优秀,没什么奇葩依赖
goodboy95
2021-01-04 16:57:35 +08:00
@ntgeralt 跟客户有啥关系,vs2019 是 ide,客户只要一个 runtime.
.Net 5 稳定之后微软一般都会给一个.Net runtime 更新的,就像.Net framework 4.x 一样
SpiritLingPub
2021-01-04 16:58:32 +08:00
@fiveelementgid ef core 连接使用 mysql,感觉要吐了,各种问题。但是使用 sql server 的话,还是挺好使的,毕竟是一家的,各种做的都挺好的。个人开发或者小型企业大多数使用 mysql,导致 ef core 使用 mysql 贼难受
quan01994
2021-01-04 17:09:32 +08:00
用啊。
TypeError
2021-01-04 17:17:29 +08:00
Python 用 fastapi 好一点,不过高并发还是 go 爽

最全的 Web benchmark 参考
https://www.techempower.com/benchmarks
diib
2021-01-04 17:18:10 +08:00
针对回复说一下吧,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
2021-01-04 17:18:23 +08:00
用过 go 就不想写其他语言了
AX5N
2021-01-04 17:19:50 +08:00
这样一对比,好像 python 的 flask 的效率也不差啊
Zcyisabigman
2021-01-04 17:21:10 +08:00
@manami 为啥?
Rwing
2021-01-04 17:22:34 +08:00
manami
2021-01-04 17:24:07 +08:00
@Zcyisabigman 简单强大,用 go 写项目感觉不用框架都快的飞起
Rwing
2021-01-04 17:26:49 +08:00
@manami go 的语法还是很感人的。。。基础类库也缺少很多。。。泛型也没有,真的不舒服
manami
2021-01-04 17:27:44 +08:00
@Rwing 习惯成自然 :)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/741550

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX