소프트웨어 C 언어에서 연산 횟수 카운트하기
2010.11.29 21:50
C 언어 등에서 만든 프로그램에서 어떤 루프가 있는데 이 루프가 실행되는 동안 CPU 내부에서 행해진 사칙연산의 횟수를 알 수 있을까요? 내가 직접 프로그램 안에 그런 기능을 하는 코드를 집어넣든지 아니면 별도의 소프트웨어가 있을까요?
댓글 [6]
-
우주천하 2010.11.30 00:59 -
그냥그대로 2010.11.30 04:47
CPU에서 행해지는 덧셈 횟수나 곱셈 횟수 등을 알고 싶습니다. 그런데 C 언어 수준의 연산은 뭘 의미하는지 이해하지 못하겠네요
-
우주천하 2010.11.30 11:30 비쥬얼스튜디오 쓰시나요?
옵션에 보면 어셈블리 코드로 덤프해주는게 있습니다.
물론 C코드도 같이 나오게 할수도 있고요.
간단한 코드라면 어셈블리코드에서 연산코드만 카운트하시면 될거 같네요.
아니면 C코드의 어셈블리 변환메카니즘을 이해하셔서 연산자를 카운트하는 프로그램을 따로 만드시던가요.
제가 알기로 연산을 카운트 해주는 방법은 없는걸로 압니다.
비트연산결과를 플래그레지스터에 기록은 합니다만 사칙연산을 카운트 하지는 않아요.
정확히 무슨 목적으로 하시는지 알려주시면 다른 좋은 해결책을 제시할 수도 있을겁니다.
(뭐 누군가가)
-
우주천하 2010.11.30 11:44 https://blog.naver.com/no1rogue/30095428920
EFLAGS 레지스터에 대한 내용입니다.
참고 하시고.
퍼포먼스를 고려해서 상식적으로 연산횟수를 CPU에서 저장하지는 않겠죠.
사실 필요도 없고, 만약 저장한다면 메모리가 아니라 빠른 레지스터에 저장하겠죠.
그 레지스터중에서 가장 근접한게 플래그레지스터입니다.
-
그냥그대로 2010.11.30 13:08
채널을 통과하여 잡음이 더해진 스트림을 디코딩하는 두 알고리즘의 성능을 비교하기 위해 연산횟수를 알려고 합니다. 그냥 시간 측정하는 것으로 충분할까요?
-
우주천하 2010.11.30 14:18 알고리즘의 성능비교라면 마이크로세컨드(100만분의 1초)로 측정하시면 대부분의 경우 그 우위를 알수 있을겁니다.
QueryPerformanceFrequency(), QueryPerformanceCounter()
위의 두 함수를 이용하시면 됩니다.
제가 모든 방법을 다 본건아니지만
다수의 논문을 봐도 시간측정으로 성능측정을 하지 연산회수로 측정하는건 본적이 없어요.
번호 | 제목 | 글쓴이 | 조회 | 등록일 |
---|---|---|---|---|
[공지] | 질문과 답변 게시판 이용간 유의사항 | gooddew | - | - |
18593 | 윈 도 우| 사운드 카드와 그래픽 카드 문제입니다. [2] | 보로봉 | 2169 | 12-12 |
18592 | 윈 도 우| usb로우포맷유틸 [2] | 메실 | 5932 | 12-11 |
18591 | 윈 도 우| autochk program not fount - skipping autochk | lagh | 2836 | 12-11 |
18590 | 소프트웨어| 토렌프 프로그램 설정문제?? [1] | 초원의빛 | 2629 | 12-11 |
18589 | 윈 도 우| 부팅후 하드 스왑 문제 [6] | IS진 | 4322 | 12-11 |
18588 | 윈 도 우| 윈도우 7 가볍게 트윅하는 프로그램이 따로 있나요..?? [2] | 예레미야 | 2870 | 12-11 |
18587 | 윈 도 우| 윈도우 7 32비트에서 메모리 4기가 이상 사용할 수 있나요.?? [9] | 예레미야 | 5658 | 12-11 |
18586 | 소프트웨어| xdeskcover 홈페이지 저만안들어가지나요? | 가을햇살 | 2155 | 12-11 |
18585 | 윈 도 우| 재설치후 항상 별의별일이 프로그램 설치 오류 [1] | 어사또 | 2160 | 12-11 |
18584 | 소프트웨어| 문의)) 램디스크 사용시~ 100% 다 사용해도 문제없겠는지요? [2] | Chobits0914 | 2600 | 12-11 |
18583 | 윈 도 우| 시디에서 복사하면 15초남겨놓고 멈춥니다 [1] | SOW3 | 1790 | 12-11 |
18582 | 하드웨어| 넷북 추천받을수 있을까요? [2] | 네버리 | 1786 | 12-11 |
18581 | 하드웨어| 윈도우자동날짜변경 | April. J. | 3183 | 12-11 |
18580 | 윈 도 우| 윈도우7 백업 에러 0x80780034 | 루센 | 2584 | 12-11 |
18579 | 소프트웨어| 하드 c에는 윈도우만 d에는 임시파일 분할해쓰는거에대해서... [2] | 어흥흥 | 2412 | 12-11 |
18578 | 윈 도 우| Technet 에서 다운받은 Windows XP Home Edition K SP3 한... | 통나무 | 4446 | 12-11 |
18577 | 윈 도 우| 갑자기 크롬 브라우저에서 상향 스크롤이 안됩니다. [4] | 맙소사 | 1991 | 12-11 |
18576 | 소프트웨어| 영상관련 고수님들.. 1080i 720p 관련해서 궁금한점이 있습... [8] | 맨맨 | 3712 | 12-10 |
18575 | 윈 도 우| 트레이에 아이콘 랜덤하게 안보이는것 해결보신분 계신가요? | icreep | 6856 | 12-10 |
18574 | 윈 도 우| 윈7 엔터 영문판 다운받는곳 아시면 부탁드립니다. [5] | 메실 | 2363 | 12-10 |
하시려는게 정확히 뭔데요?
이런 단편적인 요구로는 문제해결이 어려울거 같네요.
연산이라는게 고급언어(C언어) 수준의 연산만 의미하는지, 실제 CPU에서 행해지는 연산(기계어)인지 부터가 모호합니다.