当前位置:首页 > 每日看点

为什么不用c#做物联网?

卡卷网1年前 (2025-01-07)每日看点247

在用了在用了,我司的物联网技术方案,跑在内存2G的定制ARM设备上面,峰值内存占用500M左右,使用Akka.net作为核心框架,NLua作为脚本扩展机制。

的外部通信机制直接放弃自定义二进制类协议,在所有地方上Json+ASP.NETCoreWeAPI,没有遇到任何性能问题。

从研发到稳定上线,一路从.net3.1平滑升级上来,几乎没遇到任何升级导致的障碍,反而是运行速度越来越快。

就是有一点不好,发布的程序容易被反编译,最近正在研究AoT,看能不能全部走通。


补充一下为啥当初选择.NET作为技术路线,其实也是有过不同考虑的。做决策时,.netframework如中天,.netcore刚刚能稳定跑在ARM设备上,实测效果性能都还说得过去。而产品包括IoT服务跑在ARM设备上、PC客户端跑在Windows上、云端对接环境跑在云平台容器里,创业项目人手有限,开发效率、运行稳定性都要考虑在内。反而运行效率可以妥协。

备选方案包括这么几个:

    原生C++:能搞,实际上第一代产品也是C++做的,内存占用那叫一个低。但坑也在这里了,作为一个极度强调可扩展性的物联网应用,C++没有一个合适的分层处理框架,只能先放放go:C++更合适一些,无与伦的稳定性,对的,不是开发效率有多高,而是程序本身很容易搞稳定,C++在内存处理方面的坑少很多,没选的原因也是一样,没有合适的Actor框架,goroutine适合点对点处理,不适合像微服务那样公布出去,任意通信,也只能先放放rust:要么自己上,培养人太难,放弃Python:动态语言坑太大,直接放弃C++Qt:这个其实还行,不过涉及到商业授权问题,暂时放弃了Ja:有支持嵌入式的版本,但当时还不成熟,放弃了。如果有同学能搞定授权等问题,其实可以再考虑一下C#+.NETCore:对内存占用要求是C++类似的三倍以上,但性能倒是不差。几个库如Netty、Akka等都有成熟可的移植,而且同时支持嵌入式环境、桌面和云,综合判断后,就它了

现状:

内存占用稳定,性能优异,IoT主程序和PC配置工具共用了60%以上的代码。云端因为有新人,倒是全线使用了go作为技术栈。

结论:最新版本.NET值得信赖,不过对内存敏感的应用,还是要考虑go或者C++


(2024-2-12补充)

这个目前是有史以来收数最多的答案了,大家是准备悄学习关门练内功么?都光收不点赞的。

因为我毕竟不是专职的Ja程序员,所以有几个语言因素,以前没考虑到的,现在可以认为在物联网应用中也是极其重要:

    更丰富的数据类型,如无符号数值类型,避免大量小对象影响gcSpan<T>基于栈的内存分配stackalloc,与值类型和Span<T>搭配使用

现在看来,微软设计C#这门语言时,就考虑了大量前瞻性优化方向,并且将易用性降低到几乎不用担心的程度,在物联网应用方面,上面这几个Ja多出来的特性也让它更适合开发IoT应用,对于资源较低的环境,也更友好。

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2025/01/7029.html

分享给朋友:

相关文章

马云也搞不明白:为什么现在用户偏爱微信支付,而不是支付宝?

这题我会,我教马云一招。 你直接把你那破比支付宝的代码全删了,重新写一个。 打开支付宝直接就是一个大大的支付码,然后右上角按一下就是扫一扫。你要是还想保留你的其他那些乱七八糟的功能,麻烦将他们全部做到下拉菜单里。你这么设计我不说你能干死微信…

夸克浏览器受欢迎的原因是什么?

夸克浏览器受欢迎的原因是什么?

这是可以说的嘛~ 哈哈,它比较吸引我的几点是:安全无广、页面简洁、功能丰富、反应速度快...... 首页页面支持自定义,喜欢什么样子都可以自己调整,没有花里胡哨的各种资讯推送,热搜日报整理归纳好,想看再点开查看,看着舒适度直接拉满! 实…

想学习Linux下的ELF文件有什么好书推荐吗?

想学习Linux下的ELF文件有什么好书推荐吗?

大家好,这里是物联网心球。 今天我们来聊聊ELF文件,了解一下Linux如何创建进程以及ELF文件如何转变成Linux进程? 1.什么是ELF文件? ELF(Executable and Linkable Format)文件是一种目标文件格…

程序员都有自己的服务器吗?

程序员都有自己的服务器吗?

2024.9. 24,有朋友咨询功耗,我没有单独给服务器弄智能插座,系统做的 esxi 也看不到,所以只能用其他角度判断供大家参考。 我有一个餐边柜改的机柜,里面白裙两盘,黑群晖 4 机械 1 mvme,一个爱快硬路由,一个联通光猫,一个…

怎样使自己处于高能量状态?

1、 不要习惯性的回顾过去那些让你尴尬和犯了错误的事情,不要嫌弃自己蠢。 学会原谅自己,当你不断回忆那些错误和囧事的时候,告诉自己:自己确实做错了,下次不要再犯即可,不需一遍遍的回忆。 这件事情已经发生,不要再一遍遍的折磨自己,不断回忆一点…

你们发文章的插图都是从哪来的?在网上搜出来的图能用吗?

你们发文章的插图都是从哪来的?在网上搜出来的图能用吗?

写文章发帖子,里面的插图尽量自己画,自己编辑,避免引起版权或者所有权纠纷。 我写过6本书,在知乎上也写了4000篇帖子和文章,其中的插图都是自己绘制的,照片绝大多数是自己拍摄的,摘自技术样本的图则必须加以说明。 自己制图,看似麻烦,但积少成…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。