[入门] 请教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用在我们的产品里,暂时心无旁骛。 |
相关讨论
相关资源推荐
- not syncing : corrupted stack end detected inside scheduler解决办法 以及高版本的激活码!
- 安装虚拟机遇到的问题
- not syncing: corrupted stack end detected inside scheduler
- 从零开始安装 VMware Ubuntu
- VMware + Ubuntu 安装问题总结
- Inside ARC — to see the code inserted by the compiler
- not syncing : corrupted stack end detected inside scheduler解决办法
- ubuntu not syncing: no working init found.
- 解决Unable to preventDefault inside passive event listener
- cocos2d-x 中android程序调试几种出错情况收集