POPPUR爱换

标题: Vista来了,64位性能该提高了吧 [打印本页]

作者: popwangyuII    时间: 2006-10-19 12:18
标题: Vista来了,64位性能该提高了吧
:p

Vista将自带.NET Framework 3.0。而据我在WIN2003 X64+.NET Framework 2.0环境的测试下,一般的算法,直接编译为X64本地代码的程序比直接编译为X86版本略快5%左右。不知Vista+.NET Framework 3.0的情况如何,应该会更好一些。可惜Intel故意限制了扣肉在X64环境下的性能,我想K8L将会在64bit Vista一展雄风的,也希望Intel少做一些阉割的事情。

另外Vista结合.NET Framework将极大地改善普通应用程序的性能,出色的内存管理机制,将使大概50%的单个.NET程序运行的比VC++程序还要快(除非是那种极度优化的VC++程序),而重要的不是单个程序的性能提高,只要内存不太寒酸,.NET程序的整体效率会明显高很多。

再结合DirectX10,DirectX10+.NET将极大地提高游戏开发商的工作效率,亦能使很多编程功底不高,但有创意的公司甚至个人开发出很好的游戏。

Vista一来,所有微软的战略将在此集合,Linux继续败退,JAVA继续败退......
作者: Illuminati    时间: 2006-10-19 14:43
是呀,老百姓也继续卖血上 4G 内存 哈哈哈

.NET 根本就是一个 MS 版本的 Java
作者: Illuminati    时间: 2006-10-19 14:43
真不知道 MS 到底有哪些东西是原创的:blink:
作者: 武内空    时间: 2006-10-19 14:45
但Java人员也继续抢手。:lol: :lol: :lol:
作者: almasy    时间: 2006-10-19 14:56
配套软件还需要至少大半年时间才能跟上的。
作者: roadrunner    时间: 2006-10-19 15:06
.NET根本不适合开发桌面程序

.NET的版本太多, 版本和版本之间互不兼容, 用户为了跑.NET写的桌面程序, 必须每个版本的框架都装一次

而大部分用户根本不懂得如何去安装这些东西
作者: itany    时间: 2006-10-19 15:07
原帖由 Illuminati 于 2006-10-19 14:43 发表
真不知道 MS 到底有哪些东西是原创的:blink:


Java支持几种语言?
难道支持几乎都有的语言不是创新?
作者: ximimi    时间: 2006-10-19 15:15
原帖由 roadrunner 于 2006-10-19 15:06 发表
.NET根本不适合开发桌面程序

.NET的版本太多, 版本和版本之间互不兼容, 用户为了跑.NET写的桌面程序, 必须每个版本的框架都装一次

而大部分用户根本不懂得如何去安装这些东西

这根本不是问题
作者: potomac    时间: 2006-10-19 15:41
提示: 作者被禁止或删除 内容自动屏蔽
作者: potomac    时间: 2006-10-19 15:48
提示: 作者被禁止或删除 内容自动屏蔽
作者: popwangyuII    时间: 2006-10-19 15:51
原帖由 potomac 于 2006-10-19 15:48 发表

MS都不吹64bit了,你还在继续,有中气啊。:lol:

直接吹.NET比汇编都快不是更彻底啊。w00t)



郑重地告诉你,回去学习。我的结论是建立在我试验的基础上,而你就不要一天到晚乱YY。多出来那八个寄存器,还是有一定作用的。

不要把.NET和汇编比,根本就不是一个领域的东西,我没见过哪个SB拿汇编写大型软件的。

[ 本帖最后由 popwangyuII 于 2006-10-19 16:10 编辑 ]
作者: popwangyuII    时间: 2006-10-19 15:52
原帖由 roadrunner 于 2006-10-19 15:06 发表
.NET根本不适合开发桌面程序

.NET的版本太多, 版本和版本之间互不兼容, 用户为了跑.NET写的桌面程序, 必须每个版本的框架都装一次

而大部分用户根本不懂得如何去安装这些东西



1.1是个问题,不过2.0以后是向下兼容的。
作者: elisha    时间: 2006-10-19 15:53
原帖由 popwangyuII 于 2006-10-19 15:52 发表



1.1是个问题,不过2.0以后是向下兼容的。

如果我没记错的话,2.0跟3.0除了名字以外没有共同点
作者: ximimi    时间: 2006-10-19 15:56
原帖由 potomac 于 2006-10-19 15:41 发表

是问题哦。

偶搞了个Sound Forge 8.0,要.NET Framework 1.1。

偶看看系统已经有了.NET Framework 2/3了,还是不行哦。:funk:

到了vista时代,系统都自带了runtime

你这程序不搞,自动可以运行

很多系统还没msvb6呢

mfc42,mfc7都可以共存,何况?

再说了制作程序的人完全可以打包

windows没有gtk,很多gtk程序一样运行

没有qt,opera一样运行
作者: popwangyuII    时间: 2006-10-19 16:05
原帖由 Illuminati 于 2006-10-19 14:43 发表
真不知道 MS 到底有哪些东西是原创的:blink:



