반응형
GeSHi © 2004-2007 Nigel McNie, 2007-2010 Benny Baumann, 2008-2009 Milian Wolff
- #include <stdio.h>
- #define MAX 123121
- void do_something()
- {
- usleep(100);
- }
- int main(int argc, char **argv)
- {
- int total=MAX,cnt=0,per=0;
- for(cnt=0;cnt<MAX;cnt++)
- {
- do_something();
- }
- }
Parsed in 0.006 seconds at 49.49 KB/s
total/100*per 아마 이 부분이 꽤 많은 cycle을 잡아먹겠지?
if(cnt==total/100*per) 부분
# gcc testlog.c -S
.L6:
movl -4(%rbp), %ecx
movl $1374389535, %edx
movl %ecx, %eax
imull %edx
sarl $5, %edx
movl %ecx, %eax
sarl $31, %eax
movl %edx, %ecx
subl %eax, %ecx
movl %ecx, %eax
imull -12(%rbp), %eax
cmpl -8(%rbp), %eax
jne .L5
이랬던 코드가
-O2옵션을 주게되면
#gcc testlog.c -S -O2
ps. 원래 의도한게 이게 아니였는데
당연한 글이 됐다.
이랬던 코드가
-O2옵션을 주게되면
#gcc testlog.c -S -O2
.L7:
imull $1231, %edx, %eax
movl %edx, %ebp
cmpl %ebx, %eax
jne .L5
이렇게 줄어들게 된다.ps. 원래 의도한게 이게 아니였는데
당연한 글이 됐다.
반응형
'Program Language > C(lib)' 카테고리의 다른 글
fopen fgets strcpy sprintf (0) | 2011.11.22 |
---|
댓글