Browse thread
[Caml-list] Gripes with array
[
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: | -- (:) |
| From: | Damien Doligez <damien.doligez@i...> |
| Subject: | Re: [Caml-list] Gripes with array |
On Sep 9, 2004, at 18:58, Jon Harrop wrote: >>> Also, can Array.init be made to fill the elements only once? >> No, that's impossible without breaking the GC invariants. > > Could it not even be done by dragging Array.init inside the compiler, > giving > it the same status as Array.make? Not without implementing such horrors as Christophe described. I don't much like the idea of introducing lots of bugs while slowing down the whole GC, even for programs that don't use arrays. An intermediate solution would be to make a "Array.unsafe_make" primitive, which would use memset instead of initialising the array properly. If you enter this as a feature wish in the BTS, I'll look into it. > Measuring memset from C gives me 0.0311secs. So element-setting must > be at > least 10% of Array.init. Also, the array_init function is surprisingly > fast, > presumably due to "f" not being inlined into Array.init but being > inlined > into array_init. That would confirm my intuition that the calls to f dominates the initialisation time. -- Damien ------------------- 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