From: Han-Wen Nienhuys Date: Sat, 6 Jan 2007 20:46:49 +0000 (+0100) Subject: backport from 2.11: profiling. X-Git-Tag: release/2.10.10-1~28 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=483a03bd5825ff8f85aaeebbb2fabb67a859b65b;p=lilypond.git backport from 2.11: profiling. --- diff --git a/buildscripts/build-profile.sh b/buildscripts/build-profile.sh new file mode 100755 index 0000000000..ee85ec7773 --- /dev/null +++ b/buildscripts/build-profile.sh @@ -0,0 +1,80 @@ +#!/bin/sh + +if test "$1" == "--fresh"; then + fresh=yes +fi + +if test ! -f config-prof.make; then + fresh=yes +fi + +if test "$fresh" = "yes"; +then + ./configure --enable-config=prof --enable-optimising \ + && perl -i~ -pe 's/-pipe /-pg -pipe /g' config-prof.make \ + && perl -i~ -pe 's/ -ldl / -pg -ldl /g' config-prof.make +fi + +make conf=prof -j2 + +if test "$?" != "0"; then + exit 2 +fi + +depth=../.. +resultdir=out/profile-results + +rm -rf $resultdir +mkdir $resultdir +cd $resultdir + + +echo 'foo = \new Staff \new Voice \repeat unfold 50 \relative { c4 d8[ d16( e]~ e16[ e e) f] g8 } +\new ChoirStaff << + \foo \foo \foo \foo + \foo \foo \foo \foo + +>>' > long-score.ly + +rm gmon.sum + +exe=$depth/out-prof/bin/lilypond + +## todo: figure out representative sample. +files="wtk1-fugue2 wtk1-fugue2 wtk1-fugue2 wtk1-fugue2 mozart-hrn-3 mozart-hrn-3 long-score" + + + +$exe -ddump-profile --formats=ps -I $depth/input/ -I $depth/input/mutopia/J.S.Bach/ \ + -I $depth/input/mutopia/W.A.Mozart/ \ + $files + + +for a in *.profile; do + echo $a + cat $a +done + +echo 'running gprof' +gprof $exe > profile + +exit 0 + + +## gprof -s takes forever. +for a in seq 1 3; do + for f in $files ; do + $exe -ddump-profile --formats=ps -I $depth/input/ -I $depth/input/mutopia/J.S.Bach/ \ + -I $depth/input/mutopia/W.A.Mozart/ \ + $f + + echo 'running gprof' + if test -f gmon.sum ; then + gprof -s $exe gmon.out gmon.sum + else + mv gmon.out gmon.sum + fi + done +done + +gprof $exe gmon.sum > profile