D 的异常处理开销高过 g++
tomqyp
2007-09-08
错了错了上面说的5K是VC8.0在默认参数下的大小
随便给出VC8.0的结果 15.156 15.187 几乎没有区别 |
|
redsea
2007-09-08
tomqyp 写道 错了错了上面说的5K是VC8.0在默认参数下的大小
随便给出VC8.0的结果 15.156 15.187 几乎没有区别 完全没有区别搞不好是进行了全局性的分析优化, 分析了那个函数指针从来只取过一个值, 根据这个值, 根本不会抛出异常, 根据参数来优化编译函数, 将代码优化掉了. 如果是这样的全局性优化, 那真的很强. 你试试将 count 改成 volatile 看看 ? 本来我是将 cpp 中的变量设置成为 volatile 的, 但是 d 那边的代码, 全局变量的 volatile 不知道怎么编译错误 (局部变量的 ok), 于是都删掉了. |
|
redsea
2007-09-08
看了这些数据, 有个感觉就是, 教主一个人写的编译器(dmd, dmc), 前端不说, 后端的优化比起一堆人写的编译器还是颇有差距的.
为什么教主不把后端开源呢? 看起来技术并不领先啊? 难道这就是传说中的抛砖引玉, 不希望自己的思路影响到别人, 而让别人有机会写出一个从基本上就更强的东西 ? |
|
oldrev
2007-09-08
redsea 写道 tomqyp 写道 错了错了上面说的5K是VC8.0在默认参数下的大小
随便给出VC8.0的结果 15.156 15.187 几乎没有区别 完全没有区别搞不好是进行了全局性的分析优化, 分析了那个函数指针从来只取过一个值, 根据这个值, 根本不会抛出异常, 根据参数来优化编译函数, 将代码优化掉了. 如果是这样的全局性优化, 那真的很强. 你试试将 count 改成 volatile 看看 ? 本来我是将 cpp 中的变量设置成为 volatile 的, 但是 d 那边的代码, 全局变量的 volatile 不知道怎么编译错误 (局部变量的 ok), 于是都删掉了. D不支持volatile存储类,volatile 在 D 中是语句: volatile{ ..... } |
|
tomqyp
2007-09-08
redsea 写道 你试试将 count 改成 volatile 看看 ?了. 你的代码count不是volatile的吗,我没改 |
|
oldrev
2007-09-08
redsea 写道 看了这些数据, 有个感觉就是, 教主一个人写的编译器(dmd, dmc), 前端不说, 后端的优化比起一堆人写的编译器还是颇有差距的.
为什么教主不把后端开源呢? 看起来技术并不领先啊? 难道这就是传说中的抛砖引玉, 不希望自己的思路影响到别人, 而让别人有机会写出一个从基本上就更强的东西 ? 去 www.walterbright.com 看看他的生平就知道为什么不开源了。 |
相关讨论
相关资源推荐
- C++程序设计语言[Bjarne.Stroustrup]英文原版.pdf
- C++之父-Bjarne Stroustrup
- C++ 之父 Bjarne Stroustrup:简单的表述方式才是最优的方案
- [英文版]C++之父Bjarne Stroustrup: 简单的表述方式才是最优的方案
- C++三部曲|C++编程核心思想
- C++ 之父 Bjarne Stroustrup : 简单的表述方式才是最优的方案
- Bjarne Stroustrup的FAQ:C++的风格与技巧
- c++之父:Bjarne Stroustrup
- Bjarne Stroustrup 语录
- C++之父 Bjarne Stroustrup