[入门] 请教D程序的编译问题

oldrev 2007-09-13
tomqyp 写道
不知道还有没有什么编译器支持楼主说的这种 预处理+C编译器的模式,要是有估计对C++资源的利用大有帮助.


只是和C++接口可以看看 bcd.gen 和 SWIG
player7 2007-09-13
估计从速度上来说应该是:

icc > VC8 > g++ > D > c# > java

dayn9 2007-09-14
to DavidL前辈:

我只是需求略微特殊,每秒处理60M数据,用D这个继任者代替C++,好像也没多大罪过吧,何必拒人千里?
我猜测的预处理模式即便荒唐,恐怕也还不至于有损D的清誉吧?

to tomqyp:

vc8和icc10没有c预处理模式。实际上除了CFront,我也没见过第二个。

to qiezi

汇编单独写建议甚好,不过不利于偷懒。

to achun

印象中CodeWarrior好像做嵌入式开发,有x86的吗?
Ada不可能快吧?语言特性决定的,不信你写个小程序,都用gcc编译比较一下速度。

to oldrev

blade最快的线性代数库?十分期待,我现在拿boost中的那个将就着用呢,LAPACK那部分还没着落。

to player7

icc > VC8,这个顺序并不绝对,我们多次发现过vc > icc(实际上是icl)的情况。
oldrev 2007-09-14
Blade 在这里:
http://www.dsource.org/projects/mathextra

快的原因是它在编译时把向量表达式等直接产生x86和sse的汇编程序,并用 mixin("asm %s"); 的手法加入到程序中。作到了既有D语言表达式的可读性,又有手写汇编的效率。
achun 2007-09-16
to dayn9:
印象中CodeWarrior好像做嵌入式开发,有x86的吗?
CodeWarrior是最早的c/c++四国战中的一方.可以说是战败了.
不过东西确实很优秀.不管是ide还是编译器都是一流的.
CodeWarrior一直都有x86(windows)版的.不过说了可笑.
win下的CodeWarrior是一个副产品.应该知道苹果MAC机的开发平台吧(换inter CPU以前).就是XCode.其实就是CodeWarrior.
因为CodeWarrior是飞思卡尔的下属企业产品.原来MAC用的CPU主要是飞思卡尔设计和生产的(股份).因MAC换了平台.飞思卡尔当然就停止了与苹果的合作了.看看现在的XCode已经回归GCC了.
随着MAC版的CodeWarrior停止开发.windows版的自然也就停止了.
目前最新版本是9.4(update 后).
她的效能,你想想CodeWarrior的主市场是嵌入市场,嵌入市场没有效能是不会生存的.
Ada其实我简单测试(简单的循环和数学运算.Windows平台下)的时候是用GANT(也就是用的GCC的编译器)做的.同时比较的有.
VC6.0/Ada(GANT)/GCC/CodeWarrior
名次是:Ada,CodeWarrior,gcc,vc
不过Ada的字符串处理很麻烦.这个跟语言特性有关,速度也不怎么样.
有意思的是Ada快于gcc,虽然编译器一样可语言不一样,有意思.
vc整个比第一的Ada慢了一倍还多.CodeWarrior只比Ada慢了1%左右.gcc比ada慢了10%左右
就我现在对D的看法来说,D的魅力已经超越了速度问题.选D不是因为速度.而且我相信D的速度也应该不会很差.对D的发展我是很有信心.只是祈求D不要指望什么大企业的支持而做出什么妥协.
技术一旦有利益的过多掺乎就会不纯洁和迷失.
千万不要让那些大鳄鱼进来......
DavidL 2007-09-16
dayn9 写道
to DavidL前辈:

不敢以前辈自居。

dayn9 写道

我只是需求略微特殊,每秒处理60M数据,用D这个继任者代替C++,好像也没多大罪过吧,何必拒人千里?


我说的话是听起来难听,不过实际上是在理的。因为你的需求特殊,所以你必然不会对D满意的。或许你可以去搞blade,但是你会不会喜欢它,我持怀疑态度。

dayn9 写道

我猜测的预处理模式即便荒唐,恐怕也还不至于有损D的清誉吧?


我的意思并不是预处理的模式会损害D,我的意思是既然是想真心求教就应该稍微多少做点调查。
预处理的模式也并非可耻。dylan就有这个模式,或许你会更喜欢dylan。这个倒是真心推荐。

oldrev 2007-09-16
前几天倒是在D新闻组里看见一个 Vala 语言的介绍,C#-like 语法,编译后产生 C 代码,不过绑定了 Glib
dayn9 2007-09-18
to oldrev

谢谢推荐,Blade比我期望的还要多,甚至包括一些数理统计的内容,也正是我需要的。

to achun

我觉得你的测试结果是个个案,因为我觉得ada的基本理念可靠性胜于速度,决定了ada不能达到极限速度。比如数组访问要进行越界检查,检查失败还会抛出constraint_error异常,大家应该明白检查和异常的开销,这在C中不存在,在C++中可选。我做过的测试是一个排序程序,结果和你相反。不过我的想法毕竟是推断,测试也同样是个案,不能作为切实的证据。不过ada毕竟是没有将来的语言,快慢已不重要。

to DavidL

既然无意将我这个老菜鸟赶走就好。dylan还请指点,因为我做的一点调查十分不成功,只找到了一个based on Scheme的语言。

to oldrev

Vala就免了,刚被D迷的神魂颠倒,正在考虑怎么把D用在我们的产品里,暂时心无旁骛。
Global site tag (gtag.js) - Google Analytics