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