.NET和JAVA看起来像,其实只要深入了差别是很大的。

JAVA只能算是.NET托管平台里的一部分,而.NET的非托管C++是向下兼容VC++ 6.0的。.NET的托管和非托管互操作机制可以使.NET完成本来VC++可以完成的各种工作,前段时间我就用C#封装了一块视频采集卡的SDK,加上未来的托管DirectX,整个Windows平台就是.NET的天下。
作者: popwangyuII    时间: 2006-10-19 16:08
原帖由 elisha 于 2006-10-19 15:53 发表

如果我没记错的话,2.0跟3.0除了名字以外没有共同点



可以理解成2.0是3.0的子集,微软的文档里有关于3.0的介绍,2.0写的程序可以直接运行在3.0环境里。
作者: popwangyuII    时间: 2006-10-19 16:13
原帖由 roadrunner 于 2006-10-19 15:06 发表
.NET根本不适合开发桌面程序

.NET的版本太多, 版本和版本之间互不兼容, 用户为了跑.NET写的桌面程序, 必须每个版本的框架都装一次

而大部分用户根本不懂得如何去安装这些东西



所以Vista要预装Framework的。不预装这玩意,.NET确实很难进入桌面程序领域。
作者: roadrunner    时间: 2006-10-19 16:42
看来很多人不明白

VISTA预装3.0不错, 可是.NET的发展会很快, 很快就会有.NET 3.1,4.0, 5.0什么的

而绝大部分的用户的机器里最多都还是只有.NET 3.0, 写软件的没理由忽略新版本.NET只用3.0吧, 而要求用户自己装新版本.NET是很麻烦的事情

大家看看现在有多少人的机器里是有.NET 2.0的?

如果我现在要开发一个桌面软件, 你说我该用哪个版本的.NET来写? 3.0? 2.0? 1.1? 1.0?
你会发现根本哪个版本都不合适, 我可能要把我用的.NET框架安装包和我的软件捆绑在一起才可以, 而如果我希望通过互联网发布我的软件呢? 多捆一个.NET安装包平白无故增加我数十M的下载体积, 这根本是不可接受的.
作者: ximimi    时间: 2006-10-19 16:55
原帖由 roadrunner 于 2006-10-19 16:42 发表
看来很多人不明白

VISTA预装3.0不错, 可是.NET的发展会很快, 很快就会有.NET 3.1,4.0, 5.0什么的

而绝大部分的用户的机器里最多都还是只有.NET 3.0, 写软件的没理由忽略新版本.NET只用3.0吧, 而要求用户自 ...

杞人忧天
不足以成为一个新平台被实用化的充足反对理由
真正的runtime很小,

如果这是问题

作为微软肯定会注意向下兼容,基本上算不上什么问题了

软件发布者也知道怎么处理
作者: popwangyuII    时间: 2006-10-19 16:55
原帖由 roadrunner 于 2006-10-19 16:42 发表
看来很多人不明白

VISTA预装3.0不错, 可是.NET的发展会很快, 很快就会有.NET 3.1,4.0, 5.0什么的

而绝大部分的用户的机器里最多都还是只有.NET 3.0, 写软件的没理由忽略新版本.NET只用3.0吧, 而要求用户自 ...



:a) 也是,不过微软同学应该会好好解决这个问题的。本来我想关掉托管运行时,直接把需要的.NET系统类库一起和程序发出去就可以像以前VC++程序那样运行了。但是.NET的强命名机制根本不允许这样做,即使关掉了托管运行时,程序跑起来和VC++一样,但还是要装.NET类库,虽然这解决了版本问题。但我还是十分恼火。

这个问题不解决,的确十分不爽!
作者: ximimi    时间: 2006-10-19 16:57
原帖由 roadrunner 于 2006-10-19 16:42 发表
看来很多人不明白

VISTA预装3.0不错, 可是.NET的发展会很快, 很快就会有.NET 3.1,4.0, 5.0什么的

而绝大部分的用户的机器里最多都还是只有.NET 3.0, 写软件的没理由忽略新版本.NET只用3.0吧, 而要求用户自 ...

哪个版本来写,太简单了

你用vs的话就自然知道哪个版本
作者: ximimi    时间: 2006-10-19 16:59
原帖由 roadrunner 于 2006-10-19 16:42 发表
看来很多人不明白

VISTA预装3.0不错, 可是.NET的发展会很快, 很快就会有.NET 3.1,4.0, 5.0什么的

而绝大部分的用户的机器里最多都还是只有.NET 3.0, 写软件的没理由忽略新版本.NET只用3.0吧, 而要求用户自 ...

杞人忧天

你觉得directx发展快不快呢
作者: ximimi    时间: 2006-10-19 17:02
原帖由 roadrunner 于 2006-10-19 16:42 发表
.增加我数十M的下载体积, 这根本是不可接受的


你看过directx完整版和精简版就知道100多m就几m而已

