Changeset: 050852aeb866 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=050852aeb866
Modified Files:
        monetdb5/mal/mal_profiler.c
Branch: default
Log Message:

Cleannup the json structure


diffs (122 lines):

diff --git a/monetdb5/mal/mal_profiler.c b/monetdb5/mal/mal_profiler.c
--- a/monetdb5/mal/mal_profiler.c
+++ b/monetdb5/mal/mal_profiler.c
@@ -233,7 +233,7 @@ renderProfilerEvent(MalBlkPtr mb, MalStk
                                }
                        }
                }
-//#define MALARGUMENTDETAILS
+#define MALARGUMENTDETAILS
 #ifdef MALARGUMENTDETAILS
                logadd("\"prereq\":%s],%s", prereq, prettify);
 #else
@@ -250,58 +250,63 @@ renderProfilerEvent(MalBlkPtr mb, MalStk
 }
 This information can be used to determine memory footprint and variable life 
times.
  */
-#define MALARGUMENTDETAILS
 #ifdef MALARGUMENTDETAILS
                // Also show details of the arguments for modelling
-               if(mb)
-               for( j=0; j< pci->argc; j++){
-                       int tpe = getVarType(mb, getArg(pci,j));
-                       str tname = 0, cv;
-                       lng total = 0;
-                       BUN cnt = 0;
-                       str kind;
-                       str pret = ""; // or prettify
-                       int p = getPC(mb,pci);
+               if(mb){
+                       logadd("\"result\":[");
+                       for( j=0; j< pci->argc; j++){
+                               int tpe = getVarType(mb, getArg(pci,j));
+                               str tname = 0, cv;
+                               lng total = 0;
+                               BUN cnt = 0;
+                               str kind;
+                               str pret = ""; // or prettify
+                               int p = getPC(mb,pci);
 
-                       logadd("\"%s\":{", j< pci->retc?"result":"argument");
-                       logadd("\"clk\":"LLFMT",%s",usec,pret);
-                       logadd("\"pc\":%d,%s", p, pret);
-                       logadd("\"index\":\"%d\",%s", j,pret);
-                       if( !isVarConstant(mb, getArg(pci,j))){
-                               logadd("\"name\":\"%s\",%s", getVarName(mb, 
getArg(pci,j)), pret);
+                               if( j == pci->retc ){
+                                       logadd("],%s\"arguments\":[",prettify);
+                               } 
+                               logadd("{");
+                               logadd("\"clk\":"LLFMT",%s",usec,pret);
+                               logadd("\"pc\":%d,%s", p, pret);
+                               logadd("\"index\":\"%d\",%s", j,pret);
+                               if( !isVarConstant(mb, getArg(pci,j))){
+                                       logadd("\"name\":\"%s\",%s", 
getVarName(mb, getArg(pci,j)), pret);
+                               }
+                               if( isaBatType(tpe) ){
+                                       BAT *d= 
BATdescriptor(abs(stk->stk[getArg(pci,j)].val.ival));
+                                       tname = getTypeName(getColumnType(tpe));
+                                       logadd("\"type\":\"bat[:%s]\",%s", 
tname,pret);
+                                       if( d) {
+                                               cnt = BATcount(d);
+                                               total += heapinfo(&d->T->heap);
+                                               if ( d->T->vheap && 
d->T->vheap->parentid ){
+                                                       total += 
heapinfo(d->T->vheap); 
+                                               }
+                                               kind =  d->batPersistence? 
"persistent":"transient";
+                                               BBPunfix(d->batCacheid);
+                                       } 
+                                       
logadd("\"count\":\""BUNFMT"\",%s",cnt,pret);
+                                       logadd("\"kind\":\"%s\",%s",kind,pret);
+                                       logadd("\"footprint\":" LLFMT",%s", 
total,pret);
+                               } else{
+                                       tname = getTypeName(tpe);
+                                       logadd("\"type\":\"%s\",%s", 
tname,pret);
+                                       cv = 0;
+                                       VALformat(&cv, 
&stk->stk[getArg(pci,j)]);
+                                       stmtq = mal_quote(cv, strlen(cv));
+                                       logadd("\"value\":\"%s\",%s", 
stmtq,pret);
+                                       GDKfree(cv);
+                                       GDKfree(stmtq);
+                               }
+                               logadd("\"eol\":%d%s", p == 
getEndOfLife(mb,getArg(pci,j)) , pret);
+                               GDKfree(tname);
+                               logadd("}%s%s", (j< pci->argc-1 && j != 
pci->retc -1?",":""), pret);
                        }
-                       if( isaBatType(tpe) ){
-                               BAT *d= 
BATdescriptor(abs(stk->stk[getArg(pci,j)].val.ival));
-                               tname = getTypeName(getColumnType(tpe));
-                               logadd("\"type\":\"bat[:%s]\",%s", tname,pret);
-                               if( d) {
-                                       cnt = BATcount(d);
-                                       total += heapinfo(&d->T->heap);
-                                       if ( d->T->vheap && 
d->T->vheap->parentid ){
-                                               total += heapinfo(d->T->vheap); 
-                                       }
-                                       kind =  d->batPersistence? 
"persistent":"transient";
-                                       BBPunfix(d->batCacheid);
-                               } 
-                               logadd("\"count\":\""BUNFMT"\",%s",cnt,pret);
-                               logadd("\"kind\":\"%s\",%s",kind,pret);
-                               logadd("\"footprint\":" LLFMT",%s", total,pret);
-                       } else{
-                               tname = getTypeName(tpe);
-                               logadd("\"type\":\"%s\",%s", tname,pret);
-                               cv = 0;
-                               VALformat(&cv, &stk->stk[getArg(pci,j)]);
-                               stmtq = mal_quote(cv, strlen(cv));
-                               logadd("\"value\":\"%s\",%s", stmtq,pret);
-                               GDKfree(cv);
-                               GDKfree(stmtq);
-                       }
-                       logadd("\"eol\":%d%s", p == 
getEndOfLife(mb,getArg(pci,j)) , pret);
-                       GDKfree(tname);
-                       logadd("}%s%s", (j< pci->argc-1?",":""), prettify);
+                       logadd("] %s",prettify); // end marker for arguments
                }
+       }
 #endif
-       }
        logadd("}\n"); // end marker
        logjsonInternal(logbuffer);
 }
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to