Pour avoir un élément de comparaison valide, j'ai manuellement modifié le code C produit par ooc pour enlever toute référence au garbage collector, c'est a dire supprimer les appels a GC_init, remplacer les appels a GC_malloc() par malloc(), et ajouter free().
Et comme on pouvait s'y attendre.... ooc est quand meme plus rapide que C++.
Je suppose qu'on peut en déduire qu'ooc implémente les classes de manière plus légère que le C++, mais je vous laisse vous faire votre propre conclusion.
Résultats:
tsubaka ooc_tmp # time ../../withgc/newbench_cxx_O1
real 0m7.903s
user 0m7.829s
sys 0m0.008s
tsubaka ooc_tmp # time ./newbench_O1_nogc
real 0m6.427s
user 0m6.309s
sys 0m0.008s
tsubaka ooc_tmp # time ../../withgc/newbench_cxx_O2
real 0m6.847s
user 0m6.737s
sys 0m0.004s
tsubaka ooc_tmp # time ./newbench_O2_nogc
[^] # Re: Rapidité du C ... et ramasse-miettes ?
Posté par Amos Wenger . En réponse à la dépêche Le language de programmation ooc sorti en version 0.2. Évalué à 2.
Et comme on pouvait s'y attendre.... ooc est quand meme plus rapide que C++.
Je suppose qu'on peut en déduire qu'ooc implémente les classes de manière plus légère que le C++, mais je vous laisse vous faire votre propre conclusion.
Résultats:
tsubaka ooc_tmp # time ../../withgc/newbench_cxx_O1
real 0m7.903s
user 0m7.829s
sys 0m0.008s
tsubaka ooc_tmp # time ./newbench_O1_nogc
real 0m6.427s
user 0m6.309s
sys 0m0.008s
tsubaka ooc_tmp # time ../../withgc/newbench_cxx_O2
real 0m6.847s
user 0m6.737s
sys 0m0.004s
tsubaka ooc_tmp # time ./newbench_O2_nogc
real 0m5.976s
user 0m5.855s
sys 0m0.002s
Code C généré par ooc avant modification (utilise le GC): http://ooc.pastebin.com/m1a579233
Code C généré par ooc après modification (utilise malloc/free): http://ooc.pastebin.com/m48d21e05