while() 본문에 의존성이 표시되지 않으므로 gcc는이 코드에 대해 빈 trigraph를 생성합니다. 이제 실제로 사용하고있는 표준 플래그에 따라 (* nix 환경에있는 경우 환경 변수 CFLAGS 및 CXXFLAGS도 확인하십시오.) 컴파일러는 asm "hogging"코드를 생성하지 않습니다.
루프가 생성되었거나없는 경우 g++ -S source.cpp
source.s 파일 (ASM 코드 포함)을 수행 한 후 확인하십시오.
여기 g에 의해 더 최적화 플래그 내 출력의 ++ (GCC) 4.5.0 20090910 (실험) :
.text
.globl _main
_main:
LFB0:
pushq %rbp
LCFI0:
movq %rsp, %rbp
LCFI1:
L2:
jmp L2
LFE0:
.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
EH_frame1:
.set L$set$0,LECIE1-LSCIE1
.long L$set$0
LSCIE1:
.long 0x0
.byte 0x1
.ascii "zPR\0"
.byte 0x1
.byte 0x78
.byte 0x10
.byte 0x6
.byte 0x9b
.long [email protected]
.byte 0x10
.byte 0xc
.byte 0x7
.byte 0x8
.byte 0x90
.byte 0x1
.align 3
LECIE1:
.globl _main.eh
_main.eh:
LSFDE1:
.set L$set$1,LEFDE1-LASFDE1
.long L$set$1
LASFDE1:
.long LASFDE1-EH_frame1
.quad LFB0-.
.set L$set$2,LFE0-LFB0
.quad L$set$2
.byte 0x0
.byte 0x4
.set L$set$3,LCFI0-LFB0
.long L$set$3
.byte 0xe
.byte 0x10
.byte 0x86
.byte 0x2
.byte 0x4
.set L$set$4,LCFI1-LCFI0
.long L$set$4
.byte 0xd
.byte 0x6
.align 3
LEFDE1:
.constructor
.destructor
.align 1
.subsections_via_symbols
이 코드는 (맥 OSX 10.6.1)에 예상대로 내 CPU를 독차지.
어떤 최적화 수준을 사용하고 있습니까? ("-O", "-O2", "-O3"?) –
컴파일러 플래그가있는 코드 예를 게시하십시오. – Steven
어떻게 CPU 사용량을 측정하고 있습니까? – derobert