Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] looping recursion
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Xavier Leroy <Xavier.Leroy@i...>
Subject: Re: [Caml-list] looping recursion
> > Lemme try it out (10^6 elements):
> > 
> > ocamlc:
> > rev rev_map version:
> >  2 WALL ( 1.19 usr +  0.02 sys =  1.21 CPU)
> > vanilla map:
> >  7 WALL ( 6.50 usr +  0.09 sys =  6.59 CPU)
> > 
> > ocamlopt:
> > rev rev_map version:
> >  1 WALL ( 0.81 usr +  0.03 sys =  0.84 CPU)
> > vanilla map:
> >  2 WALL ( 2.45 usr +  0.02 sys =  2.47 CPU)
> 
> OK, so why is List.map in the OCaml standard library implemented the
> vanilla way rather than the rev rev_map way?  If it's such a big win,
> it seems foolish to have a broken implementation for such a crucial
> function.

Because for smaller list the "vanilla way" is more efficient.
In the test above, the vanilla way spends significant time resizing
the stack.  I suspect that when running it a second time on a already
resized stack, the timings would improve quite a lot.

- Xavier Leroy

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners