En fait on est vraiment sur des micro-benchs. Dans BinaryTrees on test *uniquement* l'allocation et la désallocation mémoire. Et effectivement, sur celui-ci, lorsqu'on est dépendant de libgobject, les performances sont moins bonnes car libgobject est compilé avec '-O2 -g' et je ne m'amuse pas à recompiler libgobject ni libc ni mono pour les benchs.
Il y a un rajout de code et de temps d'exécution mais dans une application réelle, tu ne fait pas qu'allouer ou désallouer des objets, non ? Ainsi quand on fait une somme sur l'ensemble des tests implémentés, le Vala s'approche du C.
Concernant le fait de rajouter une couche objet plus maligne, il faut bien différencier deux choses :
- une implémentation à tendance statique, style C++
- une implémentation à tendance dynamique, style Objective-C ; Java ; .NET ; GObject
Donc en soit on ne peut pas vraiment comparer C++ et C/GObject car le fonctionnement est différent. Personnellement, j'ai voulu comparer l'impact d'une machine virtuelle en conservant une environnement haut-niveau équivalent (Vala vs C#), le C++ a été ajouté par la suite.
[^] # Re: Performancesvv
Posté par Clément David (site web personnel) . En réponse à la dépêche Sortie de Vala 0.7.6. Évalué à 1.
Il y a un rajout de code et de temps d'exécution mais dans une application réelle, tu ne fait pas qu'allouer ou désallouer des objets, non ? Ainsi quand on fait une somme sur l'ensemble des tests implémentés, le Vala s'approche du C.
Concernant le fait de rajouter une couche objet plus maligne, il faut bien différencier deux choses :
- une implémentation à tendance statique, style C++
- une implémentation à tendance dynamique, style Objective-C ; Java ; .NET ; GObject
Donc en soit on ne peut pas vraiment comparer C++ et C/GObject car le fonctionnement est différent. Personnellement, j'ai voulu comparer l'impact d'une machine virtuelle en conservant une environnement haut-niveau équivalent (Vala vs C#), le C++ a été ajouté par la suite.