En fait le "couche objet", comme tu l'appelle est utilisé pour créer des GObject. Dans certains cas tu peux préciser dans le langage Vala de ne pas l'utiliser comme, par exemple, dans le cas du test BinaryTree.
Pour obtenir les meilleures performances du code généré, j'ai du effectuer un choix parmi les différents types de classes :
- héritant de GObject (publiques et enregistrées dans GObject)
public class MyClass : Object {
...
}
- implémentant GObject par le compilateur (publiques)
public class MyClass {
...
}
- implémentant GObject partiellement par le compilateur
[Compact]
public class MyClass {
...
}
- passant les paramètres par valeur
public struct MyClass {
...
}
Tu peux t'amuser avec les différents façon et tu observera une différence réelle dans ce test. Le Vala a ainsi l'avantage de te laisser choisir l'implémentation en C par construction ce que ne permettent pas d'autres langages.
Il faut aussi te méfier avec des tests comme ceux-ci car les performances lors de la construction dépendent de la librairie GObject donc de la façon de la compiler. Pour ce benchmark je me suis restreint à la distribution par défaut dans Debian Squeeze.
[^] # Re: Performances
Posté par Clément David (site web personnel) . En réponse à la dépêche Sortie de Vala 0.7.6. Évalué à 3.
Pour obtenir les meilleures performances du code généré, j'ai du effectuer un choix parmi les différents types de classes :
- héritant de GObject (publiques et enregistrées dans GObject)
public class MyClass : Object {
...
}
- implémentant GObject par le compilateur (publiques)
public class MyClass {
...
}
- implémentant GObject partiellement par le compilateur
[Compact]
public class MyClass {
...
}
- passant les paramètres par valeur
public struct MyClass {
...
}
Tu peux t'amuser avec les différents façon et tu observera une différence réelle dans ce test. Le Vala a ainsi l'avantage de te laisser choisir l'implémentation en C par construction ce que ne permettent pas d'autres langages.
Il faut aussi te méfier avec des tests comme ceux-ci car les performances lors de la construction dépendent de la librairie GObject donc de la façon de la compiler. Pour ce benchmark je me suis restreint à la distribution par défaut dans Debian Squeeze.