misc:software:Emacs:init-loader:init-loader-show-log

misc:software:Emacs:init-loader:init-loader-show-log

コマンド

M-x init-loader-show-log

ファイルの読み込みに要した時間を見やすくする

init-loader-show-log の結果をファイルに保存し、awk スクリプトを使って整形する。

function getFilenameWithoutDirectory(string){
  gsub(/^.+\//, "", string)
  gsub(/\.$/, "", string)
  return string
}

function getTime(string){
  gsub(/:::.+$/, "", string)
  return string
}

function getFilename(string){
  gsub(/^.+:::/, "", string)
  return getFilenameWithoutDirectory(string)
}



BEGIN {
        sum = 0
}

(NF == 3) { 
        a[NR] = $3 ":::" $2
        sum += $3
}


END {
        accPercent = 0.0

        n = asort(a, b);
        for (i = n; 0 < i; --i) {
                myindex=n-i+1

                filename = getFilename(b[i])
                time = getTime(b[i])
                percent = time / sum * 100
                accPercent += percent

                if (1 == myindex) {
                        printf("%3s %-40s time\tpercent\t%5s\n", "n:", "filename", "acc")
                        print "----------"
                }

                printf("%2d: %-40s %0.3fs\t%0.2f%\t%0.2f%\n", myindex, filename, time, percent, accPercent)
                
                if (0 == myindex%5) { print "----------" }
                
                # if (20 == myindex) { break }
        }

        print "total files:\t" n
        print "total time:\t" sum "s"
}

Last modified : 2013/08/03 13:55:32 JST