没什么不可接受的
作者: roadrunner    时间: 2006-10-19 17:56
.NET RUNTIME在20M以上

如果你下载个winrar或者kugoo这样的软件都至少要下2XM, 你会怎么想
作者: iipmmx    时间: 2006-10-19 20:53
原帖由 roadrunner 于 2006-10-19 17:56 发表
.NET RUNTIME在20M以上

如果你下载个winrar或者kugoo这样的软件都至少要下2XM, 你会怎么想


没错,这正是现在C++活着的原因

在vista环境下c++的程序在效率上对比.net的winform已经没有优势,(可以去查查MSDN)

向.net的投靠只是迟早的事,谁让你要跑在人家操作系统上呢?

如果你不转,有人用.net再写个在vista上运行的winrar比你快1倍,那你出不出winrar的.net版?

想耍个性就让你的软件在liunx上运行好了,就继续开发liunx好了,把liunx的易用,性能做的比windows好,微软一准倒闭,.net一准被抛弃.

最终决定用什么语言来写的是市场,不是程序员们.
作者: hzjinjin    时间: 2006-10-19 21:06
原帖由 popwangyuII 于 2006-10-19 15:51 发表



郑重地告诉你,回去学习。我的结论是建立在我试验的基础上,而你就不要一天到晚乱YY。多出来那八个寄存器,还是有一定作用的。

不要把.NET和汇编比,根本就不是一个领域的东西,我没见过哪个SB拿汇编写 ...

求伯君的WPS是汇编写的,史玉柱的M-6403也是汇编写的
汇编可以在640K的机器上把这样的程序跑得很溜,.NET来写?得怎样的硬件环境?
作者: popwangyuII    时间: 2006-10-19 21:50
原帖由 hzjinjin 于 2006-10-19 21:06 发表

求伯君的WPS是汇编写的,史玉柱的M-6403也是汇编写的
汇编可以在640K的机器上把这样的程序跑得很溜,.NET来写?得怎样的硬件环境?



彼时非此时啊。
作者: txdyr    时间: 2006-10-19 22:08
.NET的旗舰是C#,C#和JAVA在很多语法方面很象,但在其他方面差别还是很大的.
作者: ximimi    时间: 2006-10-19 22:12
原帖由 hzjinjin 于 2006-10-19 21:06 发表

求伯君的WPS是汇编写的,史玉柱的M-6403也是汇编写的
汇编可以在640K的机器上把这样的程序跑得很溜,.NET来写?得怎样的硬件环境?

你真相信wps是汇编写的?

最多图形部分是汇编

java好像有dos版

你知道java mobile版么

虚拟机只要几十k的内存

照样跑游戏,呱呱叫
作者: potomac    时间: 2006-10-19 22:20
提示: 作者被禁止或删除 内容自动屏蔽
作者: ximimi    时间: 2006-10-19 22:29
原帖由 potomac 于 2006-10-19 22:20 发表
.NET那么好,怎么google都不用哦。:lol:

google用的是自己开发的
作者: potomac    时间: 2006-10-19 22:41
提示: 作者被禁止或删除 内容自动屏蔽
作者: mxyou    时间: 2006-10-19 22:46
没有MS,中国会少9成用电脑的人,

不过,对我是有好处的,估计如果没有MS我的月薪至少也是向十万靠拢。

这都是牛皮癣上做公关的价格了。

[ 本帖最后由 mxyou 于 2006-10-19 22:47 编辑 ]
作者: potomac    时间: 2006-10-19 22:55
提示: 作者被禁止或删除 内容自动屏蔽
作者: popwangyuII    时间: 2006-10-19 23:11
原帖由 potomac 于 2006-10-19 22:41 发表

inhouse例外,这个不谈。

看看他招聘的要求。

MS做的工具就是把人变成傻瓜。



你这样想就完全中了某些人的圈套,微软的定位是要把程序员从繁杂的琐事中解脱出来。而程序始终还是要靠逻辑,靠算法的,这部分才是一个优秀的的程序员应该具备的,工具只是帮你提高效率的。而那些整天拿C++代码忽悠.NET初学者的人才是最没出息的。

MS的工具只是帮你提高工作效率,把你的思维提高到一个更高的层次。
作者: potomac    时间: 2006-10-19 23:23
提示: 作者被禁止或删除 内容自动屏蔽
作者: snake_1037    时间: 2006-10-19 23:33
啥时候

IBM JDK  websphere db2@os400  也能跟微软的这个.net这么普及啊
作者: Illuminati    时间: 2006-10-19 23:34
编写简洁高效的代码本来就是一个优良传统,虽然桌面机/服务器的性能已经非常高了,可是还有很多领域比如镶入设备,手持设备等等,没有那么多资源供懒人们挥霍,所以光学 .NET 那可真是误人子弟
作者: pigkit    时间: 2006-10-20 00:35
提示: 作者被禁止或删除 内容自动屏蔽
作者: popwangyuII    时间: 2006-10-20 07:41
原帖由 Illuminati 于 2006-10-19 23:34 发表
编写简洁高效的代码本来就是一个优良传统,虽然桌面机/服务器的性能已经非常高了,可是还有很多领域比如镶入设备,手持设备等等,没有那么多资源供懒人们挥霍,所以光学 .NET 那可真是误人子弟



