Le mardi 13 mars 2018 14:34:20 UTC+1, Christian Brabandt a écrit :
> On Di, 13 Mär 2018, Ni Va wrote:
> 
> > By Total time column for example.
> 
> Sorry, I find your answers in general too terse to try to figure out 
> what exactly you are trying to do now and I do not feel like guessing.
> 
> It looks as you'd like to sort buffer content, while you were saying 
> before you want to sort lists.
> 
> Oh and BTW: please trim your quotes and write your statement below to 
> what you are referring to.
> 
> Thanks,
> Christian 
> -- 
> Der gesunde Menschenverstand ist blind sowohl für das äußerst Böse
> wie für das höchst Gute.
>               -- Karl Jaspers

The csv file attached below it produced from this code particularly by from 
s:results list of strings. 

I import it into excel and then do a sort from max to min spent time by third 
column. 

I would do the same from this vimscript below on in order to sort by numeric 
float Total time column



fun! helper#ybereportstats_timebyfunc(list) "{{{


  "2. Total time by function
  "
  let totaltimelist = filter(copy(a:list), 'v:val =~ "TOTAL"')
  let pattime = '\(\d\+\:\d\+:\d\+\.\d\+\)'
  let patfunc = '\(\S\+()\)'
  let pattotaltime = '\(\d\+\(,\d\+\)\{0,1}\)'
  let linepat = '^.\{-}'.pattime.'.\{-}'.patfunc.'.\{-}'.pattotaltime.'.\{-}$'
  let listtotaltimespent = map(copy(totaltimelist)[0:s:nEch], 
'substitute(v:val, linepat, "\\2@\\3@\\1", "")')
  " echomsg string(listtotaltimespent)
  " return

  for value in listtotaltimespent
        " k : class/func name
        " v : total time for the call..
        " t : ..at time
        " try
                let [k,v,t] = split(value,'@')
        " catch /.*/
                " echomsg 'error ' . string(value) 
        " endtry
        if !has_key(s:dict,k)
          let s:dict[k] = { 'values' : [{'totaltime':v, 'time':t}] }
        else
          call extend(s:dict[k].values, [{'totaltime':v, 'time':t}]) 
        endif
  endfor
  " echo  s:dict

  "
  " 2. build results 
  "
  let s:results = [join(["Func","Nb Occs", "Total time (ms)","Indicateur 
(ms/ech)"],s:sep)]
  for funclass in keys(s:dict)
          " Sum up total time for N occurs
          let nOccur = len(s:dict[funclass].values)

          " Sum up total time for N occurs
          let sum=0.0
          for time in s:dict[funclass].values
              " echomsg time.totaltime
              let sum+=str2float(substitute(time.totaltime, ',', '.', 'g'))
          endfor

          " let sumstr = tr(printf("%s",sum),'.',',')
          let sumstr = printf("%s",sum)

          let indicateur=printf("%s",sum/nOccur)

          call extend(s:results, 
[funclass.s:sep.string(nOccur).s:sep.sumstr.s:sep.indicateur])
  endfor
  " echomsg string(s:results)
endfunction "}}}

-- 
-- 
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_use+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to