New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Array.sort et Sort.array #2997
Comments
Comment author: administrator
Bon, il faudrait ecrire "generalement plus rapide".
Ca se discute... Avec Array.sort, on fait 25150766 comparaisons, alors En plus, dans le cas le pire Array.sort ne degenere pas en n^2. Evidemment, heap-sort ternaire ca a un peu d'overhead, mais je pense
La il y a une vraie question: est-ce qu'on veut prendre le risque d'utiliser
Est-ce que tu as vraiment recompile la librairie avec -unsafe ? Sur mon -- Damien |
Comment author: administrator Est-ce qu'on doit utiliser unsafe_* ou non ? |
Comment author: administrator Merci pour ces précisions. (Je n'avais jamais vu de heap-sort Pour répondre à ta question, j'avais bien recompilé la librairie en Mais encore une fois, ce n'est pas très important. Merci d'avoir -- |
Original bug ID: 584
Reporter: administrator
Status: closed
Resolution: not a bug
Priority: normal
Severity: minor
Category: ~DO NOT USE (was: OCaml general)
Bug description
Bonjour,
Juste une petite constatation qui me surprend ; mes excuses si ceci a
déjà été discuté.
Dans la documentation de caml, il est écrit que Sort.array est
obsolète et que Array.sort doit lui être préférée et est plus rapide.
Or le programme suivant :
======================================================================
let t = Array.init 1000000 (fun _ -> Random.int 1000000)
let _ = Array.sort/Sort.array compare t
compilé avec ocamlopt -unsafe, montre au contraire que Sort.array est
plus rapide (6.57 s) que Array.sort (8.49 s). Surprenant...
D'autre part, je note que dans le code de Array.sort, get et set sont
utilisées là où unsafe_get et unsafe_set pourraient l'être. De plus,
de façon surprenante, l'option -unsafe est sans effet sur les
performances (avec ou sans -unsafe on obtient 8.49 s).
Ne vous formalisez pas cependant, je n'ai nul besoin d'une fonction de
tri super-optimisée ; c'était juste une constatation faite en
passant...
Cordialement,
Jean-Christophe Filliatre (http://www.lri.fr/~filliatr)
The text was updated successfully, but these errors were encountered: