반응형
그건 그냥 나누기가 다른 연산자에 비해 복잡한 계산이 많이 필요하기 때문에 느린 것이다.
당장 컴퓨터가 아닌 손으로 여러자리 수의 숫자를 더하기/빼기/곱하기/나누기를 당장 생각해보아도 더하기/빼기/곱하기보다 나누기가 훨씬 단계도 많고 더 오래 걸린다. 이는 컴퓨터에서 똑같이 적용된다. 똑같은 일을 컴퓨터로 처리하려고 해도 마찬가지 일 뿐이다.
보다 자세한 얘기하자면 이는 기계어까지 파고들어가야 한다. 나누기 op code(idiv/div)는 명령어는 곱하기 op code(imul/mul) 명령어 보다 처리하는 데 더 많은 클럭 수를 차지하고, 이는 곧 시간을 많이 잡아먹는다는 것을 뜻한다. 출처에 가보면 댓글에 논문의 링크까지 넣어주셨다.. 😮
출처 : https://kldp.org/comment/615402#comment-615402
곱하기 나누기 속도 | KLDP
최근 메모리 최적화에 대해서 조사하고 있는데요. 나누기 연산보다 곱하기 연산이 더 빠르게 수행되고 메모리를 적게 사용한다는데 왜 그런지 궁금합니다.
kldp.org
반응형
'공부 > 기타' 카테고리의 다른 글
상속할 때 public 상속과 protected 상속의 차이 (0) | 2022.12.26 |
---|---|
업 캐스팅과 다운 캐스팅의 개념 및 차이 (0) | 2022.12.22 |
float이 빠를까?, double이 빠를까? (0) | 2022.12.22 |
1차원 배열과 2차원 배열의 성능 및 속도 차이 (0) | 2022.12.21 |
32비트 시스템과 64비트 시스템의 차이 (0) | 2022.09.30 |