GHC-6.4.1 much slower than GHC-6.4
Christian Maeder
maeder at tzi.de
Fri Oct 28 07:10:25 EDT 2005
(Moved to glasgow-haskell-bugs)
Below is my profiling data (on Linux turing 2.6.11.4-21.9-default)
Any ideas?
Cheers Christian
interesting-ghc-6.4 +RTS -p -RTS
total time = 253.76 secs (12688 ticks @ 20 ms)
total alloc = 15,991,765,312 bytes (excludes profiling overheads)
COST CENTRE MODULE %time %alloc
transF NFA.Type 13.9 1.1
trans_manyF NFA.Type 6.4 10.3
steps Util.Graph.BFS 6.4 2.1
build PCP.Rules.Excl.Type 5.5 9.4
dfs_collect Util.Graph.DFS 5.0 3.9
step Util.Graph.BFS 4.4 0.6
isPartOf Util.Words 2.9 5.8
lang_ok PCP.Rules.Type 2.9 5.0
dfs_abort Util.Graph.DFS 2.2 2.3
meet PCP.Search 2.2 0.5
transF NFA.DFA.Type 1.9 1.4
genericCross Util.Cross 1.8 4.3
complement NFA.Det 1.7 1.1
det_tqf NFA.Det 1.7 3.2
det_dfa NFA.Det 1.6 1.0
productive NFA.Intersect 1.5 3.6
subset NFA.Subset 1.5 2.3
map_fun Util.Map 1.5 1.2
build NFA.DFA.Hopcroft 1.4 2.9
apply PCP.Rules.Rule 1.3 2.6
apply PCP.Rules.Type 1.2 1.5
hop NFA.DFA.Hopcroft 1.1 1.0
ok PCP.Util.OK 1.0 0.8
select PCP.Rules.Type 0.9 1.3
is_final NFA.Type 0.6 1.0
final_conf PCP.Rules.Rule 0.6 1.1
sublistsN Util.Words 0.5 1.2
interesting-ghc-6.4.1 +RTS -p -RTS
total time = 1020.74 secs (51037 ticks @ 20 ms)
total alloc = 70,086,586,572 bytes (excludes profiling overheads)
COST CENTRE MODULE %time %alloc
transF NFA.Type 17.3 1.6
dfs_abort Util.Graph.DFS 7.4 7.4
trans_manyF NFA.Type 7.3 11.5
build PCP.Rules.Excl.Type 5.7 6.8
dfs_collect Util.Graph.DFS 5.3 3.6
intersect NFA.Intersect 4.6 9.8
satisfies_conditions PCP.Rules.Excl.Excl 4.2 5.0
subset NFA.Subset 4.1 7.1
genericCross Util.Cross 2.3 5.3
isPartOf Util.Words 2.2 3.5
steps Util.Graph.BFS 2.1 0.5
candidates PCP.Rules.Excl.Excl 2.0 2.4
det_tqf NFA.Det 1.7 2.9
det_dfa NFA.Det 1.6 1.0
transF NFA.DFA.Type 1.5 1.0
build NFA.DFA.Hopcroft 1.4 2.6
power_splitL Util.Words 1.3 1.3
map_fun Util.Map 1.2 1.0
step Util.Graph.BFS 1.1 0.1
productive NFA.Intersect 1.1 2.6
complement NFA.Det 1.1 0.6
candidates PCP.Rules.Excl.Div 1.0 1.0
lang_ok PCP.Rules.Type 0.7 1.1
splits Util.Words 0.6 1.0
Mirko Rahn wrote:
>
> Hello,
>
> I was surprised about really big differences in running times between
> 6.4 and 6.4.1, whereby 6.4.1 is *much* slower:
>
> *** 6.4: cpu-time interesting (3,3): 00:01:38.08
> *** 6.4.1: cpu-time interesting (3,3): 00:05:58.91
>
> Here we have a factor of about 3.6!! Are there others that have noticed
> such behavior? What could be the reason for that?
>
> Sorry, my example is a small monster, but at the moment there is neither
> time left to search for the reason for this behavior nor to break it
> down to some smaller pieces of code. I just noticed it...
>
> However, you can find the source tree in
>
> http://liinwww.ira.uka.de/~rahn/src/
>
> The file
>
> http://liinwww.ira.uka.de/~rahn/src/prog.tar.gz
>
> contains the tree as well. For the output above: Extract, cd proj/prog
> and run
>
> rahn at i90pc18:~/local/proj/prog$ for version in 6.4 6.4.1; do find .
> -name '*.hi' | rm -f ; ghc-$version --make -Wall -cpp
> -D__POS__='__FILE__ ++ "[" ++ show(__LINE__::Int) ++ "]: " ++ '
> -fglasgow-exts -fallow-overlapping-instances
> -fallow-undecidable-instances -O Prog/Interesting.hs -o
> Prog/Interesting.$version.bin 2>/dev/null >/dev/null; echo -n "***
> $version: " ; ./Prog/Interesting.$version.bin 2>&1 | grep time ; done
>
> Regards, Mirko
>
> P.S.: I run a debian-box with i686 GNU/Linux 2.6.11.11 and a dualcore P4
> 3.2 GHz.
>
More information about the Glasgow-haskell-bugs
mailing list