领域不一样,完全不是一回事。

写很多大型软件,复杂的地方在逻辑。写一些科学计算类软件,复杂的在算法。整天拿C++那种东西忽悠人是没出息的和不求上进的表现。试问为什么一个程序员要把精力集中在代码上,而不是算法和逻辑上?高效的程序不仅仅体现在代码的简洁上,一个好的算法,一个合理的逻辑思路会使程序效率提高n倍。

谁告诉你.NET编译出来的代码冗长性能低,去看看他编译出来的IL代码,没有什么多余的东西。当然,前提是你能看得懂。.NET的程序效率非常高。

你以为.NET简单?简单只是入门简单。.NET真正的体系比JAVA,C++大得多的多。想真正精通.NET是非常非常难的。学.NET的确实有一批懒人,学什么的没有懒人呢?

移动设备?你不久就能看到结果。
作者: hzjinjin    时间: 2006-10-20 07:43
原帖由 ximimi 于 2006-10-19 22:12 发表

你真相信wps是汇编写的?

最多图形部分是汇编

java好像有dos版

你知道java mobile版么

虚拟机只要几十k的内存

照样跑游戏,呱呱叫

假如我不知道内情,我就不会这么说。
记得开发M-6405的外壳已经用C写了,但是我隔壁办公室那些同事们说得最多的一句话就是:“最怕那些.SYZ .QY后缀的文件,现在我们的工作就是搭个框架,把这些汇编文件组合起来,就算是6405了”
java 有很多优越性,但是刚刚在这个坛子里面看到一个标题:“用了6300后,java的applet程序的速度终于象win32 exe的速度了”
作者: roadrunner    时间: 2006-10-20 08:58
.net是个好东西, 但是.net真的不合适桌面应用

看看现在开发桌面程序的, 有多少人会选择用.net就知道了

现在的.net程序员, 99%是在写web应用, 当然就现在的市场来说, web应用的市场比桌面应用的市场大得多
作者: popwangyuII    时间: 2006-10-20 09:07
原帖由 pigkit 于 2006-10-20 00:35 发表
.net 再牛,底层的东西始終都系靠能编译成机器码的语言写出来的,就等于java一定要jre,.net也靠.net famework帮他做即時编译,怎么优化都不可能比直接编译成机器码的代码快.

.net 3.0 只是在2.0的基础上增 ...



很多人奇怪为什么.NET程序的效率高。

1。编译成本地代码只会执行一次,由于编译器做的不错,这个过程相当快。而新版.NET甚至支持直接编译成本地代码,运行时编译的过程都可以省去。

2。.NET托管运行时在启动时占用的资源并不多,而且算法的效率很高。用ngen.exe扒掉托管机制的代码和之前的正常代码比较,性能差距很小。

以上只是保证.NET程序不慢,下面还有:

3.  和C++程序不同,C++编译器通常把程序编译为面向具有最小通用功能集合的平台上,比如有些CPU不支持SSE3,为了确保程序能在所有机器上运行,那大多数正常的C++编译器绝对不会用到SSE3。而.NET(甚至包括JAVA)不会这样,JIT编译器能检测到每个人CPU的不同情况,从而生成不同的本地代码。比如说同样一个程序,K7上跑就不会编译出SSE3的指令出来,而扣肉跑就可以。这是为什么.NET代码会比普通代码快的重要原因之一。

4.  优秀的内存管理体制,内存利用更加合理,不会随着时间的增长而出现越来越多内存碎片的情况。这点也是.NET代码会比普通代码快的重要原因之一。

5.  .NET运行时能评估代码的执行情况,从而有选择地将IL代码重新编译为本地代码。,重新组织以提高分支预测的成功率。

6.  .NET编译器因为跑在客户机上,所以能根据每个客户机的不同情况判断出总是返回错误的bool值,比如对一个只有一个CPU的机器,当有下面代码时,编译器不会产生任何CPU指令:
if (numberOfCPU > 1)
{
.....
.....
}
这样,编译出来的代码量会更小,也更好调整。(这点对性能的提高很小)
作者: ximimi    时间: 2006-10-20 09:10
原帖由 roadrunner 于 2006-10-20 08:58 发表
.net是个好东西, 但是.net真的不合适桌面应用

看看现在开发桌面程序的, 有多少人会选择用.net就知道了

现在的.net程序员, 99%是在写web应用, 当然就现在的市场来说, web应用的市场比桌面应用的市场大得多

我认为非常适合,谢谢
作者: popwangyuII    时间: 2006-10-20 09:11
原帖由 roadrunner 于 2006-10-20 08:58 发表
.net是个好东西, 但是.net真的不合适桌面应用

