Not so good:
var ls = list (1,2);
var i:int; forall i in 0 upto 21 do
ls = rev (fold_left (fun (acc:list[int]) (x:int) => Cons(x,acc)) (rev ls) ls);
println$ str i + " " + str (len ls);
done
~/felix>flx --test=build/release --static -c flr
~/felix>FLX_REPORT_COLLECTIONS=1 FLX_FREE_FACTOR=4 FLX_MIN_MEM=1000 time ./flr
[FLX_REPORT_COLLECTIONS] Collection report enabled
0 4
1 8
2 16
3 32
4 64
5 128
6 256
7 512
8 1024
9 2048
10 4096
11 8192
12 16384
13 32768
14 65536
15 131072
16 262144
17 524288
18 1048576
19 2097152
20 4194304
21 8388608
16.14 real 15.17 user 0.95 sys
let ls = ref [1;2]
;;
for i= 0 to 21 do
ls := List.rev (List.fold_left (fun acc x -> x::acc) (List.rev !ls) (!ls));
print_endline ((string_of_int i) ^ " " ^(string_of_int (List.length !ls)));
done
;;
~/felix>ocamlopt.opt clr.ml -o clr
~/felix>time ./clr
0 4
1 8
2 16
3 32
4 64
5 128
6 256
7 512
8 1024
9 2048
10 4096
11 8192
12 16384
13 32768
14 65536
15 131072
16 262144
17 524288
18 1048576
19 2097152
20 4194304
21 8388608
real 0m4.625s
user 0m4.087s
sys 0m0.532s
Ocaml trashes Felix 4:1 on this test.
Reality is worse: parameters set in Felix so there's no call to the GC.
--
john skaller
[email protected]
------------------------------------------------------------------------------
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires
February 28th, so secure your free ArcSight Logger TODAY!
http://p.sf.net/sfu/arcsight-sfd2d
_______________________________________________
Felix-language mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/felix-language