C#做WinCE开发,与VC++做WinCE开发,性能相差有多大???

starrycheng 2014-08-11 09:43:23
C#做WinCE开发,与VC++做WinCE开发,性能相差有多大???

在 x86的嵌入式设备上,一般内存都有256M以上,C#和VC++感觉不出来太大的差别。

但是,如果用在Arm9 的 64M内存的设备上,那么内存就明显不够用了。 一般Arm9上,64M内存,跑WinCE6.0后,还有10M可以使用。


这10M内存,要通过串口每1分钟采集一次数据(大概20个点),还要将采集的数据通过网口实时的传输进行Socket数据传输。

问题一:
用C#做的程序,随着程序跑的时间,可用的内存会越来越少,直至内存溢出。 为什么内存会越用越少,C#垃圾回收的时间周期是多长时间???

问题二:
如果用VC++,可以用10M的内存可以搞定1分钟内的数据采集和传输吗?

问题三:如果有数据积累,那么硬件资源应该肯定不够用的吧。
...全文
358 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
如果你不用C#,那么系统定制上还可以去掉.net的支持,这样空间剩余更多,启动更快。
  • 打赏
  • 举报
回复
你这个没啥压力啊,用mfc做只要不能出内存泄漏,内存是够了
starrycheng 2014-09-04
  • 打赏
  • 举报
回复
引用 6 楼 SiGoYi 的回复:
问题一:C#(或Java)的内存回收机制,是由虚拟机处理释放的,不是按时间间隔,具体办法不详,大概是虚拟机认为这个内存已经没有代码在使用了,就会把内存释放掉。从这点上看来,这个根本不算是c#的优势,通过你的问题就体现出来了。 问题二:我没太明白你的意思,但有二点值得说明,我感觉你的数据采集和传输应该分别放在不同的线程中去处理;第二点,我感觉这个和C#和C++的使用没什么关系吧!应该是你处理逻辑和算法的问题。 问题三:数据集累的问题也可以使用算法来解决,如:(不一定恰当)比如你的数据采集到一定规模时,发现数据传输已经低于采集数据很多时,就可以先不采集了,等类似这样的算法。不然在有限的资源内不加以处理总会有用完的时候。
不采集是不行的,数据不能间断。
这不是鸭头 2014-08-12
  • 打赏
  • 举报
回复
我wince上都是用win32智能设备项目,写出来的比MFC的小不少。 你这项目要求并不高,肯定没问题。
SiGoYi 2014-08-12
  • 打赏
  • 举报
回复
问题一:C#(或Java)的内存回收机制,是由虚拟机处理释放的,不是按时间间隔,具体办法不详,大概是虚拟机认为这个内存已经没有代码在使用了,就会把内存释放掉。从这点上看来,这个根本不算是c#的优势,通过你的问题就体现出来了。 问题二:我没太明白你的意思,但有二点值得说明,我感觉你的数据采集和传输应该分别放在不同的线程中去处理;第二点,我感觉这个和C#和C++的使用没什么关系吧!应该是你处理逻辑和算法的问题。 问题三:数据集累的问题也可以使用算法来解决,如:(不一定恰当)比如你的数据采集到一定规模时,发现数据传输已经低于采集数据很多时,就可以先不采集了,等类似这样的算法。不然在有限的资源内不加以处理总会有用完的时候。
这不是鸭头 2014-08-12
  • 打赏
  • 举报
回复
引用 4 楼 starrycheng 的回复:
[quote=引用 3 楼 arpnet99 的回复:] [quote=引用 2 楼 starrycheng 的回复:] [quote=引用 1 楼 arpnet99 的回复:] 我wince上都是用win32智能设备项目,写出来的比MFC的小不少。 你这项目要求并不高,肯定没问题。
您用的是MFC,还是.net 啊??? [/quote]不用.net,有时候用MFC,大部分时候都是SDK直接写。这样要小一些。 [/quote] 大神,10M内存,根据sdk用MFC来做。您感觉,可以搞的定这些事情吗??? 比如,一个设备有4个 485串口。 是每个485口建立一个线程比较好,这样采集数据就有4个线程。 还是,4个485口用一个线程比较好呢?[/quote] 你说的1分钟采集20个。数据量看样子不是很大。要是一个线程能满足要求,做好还是一个线程处理,还省事。
starrycheng 2014-08-12
  • 打赏
  • 举报
回复
引用 3 楼 arpnet99 的回复:
[quote=引用 2 楼 starrycheng 的回复:] [quote=引用 1 楼 arpnet99 的回复:] 我wince上都是用win32智能设备项目,写出来的比MFC的小不少。 你这项目要求并不高,肯定没问题。
您用的是MFC,还是.net 啊??? [/quote]不用.net,有时候用MFC,大部分时候都是SDK直接写。这样要小一些。 [/quote] 大神,10M内存,根据sdk用MFC来做。您感觉,可以搞的定这些事情吗??? 比如,一个设备有4个 485串口。 是每个485口建立一个线程比较好,这样采集数据就有4个线程。 还是,4个485口用一个线程比较好呢?
这不是鸭头 2014-08-12
  • 打赏
  • 举报
回复
引用 2 楼 starrycheng 的回复:
[quote=引用 1 楼 arpnet99 的回复:] 我wince上都是用win32智能设备项目,写出来的比MFC的小不少。 你这项目要求并不高,肯定没问题。
您用的是MFC,还是.net 啊??? [/quote]不用.net,有时候用MFC,大部分时候都是SDK直接写。这样要小一些。
starrycheng 2014-08-12
  • 打赏
  • 举报
回复
引用 1 楼 arpnet99 的回复:
我wince上都是用win32智能设备项目,写出来的比MFC的小不少。 你这项目要求并不高,肯定没问题。
您用的是MFC,还是.net 啊???

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