看看现在开发桌面程序的, 有多少人会选择用.net就知道了

现在的.net程序员, 99%是在写web应用, 当然就现在的市场来说, web应用的市场比桌面应用的市场大得多



Vista来了,一切问题就都解决了。微软会知道怎么做的。事实上微软已经做好和所有的准备,现在微软已经大规模地把DirectX开发转向.NET平台了,一切就等Vista,Vista一来,全面发力。
作者: roadrunner    时间: 2006-10-20 09:45
如果是以前旧的api模式应用程序, 程序模块和程序模块之间互相调用很容易, 因为操作系统插手管理得少.

而.net不一样, .net之所以优秀是因为框架或者虚拟机提供了很多管理功能, .net框架的升级, 并不是像以前那样只增加了几个API, 而是连同管理功能一同升级了, 也就是新版本的.net框架, 提供给软件的运行环境都是全新的了

所以, 这就导致旧版本的.net应用程序不能保证适应新版本的.net运行环境, 操作系统必须安装多套.net框架才可以允许旧版本.net应用程序运行, 关于这点, 我不认为.net 3.0以后的版本可以实现兼容性, 因为如果实现了兼容性, 必然要牺牲.net在运行环境管理方面的优点.

新旧版本的.net模块, 必须运行在互相隔离的运行环境中, 它们之间的协作就是低效的, 模块之间的调用都必须跨虚拟机进行的时候, 你还要要求用户为每个模块使用不同的.net版本, 这是多么混乱的事情.
作者: ximimi    时间: 2006-10-20 10:13
原帖由 roadrunner 于 2006-10-20 09:45 发表
如果是以前旧的api模式应用程序, 程序模块和程序模块之间互相调用很容易, 因为操作系统插手管理得少.

而.net不一样, .net之所以优秀是因为框架或者虚拟机提供了很多管理功能, .net框架的升级, 并不是像以前那 ...

这太简单了

你认为mfc42和mfc71共存是问题么

开发者自己知道是否从source和api就不兼容

把旧的net stack留下来就可以了

过段时间就可以去掉了

原有软件可以继续运行,新的软件全部采用新的开发

vs可以升级

vs2005出来了,难道vc6就不能用?
作者: eppgame    时间: 2006-10-20 10:13
原帖由 popwangyuII 于 2006-10-20 09:07 发表

很多人奇怪为什么.NET程序的效率高。

1。编译成本地代码只会执行一次,由于编译器做的不错,这个过程相当快。而新版.NET甚至支持直接编译成本地代码,运行时编译的过程都可以省去。

2。.NET托管运行时在启动时占用的资源并不多,而且算法的效率很高。用ngen.exe扒掉托管机制的代码和之前的正常代码比较,性能差距很小。

以上只是保证.NET程序不慢,下面还有:

3.  和C++程序不同,C++编译器通常把程序编译为面向具有最小通用功能集合的平台上,比如有些CPU不支持SSE3,为了确保程序能在所有机器上运行,那大多数正常的C++编译器绝对不会用到SSE3。而.NET(甚至包括JAVA)不会这样,JIT编译器能检测到每个人CPU的不同情况,从而生成不同的本地代码。比如说同样一个程序,K7上跑就不会编译出SSE3的指令出来,而扣肉跑就可以。这是为什么.NET代码会比普通代码快的重要原因之一。

4.  优秀的内存管理体制,内存利用更加合理,不会随着时间的增长而出现越来越多内存碎片的情况。这点也是.NET代码会比普通代码快的重要原因之一。

5.  .NET运行时能评估代码的执行情况,从而有选择地将IL代码重新编译为本地代码。,重新组织以提高分支预测的成功率。

6.  .NET编译器因为跑在客户机上,所以能根据每个客户机的不同情况判断出总是返回错误的bool值,比如对一个只有一个CPU的机器,当有下面代码时,编译器不会产生任何CPU指令:
if (numberOfCPU > 1)
{
.....
.....
}
这样,编译出来的代码量会更小,也更好调整。(这点对性能的提高很小)

1:再快能有不编译快? 若直接直接编译成本地代码,后面的优点也就没有了,不必提了。
3:其他语言(如C)一样可以进行不同分支的编译执行不同的代码,这不是问题。而且,你这个编译器是Runtime时的,反而完全无法针对新系统,比如出现了SSE4,明明只需要更换Intel新的编译器就可以得到性能的提升。但是.NET就需要更新的.NET版本,这个难度恐怕高了点。
4:优秀的内存管理体制?就凭它那个分代迁移式垃圾收集器? 带有垃圾收集的目的不是为了提高性能,而是为了更好的管理资源。这点就不用提了,恐怕只有写的最差的C程序才会在这方面输给.NET。
5:这玩意纯粹是噱头,由此带来了延迟和不确定性更要命。
6:哈哈哈,这个搞笑,是你自己编的吧?

最后,现在.NET的性能的确可能不错。但是非要号称比C/C++性能好,未免要笑死人了。
作者: roadrunner    时间: 2006-10-20 10:31
原帖由 ximimi 于 2006-10-20 10:13 发表

