visual studio 에서 C를 짜는데...

spinel1의 이미지

러닝타임 시간을 구하고자 하는데...

초 단위 말고 ms나 us(마이크로 세컨드)단위로 시간을 체크할 수 있는지??

혹시 아시는 님은 부탁드려 주시기 바랍니다.

bugiii의 이미지

QueryPerformanceFrequency
QueryPerformanceCounter

이거면 충분하지 않을까요? 더 정밀한 걸 원하신다면 CPU 종속이긴 하지만, 레지스터에 파워온 다음부터의 내부 카운터를 넘겨주는 명령이 있긴 합니다.

그럼, 이만...

mrchu의 이미지

GetTickCount()나 mmTimer를 이용하는 방법, C런타임 라이브러리를 이용하는 방법등 많이 있으나, 그중 한가지는.

LARGE_INTEGER st, ed, freq;
double gap;

QueryPerformanceCounter(&st);
// 뭔가 성능을 측정할 작업을 한다.
QueryPerformanceCounter(&ed);
QueryPerformanceFrequency(&freq);

gap = ((double)(ed.QuadPart - st.QuadPart)) / ((double)freq.QuadPart);

여기서 gap을 출력하면 초단위로 잰 시간이 나옵니다.
출력값이 double이므로 초단위가 마음에 들지 않으시면, 적절히 스케일링 해 주시면 되겠지요.

bugiii의 이미지

앗 방금 수정하셨네요.
그럼, 총총...

kuma의 이미지

GetTickCount 는 32bit 이라서 7일 정도에 한번 reset 됩니다. 그래서 권하고 싶지는 않습니다.

antibug의 이미지

msec 단위를 리턴하기 때문에 주기는 7일이 아니라 49.x 일입니다.

사족이지만 예전에 win98이 50일째 다운되는 버그가 있었다는데 이게 아닐까
생각해봅니다. 98 SE부터는 해결됐다는데... ㅎㅎ;
그리고 이런 신으로 오버플로되는 것은 리눅스의 지피값도 마찬가지죠.
다만 리눅스 지피값이 msec이 아니기 때문이 오버플로 되는 주기는 윈도
보다는 훨씬 길죠.

간단한 루틴의 실행 속도를 측정하기 위해 사용하기에는 GetTickCount()가
, 그러니까 1msec이 너무 크죠. (세상에나... ^^;) 전 그냥 수만번 루프 돌리고
맙니다만..... 요즘엔 초당 n번 실행되는 루틴을 테스트하는데 귀찮아서 그냥
CPU 점유율 확인합니다. -.-; 의도적으로 오버헤드 안주면 0%나오지만... -.-;;

--------------------------------------
재미없는 일은 하지 말자는 인간 쓰레기.
-.-;

spinel1의 이미지

답변 달아주신 분들 모두 감사드리고 특히 mrchu 님 감사합니다.
덕분에 좋은 결과값을 얻을수 있었습니다. 감사합니다.
^^

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.