Browse thread
Re: [Caml-list] SafeUnmarshal: questions/problems/timings
- Hendrik Tews
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: | 2006-09-14 (13:06) |
From: | Hendrik Tews <tews@c...> |
Subject: | Re: [Caml-list] SafeUnmarshal: questions/problems/timings |
Here is the promised followup with more details on the slow safe unmarshalling. On http://www.cs.ru.nl/~tews/nsUnicodeToTeXCMRt1.i.oast you can download 281 KB of marshalled data. On my machine it takes 23 seconds to check with native code. The data is of type annotated translationUnit_type = annotated * annotated topForm_type list You can test it with the following piece of code: open Cc_ast_gen_type open Ast_annotation let file = "/home/tews/src/elsa/elsa/in/big/nsUnicodeToTeXCMRt1.i.oast" ;; try SafeUnmarshal.from_channel [^ annotated translationUnit_type ^] (open_in file); print_endline "OK" with | _ -> print_endline "FAIL" compile with ocamlopt.opt safeUnmarshal.cmxa ast_annotation.ml elsa_util.ml \ ml_ctype.ml cc_ml_types.ml cc_ast_gen_type.ml justunmarshal.ml The additional files are from Olmar, get them here: http://www.sos.cs.ru.nl/cgi-bin/~tews/olmar/viewvc-patch.cgi/elsa/elsa/ast_annotation.ml?revision=olmar-release-2006-09-07 http://www.sos.cs.ru.nl/cgi-bin/~tews/olmar/viewvc-patch.cgi/elsa/elsa/elsa_util.ml?revision=olmar-release-2006-09-07 http://www.sos.cs.ru.nl/cgi-bin/~tews/olmar/viewvc-patch.cgi/elsa/elsa/ml_ctype.ml?revision=olmar-release-2006-09-07 http://www.sos.cs.ru.nl/cgi-bin/~tews/olmar/viewvc-patch.cgi/elsa/elsa/cc_ml_types.ml?revision=olmar-release-2006-09-07 http://www.sos.cs.ru.nl/cgi-bin/~tews/olmar/viewvc-patch.cgi/elsa/elsa/cc_ast_gen_type.ml?revision=olmar-release-2006-09-07 To produce graphs like http://www.cs.ru.nl/~tews/marshal-plot.eps you need to download Olmar, compile it and then - ./regrtest -ocaml in subdir elsa - ./regtest-oast | grep time >data in subdir asttools - gnuplot plot where the plot file is something like reset set grid unset mouse set terminal x11 persist #set terminal postscript enhanced color set xlabel "size (Bytes)" set ylabel "time (s)" set key left z = 2.1 plot "data" using 6:3 title "SafeUnmarshal user time", \ (0.000017088 * x) ** 2.1 Bye, Hendrik