
1. I used Your lualoop file with content:
module Main (main) where
main :: IO ()
main = do
--putStrLn "EPS:"
-- eps <- readLn :: IO Double
print $ 4*calcPi 0.00000001
calcPi :: Double -> Double
calcPi eps = go False 1 3
where
go bl p1 i
| 4*abs(p2-p1) < eps = p1
| otherwise = go (not bl) p2 (i+2)
where
p2 | bl = p1+1/i
| otherwise = p1-1/i
2.
F:\MeineUebungen>ghc -O2 -fforce-recomp -fexcess-precision -fvia-C -optc-O3 -o c
loop --make p085-pi_lualoop.hs
[1 of 1] Compiling Main ( p085-pi_lualoop.hs, p085-pi_lualoop.o )
Linking cloop.exe ...
F:\MeineUebungen>ghc -O2 -fforce-recomp -o nloop --make p085-pi_lualoop.hs
[1 of 1] Compiling Main ( p085-pi_lualoop.hs, p085-pi_lualoop.o )
Linking nloop.exe ...
F:\MeineUebungen>cloop +RTS -sstderr
cloop +RTS -sstderr
3.1415926485894725
20,860 bytes allocated in the heap
892 bytes copied during GC
3,068 bytes maximum residency (1 sample(s))
13,316 bytes maximum slop
1 MB total memory in use (0 MB lost due to fragmentation)
Generation 0: 0 collections, 0 parallel, 0.00s, 0.00s elapsed
Generation 1: 1 collections, 0 parallel, 0.00s, 0.00s elapsed
INIT time 0.02s ( 0.02s elapsed)
MUT time 7.39s ( 7.27s elapsed)
GC time 0.00s ( 0.00s elapsed)
EXIT time 0.00s ( 0.00s elapsed)
Total time 7.41s ( 7.28s elapsed)
%GC time 0.0% (0.0% elapsed)
Alloc rate 2,816 bytes per MUT second
Productivity 99.8% of total user, 101.5% of total elapsed
F:\MeineUebungen>nloop +RTS -sstderr
nloop +RTS -sstderr
3.1415926485894725
20,860 bytes allocated in the heap
892 bytes copied during GC
3,068 bytes maximum residency (1 sample(s))
13,316 bytes maximum slop
1 MB total memory in use (0 MB lost due to fragmentation)
Generation 0: 0 collections, 0 parallel, 0.00s, 0.00s elapsed
Generation 1: 1 collections, 0 parallel, 0.00s, 0.00s elapsed
INIT time 0.02s ( 0.00s elapsed)
MUT time 4.77s ( 4.81s elapsed)
GC time 0.00s ( 0.00s elapsed)
EXIT time 0.00s ( 0.00s elapsed)
Total time 4.78s ( 4.81s elapsed)
%GC time 0.0% (0.0% elapsed)
Alloc rate 4,362 bytes per MUT second
Productivity 99.7% of total user, 99.0% of total elapsed
-- Markus
On Mon, Feb 1, 2010 at 3:40 PM, Daniel Fischer
Am Montag 01 Februar 2010 15:22:45 schrieb Markus Böhm:
Daniel, I use GHC 6.12.1 and Windows XP.
*sigh*
Have you a CygWin installed? It should run as given from a CygWin shell, I believe.
The time command doesn't seem to work. It says in German: specified time can't be read. Give a new time.
Replace "time" with however you get the CPU time used by a process on Windows. But I think Windows doesn't allow piping, and I'm not sure whether it has echo, so see below.
Daniel, here another feedback:
F:\MeineUebungen>ghc -O2 -fexcess-precision -fvia-C -optc-O3 -o luaLoop --make p 085-pi_lualoop.hs [1 of 1] Compiling Main ( p085-pi_lualoop.hs, p085-pi_lualoop.o ) Linking luaLoop.exe ...
F:\MeineUebungen>echo '0.00000001' | time ./luaLoop Eingegebene Zeit kann nicht übernommen werden. Geben Sie die neue Zeit ein:
F:\MeineUebungen>luaLoop +RTS -sstderr -RTS luaLoop +RTS -sstderr EPS: 0.00000001 3.1415926485894725 61,428 bytes allocated in the heap 1,316 bytes copied during GC 4,564 bytes maximum residency (1 sample(s)) 11,820 bytes maximum slop 1 MB total memory in use (0 MB lost due to fragmentation)
Generation 0: 0 collections, 0 parallel, 0.00s, 0.00s elapsed Generation 1: 1 collections, 0 parallel, 0.00s, 0.00s elapsed
INIT time 0.02s ( 0.00s elapsed) MUT time 8.06s ( 16.83s elapsed) GC time 0.00s ( 0.00s elapsed) EXIT time 0.00s ( 0.00s elapsed) Total time 8.08s ( 16.83s elapsed)
%GC time 0.0% (0.0% elapsed)
Alloc rate 7,604 bytes per MUT second
Productivity 99.8% of total user, 47.9% of total elapsed
What?????
Please try the following:
1) hardcode eps = 1e-8 in the source (or get it via getArgs and pass it as a command line argument) 2) ghc -O2 -fforce-recomp -fexcess-precision -fvia-C -optc-O3 -o cloop -- make Source.hs 3) ghc -O2 -fforce-recomp -o nloop --make Source.hs 4) cloop +RTS -sstderr 5) nloop +RTS -sstderr
-- Markus