caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Xavier Leroy <Xavier.Leroy@inria.fr>
To: moj@alfard.utu.fi (Matti Jokinen)
Cc: caml-list@inria.fr
Subject: Re: Preinitialized executables?
Date: Thu, 18 Sep 1997 10:41:33 +0200 (MET DST)	[thread overview]
Message-ID: <199709180841.KAA18220@pauillac.inria.fr> (raw)
In-Reply-To: <9709122357.AA05419@alfard.utu.fi> from Matti Jokinen at "Sep 13, 97 02:57:41 am"

> I have a program that needs to be initialied by building a large and
> fairly complicated data structure.  In Ocaml the fastest method I
> have found is to save the data structure in a file with output_value
> and then load it into the program with input_value, but even this way
> the overhead is considerable.  SML/NJ has a function named exportFn,
> which saves the program together with its state into an executable file:
> when the program is run from the file, control is transferred to a
> function given as a parameter to exportFn.  I wonder if something
> similar is possible in Ocaml.

It might be possible, but it would not be any faster than input_value.
The loading of a bytecode executable inside the bytecode interpreter
is, for the most part, performed by input_value.  Same thing for
SML/NJ, I believe.

As for ocamlopt, there is really no portable way to dump a running
program with its current state in an executable file.  Recent versions
of SML/NJ have abandoned this approach and explicitly load the data
from a file on startup, rather than let the kernel page them in on demand.

If loading time is really an issue, an alternative would be to load
parts of the data structure on demand, using e.g. the DBM library.

Regards,

- Xavier Leroy





      reply	other threads:[~1997-09-22  6:57 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1997-09-12 23:57 Matti Jokinen
1997-09-18  8:41 ` Xavier Leroy [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=199709180841.KAA18220@pauillac.inria.fr \
    --to=xavier.leroy@inria.fr \
    --cc=caml-list@inria.fr \
    --cc=moj@alfard.utu.fi \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).