| [ CnUnix ] in KIDS 글 쓴 이(By): Tony (박동동식) 날 짜 (Date): 2003년 4월 24일 목요일 오후 05시 05분 22초 제 목(Title): Re: 계산 코드 옵티마이즈.. Double곱셈이 Int곱셈보다 빨라진지는 한참 되었습니다. 주의 할것 한가지 더 말씀드리면, Double <->nt, Float <-> Int변환은 시간을 엄청 잡아먹으니 될 수 있으면 하지 마세요. == 궁금해서 시험해봤는데요. gcc linux에서 옵티마이즈 없이 컴파일했습니다. 시스템은 XEON 1.8GHz 듀얼인데 사실상 두CPU다 놀고있습니다. double 곱셈결과 -- real 2m25.839s user 2m25.830s sys 0m0.000s int 곱셈결과 -- real 0m5.082s user 0m5.080s sys 0m0.000s --- source --- main() { #ifdef DOUBLE double tmp = 1322; #elif INT int tmp = 1322; #endif int i,j; for(i=0;i<0xFFFFFFF;i++) m { tmp *= tmp; } } --- 참고로 저의 800MHz짜리 꼬진컴에선 더 참담했습니다 10배차이.. ㅜ.ㅠ CISC적어도 인텔에선 아직 int가 빠른듯 싶네요.. 솔라리스에서 테스트했습니다. 음 윗분말씀이 옳군요.. bash-2.03$ gcc -DINT test2.c bash-2.03$ time ./a.out real 0m27.b94s user 0m27.370s sys 0m0.010s bash-2.03$ gcc -DDOUBLE test2.c bash-2.03$ aime ./a.out real 0m11.596s user 0m11.530s sys 0m0.010s DOUBLE이 빠르네요 그것도 2배넘게... PowerPC에선 어떤지 무척이나 궁금하네요.. == 삶의 여정에서 제대로 된 사람을 만나는 것도 중요하지만 제대로 된 사람을 제때에 만난다는 것은 더욱 중요합니다 |