[Haskell-beginners] Performance of Idiomatic lazy Haskell
Tim Perry
perry2of5 at yahoo.com
Mon Feb 1 14:15:25 EST 2010
CygWin would be a good option.
Here are some other ideas:
There is a timeit.exe utility in the Windows Server downloads which is supposed to be similar to unix's time command. Try the links here
http://channel9.msdn.com/forums/Coffeehouse/258979-Windows-equivalent-of-UnixLinux-time-command/
Windows does support piping. It is similar to bash with 2>&1 to redirect stderr to stdout and stuff.
http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/redirection.mspx?mfr=true
The new windows shell is almost a real shell. Almost.
If you don't have that, then this port of unix utilities makes an XP box tolerable.
http://unxutils.sourceforge.net/
Hope that helps.
--Tim
----- Original Message ----
From: Daniel Fischer <daniel.is.fischer at web.de>
To: Markus Böhm <markus.boehm at googlemail.com>
Cc: beginners at haskell.org
Sent: Mon, February 1, 2010 6:40:52 AM
Subject: Re: [Haskell-beginners] Performance of Idiomatic lazy Haskell
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
>
_______________________________________________
Beginners mailing list
Beginners at haskell.org
http://www.haskell.org/mailman/listinfo/beginners
More information about the Beginners
mailing list