Mailing list for all users of the OCaml language and system.
 help / color / mirror / Atom feed
From: Jon Harrop <jon@jdh30.plus.com>
To: caml-list@yquem.inria.fr
Subject: Re: [Caml-list] Memory allocation nano-benchmark.
Date: Wed, 16 Feb 2005 09:54:13 +0000	[thread overview]
Message-ID: <200502160954.14157.jon@jdh30.plus.com> (raw)
In-Reply-To: <1108541998.669.22.camel@localhost>

On Wednesday 16 February 2005 08:19, Ville-Pertti Keinonen wrote:
> On Tue, 2005-02-15 at 20:51 +0000, Jon Harrop wrote:
> > Indeed, I'm in the "remove -unsafe" camp. Even if OCaml only hoisted
> > bounds checks in the simplest of cases, I think there would be a strong
> > case for removing this option.
>
> As far as I can tell OCaml *never* eliminates or hoists bounds checks
> (or any other repetitive operation), even in the simplest of cases.

In most cases, I'm happy with that as the programmer can hoist invariants 
manually. As Xavier has said before, ocamlopt is designed to compile well- 
written code. :-)

In the case of bounds checking though, only the compiler can do the hoisting.

Still, the last time I wrote array-based code it was to demonstrate how much 
faster tree-based code is. ;-)

> It does explicitly use unsafe operations in the standard library, though.

I was going to say that this is all the more reason to have a full complement 
of map/iter/folds in Array and String. Actually, that's not really true as 
the cost of polymorphism in most of these functions (except String.iter) will 
dwarf the advantage of removing bounds checking.

> ocamlopt doesn't really perform a lot of optimizations.  The most
> significant ones (inlining, constant folding/value propagation, direct
> calls) appear to be done in a single pass (asmcomp/closure.ml).

Yes, the performance is astonishingly good considering how elegant the 
compiler is. I think it relies entirely on the CPU to do dynamic instruction 
rescheduling for some CPUs (not ARM, of course ;-).

-- 
Dr Jon D Harrop, Flying Frog Consultancy Ltd.


  reply	other threads:[~2005-02-16  9:52 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-02-10 15:15 Christian Szegedy
2005-02-10 14:47 ` [Caml-list] " Frédéric Gava
2005-02-10 15:19   ` skaller
2005-02-10 16:36     ` Frédéric Gava
2005-02-10 17:56       ` Frédéric Gava
2005-02-10 19:56         ` Christian Szegedy
2005-02-10 23:58           ` Frédéric Gava
2005-02-11  9:22           ` Frédéric Gava
2005-02-11 13:04             ` skaller
2005-02-11 13:33               ` skaller
2005-02-11 21:07               ` Oliver Bandel
2005-02-12  0:44                 ` skaller
2005-02-15 14:17                   ` Frédéric Gava
2005-02-15 19:19                     ` Christian Szegedy
2005-02-15 20:51                     ` Jon Harrop
2005-02-16  8:19                       ` Ville-Pertti Keinonen
2005-02-16  9:54                         ` Jon Harrop [this message]
2005-02-16 10:56                           ` Ville-Pertti Keinonen
2005-02-11  0:55       ` skaller
2005-02-10 14:56 ` Jon Harrop
2005-02-10 15:32   ` Ville-Pertti Keinonen
2005-02-10 14:59 ` John Prevost
2005-02-10 16:50   ` Marwan Burelle
2005-02-10 19:20     ` Christian Szegedy
2005-02-10 19:40       ` Jon Harrop
2005-02-11 11:26       ` Oliver Bandel
2005-02-12 13:42         ` Christian Szegedy
2005-02-11  1:04     ` skaller
2005-02-11 11:28       ` Oliver Bandel
2005-02-12  0:01         ` Guillaume
2005-02-12  0:36         ` skaller

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=200502160954.14157.jon@jdh30.plus.com \
    --to=jon@jdh30.plus.com \
    --cc=caml-list@yquem.inria.fr \
    /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