Programming 版 (精华区)
发信人: SwordLea (飞刀李), 信区: Programming
标 题: [合集] 关于编译器优化的讨论(续)
发信站: 哈工大紫丁香 (Wed Jun 23 19:24:38 2004), 站内
────────────────────────────────────────
iamxiaohan (潇寒·System Programmer) 于 (Tue Jun 22 11:46:01 2004) 说道:
基准测试程序
int global = 0 ;
int test()
{
int a = 0 , b = 3 , c = 4 ;
for( int i = 0 ; i < b + c ; ++i ){
++a ;
++global ;
}
return global ;
}
int main()
{
__asm{
mov edx , edx
nop
} ;
return test() ;
}
目的:测试对于函数中无效变量的优化能力,test()函数中的a是无用变量,优秀的编译
器应当优化掉它。
vc的测试结果:
//-----------------------------------------------main()--------------------
:00401000 8BD2 mov edx, edx
:00401002 90 nop
:00401003 A1C0724000 mov eax, dword ptr [004072C0]
:00401008 83C007 add eax, 00000007 // !!!!!!!!! 恐怖 !!!!
:0040100B A3C0724000 mov dword ptr [004072C0], eax
:00401010 C3 ret
//------------------------------------------------main() finished----------
────────────────────────────────────────
prime (悠悠我思) 于 (Tue Jun 22 15:52:54 2004) 说道:
这带来得副作用应该是ms编译速度变慢
【 在 iamxiaohan (潇寒·System Programmer) 的大作中提到: 】
: 基准测试程序
: int global = 0 ;
: int test()
: {
: int a = 0 , b = 3 , c = 4 ;
: for( int i = 0 ; i < b + c ; ++i ){
: ++a ;
: ++global ;
: ...................
────────────────────────────────────────
iamxiaohan (潇寒·System Programmer) 于 (Tue Jun 22 15:54:07 2004) 说道:
nod
但一般来说,编译器应当把执行速度而不是编译速度放在第一位,
因为,编译一次,但执行也许是无数次~~~
【 在 prime (悠悠我思) 的大作中提到: 】
: 这带来得副作用应该是ms编译速度变慢
※ 修改:·SwordLea 于 Jun 23 19:24:51 修改本文·[FROM: 202.118.246.241]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:4.056毫秒