guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Question about your profiling patch...


From: Rob Browning
Subject: Re: Question about your profiling patch...
Date: 05 Apr 2001 13:48:45 -0500
User-agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7

Keisuke Nishida <address@hidden> writes:

> I see.  But I still don't know what is wrong with this.
> Could you try with simpler examples?  What happens with
> the followings, for example:

OK, I've investigated further and here's a more conclusive example
that something's wrong, and now I'm wondering if it could either be a
namespace issue, or perhaps more likely, there's a case in eval.c
that's not being handled.

In this example, we're profiling report generation, and so in the
top-level reporting function we do this (this is the only time
*profile-all* is touched in the app):

  (set! *profile-all* #t)
  (set! formlist (gnc:html-document-render doc))
  (set! *profile-all* #f)
  (dump-profiling-data)

Then over in gnc:html-style-table-fetch, I do this in an
unconditionally executed part of the body:

  (if *profile-all*
      (begin
        (display "inside gnc:html-style-table-fetch\n")
        (display "  *profile-all* ") (display *profile-all*) (newline)
        (display "  ")
        (display (procedure-properties gnc:html-style-table-fetch))
        (newline)))

and after running one trivial report, the resulting output looks like
this (note that 'profile-data is not set, which should be impossible
if I'm reading the intent of your profiling patch correctly):

  inside gnc:html-style-table-fetch
    *profile-all* #t
    ((arity 3 0 #f) (name . gnc:html-style-table-fetch))
  inside gnc:html-style-table-fetch
    *profile-all* #t
    ((arity 3 0 #f) (name . gnc:html-style-table-fetch))

    [... many duplicates omitted ...]

  inside gnc:html-style-table-fetch
    *profile-all* #t
    ((arity 3 0 #f) (name . gnc:html-style-table-fetch))
  inside gnc:html-style-table-fetch
    *profile-all* #t
    ((arity 3 0 #f) (name . gnc:html-style-table-fetch))
  inside gnc:html-style-table-fetch
    *profile-all* #t
    ((arity 3 0 #f) (name . gnc:html-style-table-fetch))

and we get a profile dump like this (note that
gnc:html-style-table-fetch is listed as never called):

  Called Procedure                        Run  Real
  ------ ---------                        ---  ----
  1197   hash-fold                        73   77  
  3208   eval                             52   49  
  1389   root-module-closure              51   49  
  37     apply                            34   36  
  1214   for-each                         33   35  
  4365   eq?                              13   16  
  7757   not                              6    14  
  1      gnc:html-document-render         8    7   
  1322   =                                4    6   
  1      gnc:html-table-render            5    4   
  4418   vector-ref                       4    3   
  4643   struct?                          3    2   
  4383   hashq-set!                       3    2   
  7623   cdr                              6    5   
  3452   null?                            0    2   
  1408   symbol-interned?                 2    2   
  3      gnc:html-text-render             2    2   
  4087   struct-ref                       2    2   
  3363   cons                             2    1   
  1198   symbol?                          0    1   
  242    display                          2    2   
  38     make-struct                      0    1   
  28     gnc:html-style-info-merge        0    1   
  20     hash-ref                         0    1   
  14     gnc:html-document-markup-start   1    1   
  7      gnc:html-document-fetch-data-style 1    1   
  3      gnc:html-document-fetch-markup-style 0    1   
  1      gnc:html-table-cell-render       1    1   
  6706   car                              1    0   
  6710   car                              1    0   
  4341   struct-vtable                    3    0   
  1408   variable-bound?                  2    0   
  1408   builtin-variable                 0    0   
  1177   variable?                        0    0   
  200    acons                            0    0   
  148    gnc:html-markup-style-info?      0    0   
  129    gnc:html-data-style-info?        0    0   
  106    assoc-set!                       0    0   
  106    vector-set!                      0    0   
  98     assoc-ref                        0    0   
  3145   >=                               3    3   
  64     newline                          0    0   
  57     gnc:html-style-table-compiled?   0    0   
  5293   +                                4    1   
  51     struct-set!                      0    0   
  42     eqv?                             0    0   
  42     make-vector                      0    0   
  40     list?                            0    0   
  39     apply:nconc2last                 0    0   
  283    string?                          0    0   
  32     procedure-properties             0    0   
  29     gnc:html-data-style-info-merge   0    0   
  24     gnc:html-markup-style-info-merge 0    0   
  1243   string-ref                       0    1   
  22     gnc:make-html-markup-style-info  0    0   
  18     string-set!                      0    0   
  16     char?                            0    0   
  529    string-length                    0    0   
  538    string-length                    0    0   
  15     cadr                             0    0   
  15     cadr                             0    0   
  15     gnc:html-table-cell?             0    0   
  13     pair?                            0    0   
  453    length                           0    0   
  11     gnc:html-document-markup-end     1    0   
  271    number?                          0    0   
  538    -                                0    1   
  545    list                             1    1   
  8      cddr                             0    0   
  8      gnc:make-html-object             0    0   
  7      min                              0    0   
  7      gnc:default-html-string-renderer 0    0   
  7      procedure?                       0    0   
  6      negative?                        0    0   
  5      gnc:html-object?                 0    0   
  5      record?                          0    0   
  233    number->string                   0    0   
  928    memq                             2    1   
  3      truncate                         0    0   
  3      inexact->exact                   0    0   
  3      *                                0    0   
  3      /                                0    0   
  330    substring                        2    0   
  334    append                           3    1   
  2      vector?                          0    0   
  512    boolean?                         0    0   
  2      make-string                      0    0   
  2      equal?                           0    0   
  442    char-numeric?                    0    0   
  2      require:require                  0    0   
  2      require:provided?                0    0   
  2      require:require                  0    0   
  1      reverse                          0    0   
  1      gnc:html-markup/no-end           0    0   
  1      string=?                         0    0   
  1      caddr                            0    0   
  1      string-append                    0    0   
  1      caddr                            0    0   
  0      gnc:make-html-document           0    0   
  0      gnc:html-markup-style-info-attributes 0    0   
  0      gnc:html-style-table-primary     0    0   
  0      gnc:html-document-set-style-internal! 0    0   
  0      gnc:html-document-style-sheet    0    0   
  0      gnc:html-object-renderer         0    0   
  0      gnc:html-style-sheet-options     0    0   
  0      gnc:html-style-table-inheritable 0    0   
  0      gnc:make-html-markup-style-info-internal 0    0   
  0      record-type-fields               0    0   
  0      stdio:sprintf                    0    0   
  0      module-obarray-set!              0    0   
  0      gnc:html-data-style-info-renderer 0    0   
  0      gnc:html-object-data             0    0   
  0      module-modified                  0    0   
  0      gnc:html-document-push-style     0    0   
  0      gnc:option-data                  0    0   
  0      kvt-ref                          0    0   
  0      gnc:option-getter                0    0   
  0      gnc:html-data-style-info-inheritable? 0    0   
  0      record-type-descriptor           0    0   
  0      gnc:html-table-col-style         0    0   
  0      gnc:html-table-row-style         0    0   
  0      gnc:lookup-option                0    0   
  0      gnc:html-document-append-objects! 0    0   
  0      gnc:html-markup-style-info-inheritable? 0    0   
  0      gnc:make-html-text-internal      0    0   
  0      module-add!                      0    0   
  0      gnc:make-html-document-internal  0    0   
  0      gnc:html-document-render-data    0    0   
  0      gnc:html-document-style-stack    0    0   
  0      record-modifier                  0    0   
  0      gnc:html-table?                  0    0   
  0      hash->kv-list                    0    0   
  0      gnc:make-html-text               0    0   
  0      gnc:html-style-table-set!        0    0   
  0      gnc:html-table-col-styles        0    0   
  0      gnc:html-table-row-markup        0    0   
  0      gnc:html-table-row-styles        0    0   
  0      gnc:html-table-cell-style        0    0   
  0      gnc:html-text-style              0    0   
  0      gnc:html-table-cell-data         0    0   
  0      gnc:html-table-row-markup-table  0    0   
  0      gnc:html-table-style             0    0   
  0      gnc:html-object-render           0    0   
  0      gnc:html-document-objects        0    0   
  0      gnc:option-value                 0    0   
  0      gnc:html-style-table-set-compiled! 0    0   
  0      gnc:make-html-style-table        0    0   
  0      gnc:html-markup-style-info-font-size 0    0   
  0      gnc:html-markup-style-info-font-face 0    0   
  0      gnc:html-document-set-objects!   0    0   
  0      gnc:color-option->html           0    0   
  0      module-observers                 0    0   
  0      gnc:html-markup-style-info-closing-font-tag 0    0   
  0      gnc:html-style-sheet-renderer    0    0   
  0      gnc:html-document-set-style!     0    0   
  0      gnc:html-table-col-headers       0    0   
  0      gnc:html-table-col-headers-style 0    0   
  0      gnc:color->html                  0    0   
  0      gnc:html-style-table-set-inheritable! 0    0   
  0      gnc:html-markup-h3               0    0   
  0      gnc:html-markup-style-info-font-color 0    0   
  0      gnc:html-document-style          0    0   
  0      gnc:html-document-title          0    0   
  0      gnc:html-table-data              0    0   
  0      gnc:html-style-sheet-style       0    0   
  0      for-each-in-order                0    0   
  0      gnc:html-document-pop-style      0    0   
  0      gnc:html-document-add-object!    0    0   
  0      module-weak-observers            0    0   
  0      module-obarray                   0    0   
  0      gnc:html-markup-p                0    0   
  0      gnc:make-html-style-table-internal 0    0   
  0      gnc:html-table-cell-tag          0    0   
  0      list-index                       0    0   
  0      gnc:html-table-cell-colspan      0    0   
  0      gnc:html-table-cell-rowspan      0    0   
  0      gnc:html-markup-style-info-tag   0    0   
  0      kvt-set!                         0    0   
  0      gnc:html-table-caption           0    0   
  0      gnc:html-data-style-info-data    0    0   
  0      gnc:html-text?                   0    0   
  0      gnc:html-style-table-uncompile   0    0   
  0      gnc:html-style-table-compiled    0    0   
  0      gnc:html-document-set-style-stack! 0    0   
  0      record-type?                     0    0   
  0      gnc:html-text-body               0    0   
  0      gnc:html-style-sheet-render      0    0   
  0      gnc:make-html-object-internal    0    0   
  0      make-kvtable                     0    0   
  0      gnc:html-style-table-fetch       0    0   
  0      gnc:html-style-table-compile     0    0   
  0      kvt-fold                         0    0   
  0      gnc:html-markup-style-info-set-attribute! 0    0   
  0      stdio:sprintf                    0    0   
  0      stdio:sprintf                    0    0   
  0      generic-write                    0    0   
  total time to run report: 2.343889

-- 
Rob Browning <address@hidden> PGP=E80E0D04F521A094 532B97F5D64E3930



reply via email to

[Prev in Thread] Current Thread [Next in Thread]