J'ai donc un algorithme de traitement d'image sympa. Je l'ai écrit en OCaml. Il fonctionne bien. Je peux maintenant le compiler en tant que code C avec une telle commande ocamlc -output-obj -o foo.c foo.ml
(J'ai une situation où je ne suis pas autorisé à utiliser le compilateur OCaml pour mon programme pour mon arcetecture, je ne peux utiliser que gcc spécialement modifié, donc je compilerai ce programme avec quelque chose comme gcc -L/usr/lib/ocaml foo.c -lcamlrun -lm -lncurses
et Itll fonctionnera sur mon archétecture.)un programme écrit en C peut-il être plus rapide qu'un écrit en OCaml et traduit en C?
Je veux savoir dans un cas général un programme écrit en C peut-il être plus rapide que celui écrit en OCaml et traduit en C?
Je pense que vous voulez demander l'inverse: un programme écrit en C peut-il être plus rapide que celui écrit en OCaml et traduit en C? De toute évidence, un programme écrit en C peut être exécuté "aussi vite" que celui écrit en OCaml et traduit en C ... –
Il est également supposé ici que la capacité du codeur à écrire du bon code performant dans les deux langues est identique (Je suppose qu'un OCaml bien traduit/traduit en C peut être beaucoup plus rapide qu'un échantillon C mal écrit/mal conçu, et inversement la qualité de la traduction est un facteur inconnu; ce pourrait être vraiment excellent; ça pourrait être diabolique. –
-output-obj de OCaml ne produit pas de fichier C. Il produit un fichier objet pouvant être lié avec des fichiers C. Le code en cours d'exécution est toujours exactement le même bytecode (pour ocamlc) ou natif (pour ocamlopt) lorsque cette option est utilisée, et en fait, en l'absence de OCaml -> C traducteur de toute sorte, votre question est purement théorique à cette temps et pour l'avenir prévisible. –