这太简单了

你认为mfc42和mfc71共存是问题么

开发者自己知道是否从source和api就不兼容

把旧的net stack留下来就可以了

过段时间就可以去掉了

原有软件可以继续运行,新的软件全部采用新的开发 ...


现在的软件开发的两个特点:

1. 软件开发者并不一定掌握全部的source

2. 永远不要全部重新开发代码

否则, 软件公司的竞争力就无从谈起, 看看VISTA, 至今那个添加字体的对话框还是沿用win31的
作者: popwangyuII    时间: 2006-10-20 10:46
原帖由 eppgame 于 2006-10-20 10:13 发表

1:再快能有不编译快? 若直接直接编译成本地代码,后面的优点也就没有了,不必提了。
3:其他语言(如C)一样可以进行不同分支的编译执行不同的代码,这不是问题。而且,你这个编译器是Runtime时的,反而完全无 ...



你说的也有道理,关于好处和坏处,凡事有利必有弊,任何事情都是要权衡的。.NET有.NET的特点,我也没说所有的.NET程序都比C++的快啊。

1。 这是运行时语言特点决定的,.NET只能保证尽可能地快速执行,至于可以直接生成本地代码,那看你喜好而以,同样,若直接生成本地代码,后面的优点没了,再关掉托管选项,这不就是和C++一样了吗?

3.  .NET平台的本意就是要简化与业务逻辑无关的代码,使程序员把精力集中到算法上来。这个特点也并不是微软重点考虑的对象,只是附带的好处。C++多少年了,SSE2使用率又如何呢?Runtime确实也有限制,但至少会比以前的情况好多了吧?C++的程序你至少要拿回去重新编译以适应新处理器的特性,然后再发给用户,有多少企业愿意做这样的事情? .NET程序呢?更新一下运行时而以。

4.  绝非分代管理那么简单的。

5.  .NET会全面衡量改进所带来的利弊,监控是要花费资源的,但这只会在相当糟糕的情况下才会出现,包括垃圾回收机制也是一样,收与不收,什么时候收也是会权衡的。前面我说过,如果一个写的很好的C++程序,.NET是没法比的,但是有多少这样“完美”的程序?如果都要写的那么完美,谁受得了?实际上大多数程序又如何?你别不相信,随便抓一把代码,能比.NET效率好的还真不多。

6.  这是一位C++大师转.NET写的一本书里的伪码说明。个人也觉得牵强,不过也能说明一些问题。


开发效率、开发成本才是一个软件企业考虑的因素,关于性能,微软只是尽可能地把该做的事情都做了

[ 本帖最后由 popwangyuII 于 2006-10-20 11:32 编辑 ]
作者: roadrunner    时间: 2006-10-20 11:00
运行效率远不如开发效率来得重要

看看JAVA, 当初连JIT都没有的时候, 包括我都是嘲笑JAVA运行效率的人之一

再看看JAVA现在如日中天的形势, 不得不感慨当初自己实在是愚昧啊
作者: popwangyuII    时间: 2006-10-20 11:40
不管是什么语言,只要精通,只要定位准确,永远都不落后。

至于如日中天的.NET大军,目前来讲大多数人水平不高,能精通.NET体系结构的也没有几个
作者: ximimi    时间: 2006-10-20 12:18
原帖由 roadrunner 于 2006-10-20 10:31 发表


现在的软件开发的两个特点:

1. 软件开发者并不一定掌握全部的source

2. 永远不要全部重新开发代码

否则, 软件公司的竞争力就无从谈起, 看看VISTA, 至今那个添加字体的对话框还是沿用win31的

我说的软件开发者不是面向使用者的开发者而是开发该framework的开发者

2。那是微软没注意,

你也不要高看微软,我还发现微软系统还有错别字呢,几个service pack都一直没修正

复制粘贴那个控件和图标一直都是那个老样子从来都没被theme引擎照顾到
作者: potomac    时间: 2006-10-20 12:52
提示: 作者被禁止或删除 内容自动屏蔽
作者: Prescott    时间: 2006-10-20 13:08
1. 单就语言,虚拟机和基本类库来说,.Net的设计比JAVA强很多。Java 5大抄特抄.Net就是明证。
2. Managed Runtime代码运行效率并不一定低于Native Code。现在的JIT和GC已经极为先进和高效,多次JIT后的代码要想超过精心优化和编译的代码当然很不容易,但是超过普通的-请使用文明用语-代码还是很有可能的。
3. 用什么语言和运行效率无关,只有-请使用文明用语-程序员,没有-请使用文明用语-语言。
作者: 电脑是工具    时间: 2006-10-20 15:35
不喜欢intel的垄断,为什么又要为微软的垄断充当吹鼓手呢。自从微软垄断了浏览器,浏览器的更新就停止了,firefox小火了一把,微软立刻就开发了ie7,据说IE8也在日程上了,这就是垄断和竞争的区别。
vista一出,xx3.0一出,人类就进入共产主义社会了?这吹的也太离谱了。
又不是啥革命性的进步,一点小修小改,也就起点小作用。

