소프트웨어 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 | - | - |
18361 | 하드웨어| 윈7 64비트에서 램4GB 8GB 차이 많이나나요? [5] | 블루하와이 | 4266 | 11-30 |
18360 | 윈 도 우| 바이러스 문제입니까? or 하드웨어문제입니까? [1] | Sanidine | 1765 | 11-30 |
18359 | 윈 도 우| ATI Radeon TV-OUT (티비아웃) 문제... [5] | 쏘리쏠이 | 2251 | 11-30 |
18358 | 소프트웨어| 질문글에 대한 의견입니다. [2] | GodFather | 2786 | 11-29 |
18357 | 하드웨어| 데스크 탑용 hdd 또는 ssd 추천 부탁합니다. [6] | 담장미인 | 2318 | 11-29 |
» | 소프트웨어| C 언어에서 연산 횟수 카운트하기 [6] | 그냥그대로 | 3976 | 11-29 |
18355 | 소프트웨어| Mmm+ 를 대신할만한 컨텍스트 확장 프로그램은 어떤것이.. [2] | 취리히 | 3093 | 11-29 |
18354 | 하드웨어| 하드디스크 문의좀합니다 [3] | 태양은없다 | 1909 | 11-29 |
18353 | 소프트웨어| 음악 고수님께 부탁 드립니다.. [2] | 컴초보 | 2538 | 11-29 |
18352 | 윈 도 우| 하드 문제 해결 방법 없나요? [1] | Ohys | 2171 | 11-29 |
18351 | 소프트웨어| 저사양 XP에서 고화질 동영상 보는 방법 [8] | 이끼소년 | 7648 | 11-29 |
18350 | 소프트웨어| 하드 파티션 질문 좀 드립니다 [2] | 사형집행관 | 2918 | 11-29 |
18349 | 윈 도 우| 작업 표시줄 관련해서 질문하나 드립니다. [4] | 황시원 | 1559 | 11-29 |
18348 | 윈 도 우| TEMP파일과 페이징파일 및 내문서 위치 변경 방법 [5] | 담장미인 | 5934 | 11-29 |
18347 | 윈 도 우| 윈도우7 서비스팩1이 설치가 안되네요 [3] | 화이 | 2376 | 11-29 |
18346 | 윈 도 우| 2~5gb 텍스트파일을 열고, 색인할때 질문입니다. [4] | 프로그래머근성 | 1907 | 11-29 |
18345 | 윈 도 우| 부팅후에 작업 표시줄과 바탕화면에 아무것도 안나옵니다 [5] | 회탈리카 | 2575 | 11-29 |
18344 | 소프트웨어| True Image 2011 build 6574의 문제점 [8] | 지니왕자 | 3005 | 11-29 |
18343 | 윈 도 우| Computer Browser 활성화하는 방법 좀.... [1] | 최현일 | 3913 | 11-29 |
18342 | 윈 도 우| usb 문제 해결좀.. [3] | Ohys | 2048 | 11-29 |
하시려는게 정확히 뭔데요?
이런 단편적인 요구로는 문제해결이 어려울거 같네요.
연산이라는게 고급언어(C언어) 수준의 연산만 의미하는지, 실제 CPU에서 행해지는 연산(기계어)인지 부터가 모호합니다.