搜索
bottom↓
回复: 19

C#中的线程运行比C++中慢,是什么原因?

[复制链接]

出0入0汤圆

发表于 2019-7-14 16:45:30 | 显示全部楼层 |阅读模式
C#移植了C++的boot 下载线程,可以下载成功,但是C#确需要10分钟,而C++只要10秒,是什么原因?

出0入4汤圆

发表于 2019-7-14 16:57:02 来自手机 | 显示全部楼层
c#比c++慢是正常的,但你这个差了600倍就不正常了

出0入0汤圆

 楼主| 发表于 2019-7-14 17:49:32 | 显示全部楼层
liuqian 发表于 2019-7-14 16:57
c#比c++慢是正常的,但你这个差了600倍就不正常了

都是线程,C++里面的线程比C#里面的线程还要多。为什么会慢?有没有思路可查?

出0入0汤圆

发表于 2019-7-14 17:51:43 | 显示全部楼层
10分钟与10秒的差异,这数据太吓人了

出0入0汤圆

发表于 2019-7-14 19:50:24 | 显示全部楼层
要加文件时间戳日志分析了

出0入0汤圆

发表于 2019-7-14 21:46:37 | 显示全部楼层
这种差异肯定是编程的问题
语言上没有这么大差别

出0入0汤圆

发表于 2019-7-14 21:48:53 | 显示全部楼层
性能问题先用 Visual Studio 的性能探查器大概看一眼,看看哪里耗时多

出0入22汤圆

发表于 2019-7-14 21:55:38 来自手机 | 显示全部楼层
c#效率比c++差是肯定的。但是好像没那么严重吧。

出0入0汤圆

发表于 2019-7-14 22:02:17 | 显示全部楼层
贴代码出来,看一下

出0入0汤圆

发表于 2019-7-14 22:34:38 来自手机 | 显示全部楼层
c#并不是效率差,而是启动的时候体验差,它是中间码运行

出0入0汤圆

发表于 2019-7-14 22:35:01 | 显示全部楼层
语言有差别,再怎么有差别,都不会差60倍吧。。。
是不是移植的时候,什么地方没注意。

出0入0汤圆

 楼主| 发表于 2019-7-15 00:03:53 | 显示全部楼层
codefish 发表于 2019-7-14 22:02
贴代码出来,看一下

公司代码不方便全部贴出,讲下我的思路吧。
接收线程中,判断接收下位机是否有应答
{
        if(有应答信号)
        {
                event.set();
        }
}

下载线程中
{
        逐行发送数据;
        if(event.WaitOne())
        {
                发送下一行数据;
        }
       
}

出0入0汤圆

 楼主| 发表于 2019-7-15 00:05:00 | 显示全部楼层
关于以后 发表于 2019-7-14 22:35
语言有差别,再怎么有差别,都不会差60倍吧。。。
是不是移植的时候,什么地方没注意。 ...

我也担心是这个原因。。。

出0入0汤圆

 楼主| 发表于 2020-8-9 16:56:32 | 显示全部楼层
wudicgi 发表于 2019-7-14 21:48
性能问题先用 Visual Studio 的性能探查器大概看一眼,看看哪里耗时多

现在C#下载时间做到2分钟多了,但是与C++的20秒相比,还是比较难以接受。相比较C++运行起来,CPU占有率100%,C#只有10%。

出0入89汤圆

发表于 2020-8-9 18:23:56 来自手机 | 显示全部楼层
这个问题1年还在搞,很佩服,但把问题描述清楚,寻求网友支持,可能就一天!

出300入477汤圆

发表于 2020-8-9 18:25:55 来自手机 | 显示全部楼层
zw_7627 发表于 2020-8-9 16:56
现在C#下载时间做到2分钟多了,但是与C++的20秒相比,还是比较难以接受。相比较C++运行起来,CPU占有率10 ...

CPU占用很低,应该是因为你这个所谓的多线程,肯定是在有个地方执行sleep之类,或者是某种以系统定时周期为单位的等待函数。
如果当前没有数据,等待一下就过了一个系统定时周期,不管实际数据是不是0.1毫秒就已经到了。

出300入477汤圆

发表于 2020-8-9 18:27:13 来自手机 | 显示全部楼层
youkebing 发表于 2020-8-9 18:23
这个问题1年还在搞,很佩服,但把问题描述清楚,寻求网友支持,可能就一天! ...

哈哈,这是实话。
有太多的人,根本就不会把问题描述清楚。。。

出20入25汤圆

发表于 2020-8-9 18:29:23 来自手机 | 显示全部楼层
c搞成DLL不行嘛

出0入33汤圆

发表于 2020-8-9 19:30:49 来自手机 | 显示全部楼层
你c++运行起来cpu占用100%也不科学啊。

出0入16汤圆

发表于 2020-8-9 21:07:09 | 显示全部楼层
应该是代码问题啊,效率差不了那么多的。做点日志输出一下,例如应答时间,开始下载时间, 逐行发送数据时间这些记录一下就清楚了
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-20 09:54

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表