目前的vista可以说是个失败项目。微软规划的大的新特性都流产或者推迟了,比如新的文件系统,新的图形系统等等。现在唯一能拿出来说的新的东西,好像就DX10了,可是这个东西跟操作系统没多少关系吧,没有新操作系统DX10也一样出来,一样继续升级。可是因为没有实现其他新特性,微软只好把DX10做出只支持vista,然后作为卖点。这实在是用户的大不幸。另外一个卖点应该数安全了,据说是比以前更安全了,这个能成为卖点要归功于之前windows在安全上的糟糕表现。
作者: popwangyuII    时间: 2006-10-20 17:24
原帖由 电脑是工具 于 2006-10-20 15:35 发表
不喜欢intel的垄断,为什么又要为微软的垄断充当吹鼓手呢。自从微软垄断了浏览器,浏览器的更新就停止了,firefox小火了一把,微软立刻就开发了ie7,据说IE8也在日程上了,这就是垄断和竞争的区别。
vista一出 ...



:lol: 垄断?怪只怪AMD当初就没把握好机会。如果把Intel和AMD的位置调一下,Intel所做的AMD照样会做。但我还是很欣赏AMD的,毕竟他知道如何和巨头竞争,做出来的东西确实不差。而且AMD还是有实力的(虽然不如Intel),所以我会支持他。

可是再看看微软的对手,哪个有半点AMD的气质?哪个不是人面猪头三太子。看看SUN,搞出个JAVA就从此歇火了,就以为万事OK了,这些年究竟做了什么?搞了些人不人鬼不鬼的CPU,到处误导人。 再看看那个不争气的Linux,曾经我是多么的基于厚望啊,现在呢,原先什么德行现在还什么德行,啃老本啊,人家Windows2003都已经在稳定上超过他了,他还在那止步不前。各个心怀不轨的公司想方设法从Linux里套钱,口口声声Linux好,抵制Windows垄断,可有几个当真好好设计一下Linux战略的?就算有心又有几个公司能仅仅就像AMD这样一点一点起来的? IBM?服务做得不错,但在整个战略上明显逊微软一筹,而且,他还在啃他的老本吧,我到要看能啃到什么时候。Google?我认为他是这几个公司里最有潜力和微软竞争的,有激情,有技术,不过总感觉不实在,虚的东西多,而且有暴发户的一些共有缺点。 SONY?我认为SONY倒是很能代表日本人的特点:自以为是,虚伪,极爱面子上的东西,表面上光鲜其实本质上什么都没有。这种公司如果突然倒闭,我一点也不奇怪。

这些个公司,我看借反垄断借口捞钱的多。真正值得我学习的,排来算去只剩下微软,微软能赢,是赢在战略上,即使是垄断,也是一点一点从小做出来的,即使是垄断,不小心应对也是危险的。如果是SUN这种得意忘形的公司,再垄断也很容易被人废掉。JAVA刚推出那时形势多好,可是呢,SUN没把握住,Linux没把握住倒是人家微软先察觉了,可笑啊。Linux的支持者如果能使出AMD一半的能耐,SUN能用心发一发力,现状就绝不会这样。
作者: potomac    时间: 2006-10-20 18:32
提示: 作者被禁止或删除 内容自动屏蔽
作者: zyxel2008    时间: 2006-10-20 18:44
原帖由 potomac 于 2006-10-20 18:32 发表

看来你学习MS学的不错,一发文章,必定长篇大论。:lol:

MS是值得尊重的,但偶还没看出啥值得学习的,只是发现MS不停在学别人的东西。:huh:

......的确如此,只有学习,才能进步,妳的发现恰恰说明了问题w00t) w00t) w00t)

PS:当有一天,你发现M$止步不前、不再“抄袭”“剽窃”的时候,那他就完了
作者: popwangyuII    时间: 2006-10-20 18:55
原帖由 potomac 于 2006-10-20 18:32 发表

看来你学习MS学的不错,一发文章,必定长篇大论。:lol:

MS是值得尊重的,但偶还没看出啥值得学习的,只是发现MS不停在学别人的东西。:huh:



:lol: 手段
作者: 努力奋斗    时间: 2006-10-20 21:18
路过了,帮顶一下
作者: 招财进宝    时间: 2006-10-20 21:31
.NET的桌面应用可以做得很实用啊?
我看啊,微软是一个非常善于隐藏真实目的的公司:总是旗帜鲜明的给外界一个假的目的,然后让你们郑重其事的去反对那个影子。
作者: FENG950    时间: 2006-10-20 22:48
原帖由 popwangyuII 于 2006-10-20 17:24 发表



