网站首页 全球最实用的IT互联网站!

人工智能P2P分享Wind搜索发布信息网站地图标签大全

当前位置:诺佳网 > 软件工程 > 后端开发 > .Net >

(原创)[开源][.Net Standard 2.0] SimpleMMF (进程间

时间:2025-01-19 09:41

人气:

作者:admin

标签:

导读:一、前言 在上一篇 (原创)[.Net] 进程间通信框架(基于共享内存)——SimpleMMF 中,发布了v1.0版,最大的问题是:CPU占用较高,至少40-50%。 这既与我的开发水平有关,也与SimpleMMF诞生...

在上一篇 (原创)[.Net] 进程间通信框架(基于共享内存)——SimpleMMF 中,发布了v1.0版,最大的问题是:CPU占用较高,至少40-50%
这既与我的开发水平有关,也与SimpleMMF诞生环境有关,这个主要是用在数字孪生各软件之间同步数据,而部署软件的工作站性能都强悍,像我常用的便是一个有着192GB内存的工作站,CPU的具体型号忘了。
再加上相关的软件一个比一个吃资源,所以也不差SimpleMMF这一个。

但是,毕竟不完善,这几年间也时间有人发邮件说此问题,同时也反馈.net 4.8的版本也较低,也有人发了提升了.net版本及优化的工程,既然SimpleMMF不止我用,还在发挥作用,趁近期得空,好好的优化一版。

相信看完的你,一定会有所收获!

本文地址:https://www.cnblogs.com/lesliexin/p/18676994

SimpleMMF 是开源的,开源地址如下:

GitHub:
https://github.com/lesliexinxin/LeslieXin.SimpleMMF

Gitee:
https://gitee.com/lesliexin/lesliexin.simplemmf

同时v1.1也上传到了NuGet上,地址如下:
https://www.nuget.org/packages/LeslieXin.SimpleMMF

本节是本文的核心,优化主要分两部分:
1,.Net框架版本低的问题。
2,CPU占用高的问题。
我们下面分别来看。

1,.Net框架版本低的问题

V1.0的版本是基于 .Net 4.5 开发的,为了兼容更广,特别是支持.Net Core、.Net6\7\8\9,必然要做调整。

经过对比选型,决定使用 .Net Standard 2.0 进行开发,因为它支持的范围更广,如图所示:

如此一来,本问题也就解决了。

2,CPU占用高的问题

这个问题的根源,在于代码中使用轮询的方式,去监测共享内存状态,这样便会导致空转过快,进而导致CPU占用提升。

而优化方法,便是使用 命名事件 ,MSDN上的解释如下:
https://learn.microsoft.com/zh-cn/dotnet/standard/threading/eventwaithandle)

因为有命名事件的参与,所以就不需要3个共享内存块了,只需要一个用来存储数据即可。

演示Demo已开源:

GitHub:
https://github.com/lesliexinxin/Demo_SimpleMMF

Gitee:
https://gitee.com/lesliexin/demo-simplemmf

请看下面的录屏,主要便是看CPU的占用与变化。

技术没有新旧之分同,只有合不合适之分。
感谢的大家的观看与学习,如有错误欢迎批评指正。

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信