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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list