caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Diego Olivier Fernandez Pons <Diego-Olivier.FERNANDEZ-PONS@cicrp.jussieu.fr>
To: Luc Maranget <luc.maranget@inria.fr>
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] Three way comparaisons
Date: Thu, 8 Aug 2002 13:44:15 +0200 (DST)	[thread overview]
Message-ID: <Pine.A32.3.95.1020808132946.51718A-100000@ibm1.cicrp.jussieu.fr> (raw)
In-Reply-To: <200208071522.RAA0000006153@beaune.inria.fr>

    Bonjour,

> J'ai lu vite mais dans les deux cas le nombre d'appels a` compare me
> semble identique. Si les clefs sont compliquées (des chaînes par ex)
> c'est là l'essentiel.

On peut omettre dans un premier temps la nature de la clef

let rec member x = function
  | Empty -> false
  | Node (a, y, b) ->
	if x < y then member x a
        else if x > y then member x b
        else true

Il y a très approximativement 3/2 log n comparaisons par recherche
contre log n + 1 pour la version d'Andersson

Cela reste vrai si l'on mémorise auparavant le résultat de la
comparaison de clefs pour se ramener à une compairaison d'entiers

> Comme déjà dit c'est pas facile de relier un match ou même un if à un
> quelconque coût final. Ça va dépendre de l'allignement de l'addresse
> du code cible, de l'état des caches de la prédiction des sauts, voire
> de la phase de la lune...

Tout le monde se plaint de l'absence de prévisibilité des performances
des processeurs actuels. Matteo Frigo dans sa thèse conclut que la
seule solution reste en somme que le compilateur essaie différentes
possibilités et choisisse celle qui convient le mieux après test. 
Peut-être est-ce possible également en Caml (d'un autre côté Caml est
déjà très rapide alors quelques gains de performance ne sont pas une
priorité absolue il me semble). 

        Diego Olivier

-------------------
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


      reply	other threads:[~2002-08-08 11:47 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-08-07  5:02 [Caml-list] Regarding regular expressions John Skaller
2002-08-07  7:36 ` Jerome Vouillon
2002-08-07 12:23   ` Pixel
2002-08-07 14:41   ` [Caml-list] Three way comparaisons Diego Olivier Fernandez Pons
2002-08-07 15:22     ` Luc Maranget
2002-08-08 11:44       ` Diego Olivier Fernandez Pons [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=Pine.A32.3.95.1020808132946.51718A-100000@ibm1.cicrp.jussieu.fr \
    --to=diego-olivier.fernandez-pons@cicrp.jussieu.fr \
    --cc=caml-list@inria.fr \
    --cc=luc.maranget@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;
as well as URLs for NNTP newsgroup(s).