:lol: 垄断?怪只怪AMD当初就没把握好机会。如果把Intel和AMD的位置调一下,Intel所做的AMD照样会做。但我还是很欣赏AMD的,毕竟他知道如何和巨头竞争,做出来的东西确实不差。而且AMD还是有实力的(虽然 ...

就算当年IBM的PC之战二线后备的Intel输了,那今天它的位子也只是由摩托坐而已,AMD一样是老二,它又不像Intel活得那样难,自然没什么危机意识,微处理器行业,一开始由于IBM的私心就可以拿图纸吃饭了,哪里要像葛鲁夫那样为了活下去而不断做个妄想狂啊。现在看着年长一岁的Intel做巨头,心里也肯定不是滋味吧。其它的,像SONY,了解其创新文化的都会感动,不多说了。IBM虽然也有骄傲自满的时候,但也绝非止步不前,硬件软件都在不断出新(创新很多,不过再多学点索尼再创新再改造的精神就好了,免得自己创造的东西,到了后来自己都撑不住卖掉,可惜)。SUN,虽然比以前落魄了,但是新CPU出人意料的还是很有想法的,网络处理是很合适的,就算JAVA,人家也很大气呢,不断的开源,只可惜没有和自己的利益好好结合一下,多像微软那样精打细算的话肯定发了。微软呢,不也是看一步走一步么,要不是ORCAL的挺身而出,它哪里会开发JAVA的SQL接口,开源的事更是不会做了,别说做了,还在JAVA中添加自己的专有东西。微软最难能可贵的,个人认为就是一直坚持自家软件的简易上手原则了。

说回软件的运行效率,个人认为这已经不是十几年前了,硬件的飞速发展使得软件运行时的效率差别,只要不是差的太多都可以接受,为了软件快上那一点点而耗费的成本,比硬件升级还大的多就没意思了。只要不是有什么特殊要求的行业,个人觉得应该是以开发效率为重,毕竟软件的成本大头在于维护,为了追求一点点的速度提高搞些晦涩难懂的代码,牺牲可理解性,都不是明智的做法。
作者: popwangyuII    时间: 2006-10-21 09:01
原帖由 FENG950 于 2006-10-20 22:48 发表

就算当年IBM的PC之战二线后备的Intel输了,那今天它的位子也只是由摩托坐而已,AMD一样是老二,它又不像Intel活得那样难,自然没什么危机意识,微处理器行业,一开始由于IBM的私心就可以拿图纸吃饭了,哪里要 ...



想当初AMD的处境和在K8战略上的一搏,多危险,就那么一个后备项目,一旦失败后果如何?SUN的处理器,个人觉得做秀的成分严重的多,把精力都集中在卖点上而不是实实在在的性能上。SONY以前是好的,现在真是一天不如一天了。
作者: potomac    时间: 2006-10-21 11:02
提示: 作者被禁止或删除 内容自动屏蔽
作者: starice    时间: 2006-10-29 22:25
我没有拿.net开发过桌面东西,但是就网页而言2.0和1.1比也差异很大,累。
作者: anesthetic    时间: 2006-10-30 09:35
不知道国内情况如何,不过美国大公司很多都在进行app程序向.net转换的工作,特别是大的finacial公司很多都开始用.net做前台开发程序了,就连bloomberg这种顽固不化的fortran/c公司也不能幸免。对于。net程序员绝对是好消息(俺就是其中一位:p),因为从今年2月开始nyc的.net工作大增。国内估计也会马上跟上,java确实现在落后了 #不要去争谁的技术更好,市场决定一切阿 #
作者: locksmith    时间: 2006-10-30 10:01
原帖由 anesthetic 于 2006-10-30 09:35 发表
不知道国内情况如何,不过美国大公司很多都在进行app程序向.net转换的工作,特别是大的finacial公司很多都开始用.net做前台开发程序了,就连bloomberg这种顽固不化的fortran/c公司也不能幸免。对于。net程序员绝 ...

你可真幸福,我好可怜啊,现在开发程序还必须兼容Win98..................
作者: FENG950    时间: 2006-10-30 11:53
原帖由 popwangyuII 于 2006-10-21 09:01 发表



想当初AMD的处境和在K8战略上的一搏,多危险,就那么一个后备项目,一旦失败后果如何?SUN的处理器,个人觉得做秀的成分严重的多,把精力都集中在卖点上而不是实实在在的性能上。SONY以前是好的,现在真是 ...

那也叫危险?当年Intel全面放弃自己的主业存储器(意义就跟现在宣布不做CPU一样),转向刚刚开始有点起色但前途未知的处理器行业,不危险?就这么一根小小的救命稻草,这个附属厂还冒着被大象踩死的危险在CPU上得罪自己最大的客户兼最大股东的IBM,那简直是拿命开玩笑了。
作者: roadrunner    时间: 2006-10-30 16:04
企业应用中前端程序.net的确是可以取代win32的

问题是前端程序纯web化才是以后的王道

非企业应用中, .net面临最终客户的操作系统成分复杂的问题几乎是无解的




欢迎光临 POPPUR爱换 (https://we.poppur.com/) Powered by Discuz! X3.4