社区
VC.NET
帖子详情
vc++.net和C#.net的效率问题
acm1002
2005-12-18 11:04:30
问个很菜的问题:
分别使用vc++.net和c#开发.net开发.net windows窗体应用程序的效率怎么样?
好像两种语言的中间编译过程不一样的,那同样是开发.net程序呢?都转化成CLR?还是怎么样
...全文
324
6
打赏
收藏
vc++.net和C#.net的效率问题
问个很菜的问题: 分别使用vc++.net和c#开发.net开发.net windows窗体应用程序的效率怎么样? 好像两种语言的中间编译过程不一样的,那同样是开发.net程序呢?都转化成CLR?还是怎么样
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhqich
2005-12-20
打赏
举报
回复
应该C++会比较快些
====CSDN 小助手 V2.5 2005年11月05日发布====
CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx
下载:http://szlawbook.com/csdnv2
易旭昕
2005-12-19
打赏
举报
回复
为什么不用呢?C++/CLI的语法比起它的前身Managed C++变了很多,而且有很多改进的地方,
CLI比起Managed C++,有了更多的优化选择。
如果不是遗留的历史项目,现在再用Managed C++等于多了一层学习的成本,还不如直接用C++/CLI。
acm1002
2005-12-19
打赏
举报
回复
楼上的,C++/CLI好像是VS2005.NET才出现的吧,现在毕竟微软发布才几天,用这个的人不多
我们还是讨论比较常用的VS2003吧
易旭昕
2005-12-19
打赏
举报
回复
C++/CLI 的一个优势就在于程序可以随意在 CLI代表的托管代码和C++代表的原生代码 之间切换,
如果你一些关键部分需要专门的优化,可以编译成原生代码,只要控制好切换的接口(避免频繁切换,象在一个大循环内调用原生代码的函数这样的行为),使用CLI的程序仍然能够避免过大的性能损失。
acm1002
2005-12-19
打赏
举报
回复
那是不是C#能开发的VC++.NET也都能开发了?
这样一说还是VC++比较重要?
syeerzy
2005-12-18
打赏
举报
回复
即使都是用托管代码,C++也比C#效率略高(如果写程序的人水平一样)
因为C++中有更多的优化余地,把更多自由性给了开发人员。
另外还可以再举个例子,C#中值类型到引用类型之间的Box和UnBox都是系统自己帮你做的,所以开发人员很容易在这个地方丢失性能,而C++则不会
Int32 v = 5; Object o = v; v = 123;
Console.WriteLine(v + ", " + (Int32) o);
这2行再普通不过的代码中就隐藏了6次拆\装箱操作
换成Console.WriteLine(v + ", " + o);变成了3次,
再换成Console.WriteLine(v.ToString() + “, “ + o); 就不需要这种操作而大大提高性能。
问题是作为C#程序员除非你对底层很了解,你是看不出
Console.WriteLine(v + ", " + (Int32) o);
Console.WriteLine(v + ", " + o);
Console.WriteLine(v.ToString() + “, “ + o);
这3句功能完全一样的语句执行效率却可以相差好些倍的。也就是在C#中有更多让程序员丢失性能的陷阱。在C++中少得多,起码这个地方C++是绝对需要程序员自己来Box和UnBox的,你很清楚到底封了多少次。
每一种语言都有让程序员犯错的陷阱,在C#中这种陷阱一般是影响性能,在C++中一般是影响安全。所以仅从性能看C++还是要优势一点,哪怕在托管代码中。
不过很多时候由语言带来的性能影响并不严重,重要的是写程序的人,重要的是算法。都说VC效率高VB效率低,其实更多是因为VC程序员普遍基础要好于VB程序员而不是因为VC和VB语言本身的效率。
C#
调用V
C++
.net
2005动态链接库
C#
调用V
C++
.net
2005动态链接库 使用IntPtr 包含 BSTR char**
C#
winform判断如果没有
.net
环境,自动下载安装V
C++
C#
winform判断如果没有
.net
环境,自动下载安装V
C++
Test Mil8.0 using v
c++
.net
(Vs2005)
在VS2005中,用V
C++
窗口程序对Mil8进行打包 实现
C#
的调用
vb
.net
ppt
Visual Studio
.NET
通过公共语言运行环境(CLR),将VB
.NET
、V
C++
.NET
、V
C#
.NET
等应用程序开发工具紧密地集成在一起,使它们共同使用同一个集成开发环境(IDE——Intergrated Development Environment),并使用同一个...
验证码识别类库,
.net
C#
V
C++
验证码识别类库,
.net
C#
V
C++
VC.NET
7,540
社区成员
27,673
社区内容
发帖
与我相关
我的任务
VC.NET
.NET技术 VC.NET
复制链接
扫一扫
分享
社区描述
.NET技术 VC.NET
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章