gprof 사용해 보신 분 있나요?

khk의 이미지

      1 #include <stdio.h>
      2 
      3 void f1() {
      4    int i;
      5    for (i=0; i<10000; i++)
      6       printf("This is f1()\n");
      7 }
      8 
      9 void f2() {
     10    int i;
     11    for (i=0; i<10000; i++)
     12       printf("This is f2()\n");
     13 }
     14 
     15 void f3() {
     16    int i;
     17    for (i=0; i<10000; i++)
     18       printf("This is f3()\n");
     19 }
     20 
     21 int main() {
     22    int i;
     23    for (i=0; i<10000; i++)
     24       printf("This is main()\n");
     25 
     26    f1();
     27    f2();
     28    f3();
     29 
     30    exit(0);
     31 }
     32 

컴파일 옵션은 -g -pg 주었구요
gprof test > result 로 프로파일 데이타를 뽑았는데 (별도 옵션 안주고..)
이상하게도 function의 수행시간이 모두 0으로 표시가 됩니다.
문장을 10,000번씩이나 찍는데 모두 0.00 sec 일리는 없는데 이상하네요...

검색을 해보니 저와 같은 문제의 분이 한 분 계셨던 것 같은데 답변이 없었네요...
혹시 아시는 분 답변 부탁드립니다..

은빛연어의 이미지

질문하신 gprof를 써보지는 않았지만... 인터넷에서 검색하니까 한글 man page인듯.. 설명이 잘되어 있네요...

http://www.kimseoyoung.com/AIX/Aix/Manual/usr/share/man/info/ko_KR/a_doc_lib/cmds/aixcmds2/gprof.htm

도움되시길...

liongo의 이미지

제가 얼핏 보기엔 그정도는 0.00 초안에 실행 될 가능성이 있는듯

합니다만 물론 다른 문제 일수도 있으나 지나가다 얼핏 본거와..

제 지난 기억을 얼핏 더듬어 보면.. 0.00 초안에 실행 될 가능성이

다분합니다.. 한번 체크해보시길..

흠 다시 보니 printf문이 있는데 stdout은 상관 없고 흠냥?

애매하네용.. 하여간 제 지난 기억으론 0.00초 안에 실행됬던걸로

기억합니다.. printf문이 있어서 좀 애매함 -_-;;

정확한건.. usec단위로 체크해보시길..

참조할만한 글이 아닌것같자나 -_-;; 지송..

' 형식이 내용을 규정한다. '

khk의 이미지

더 많은 시간이 걸리는 것도...
모두 0.00 sec로 나와버립니다.
위에서 for를 1만번이 아니라 100만번 돌려도 0.00sec로 나옵니다 ㅡ.ㅡ;;
뭐가 문제일까요....

partout의 이미지

printf 함수와 같은 외부 함수를 호출하는 대신에...
f1, f2, f3 함수 내부에서 심한 연산을 하도록 해서 결과를 찍어 보세요.
self seconds나 self ms/call에는 f1, f2, f3에서 호출한 함수에서
소요한 시간은 포함되지 않고 순수하게 f1, f2, f3에서 사용한 시간만을
계산해서 보여주거든요.
거의 0으로 보이는 것도 이것 때문일 거 같은데요.

어찌나 졸린지..~~

khk의 이미지

아 그렇군요. 님의 말씀처럼 함수내에서 다른 함수를 부르면
그 시간은 빼고 측정을 하게 되어 있나보네요.
user defined function이 아니라 std library function이라도 그런가 봅니다.
printf 대신에 연산을 넣으니 제대로 결과가 나오는 것 같습니다.

답변해 주신 모든 분들께 감사드립니다.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.