游戏开发论坛

 找回密码
 立即注册
搜索
123
返回列表 发新帖
楼主: liiir1985

.Net的程序运行效率比VC++低?不!翻译自国外的一篇文章

[复制链接]

0

主题

12

帖子

26

积分

注册会员

Rank: 2

积分
26
发表于 2008-10-2 05:57:00 | 显示全部楼层

Re:.Net的程序运行效率比VC++低?不!翻译自国外的一篇文章

这样的问题,总是会引起热烈争论。应该用开发,如果不考虑已有的代码,c#是首选,因为它可以用较少的代码,实现c++运行效率相近的功能。至于谁快,根本无需争论。同样的算法,编译之后,汇编代码是差不多的。除非c#的jit编译器特别愚蠢,否则c++占不了多少优势。用vs的汇编窗口,可以很容易的证明这一点。
如果需要,c#是可以调用c语言的。而c语言又可以嵌入汇编,所以,c#同样可以间接的用汇编来优化特殊的代码段。效率从来都是程序员的借口,真正的原因,常常是他们不愿意学习新的知识。
最合理的办法,应该是托管c++。有特殊需要的,或者需要和c++代码交互的部分,用c++编写。而对外的接口,用.net api的方式提供,让c#调用。最终的类库,用c#来封装.c#的简洁性和安全性,要显著的高于c++。

11

主题

747

帖子

752

积分

高级会员

Rank: 4

积分
752
发表于 2008-11-25 08:46:00 | 显示全部楼层

Re:.Net的程序运行效率比VC++低?不!翻译自国外的一篇文章

又在争论哪个快,世界上除非只有一种程序语言,否则这种无聊的争论用不休止。理由很简单,就好象问宽刃菜刀和尖刃菜刀哪个更好用一样,如果只是切一般菜,都一样好用,但如果要砍骨头,或是削水果,虽然它们都能做到,但稍做选择效果更好。

口水战,路过。

0

主题

12

帖子

26

积分

注册会员

Rank: 2

积分
26
发表于 2009-5-13 18:25:00 | 显示全部楼层

Re: .Net的程序运行效率比VC++低?不!翻译自国外的一篇文章

其实,经过jit编译之后,C#生成的最终机器码和c++相近。可以说,没有本质区别。
认为c#比c++慢的人,显然对c#缺少一个基本的了解。
c#的优势在于它提供了一个自动内存管理框架,此外,它的工程化做得很好。对于大的项目,c#可以显著降低开发成本,效率与c++相近。
有些人说的数组边界检查问题,其实在需要优化的地方,c#是可以用指针的,这样就跳过了边界检查。
在需要汇编的地方,c#是可以调用c函数的。
架构师需要懂多种编程语言。用什么适合,就用什么。我见过的稍微上点档次的开发人员,都是懂多种编程语言的。
如果一个工程,用c#可以节省80%的开发成本,运行效率达到用c++开发的80%,那是否有运用c#的必要呢?实际上,c#有时候节约的成本还不止80%,运行效率,有时候比c++还快。这些都是经验之谈。
再比如一些游戏引擎,普遍用python做为粘合剂,是不是都应该用c++来开发呢?
尽可能的用c#和java,而不是用c++,这是一条经济规律。如果对项目负责,就得遵守它。
c语言,在某些场合,还是不可代替的。c++,多数情况都不需要它。java和c#,通常都可以替代c++。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-20 09:35

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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