|
From: | Valéry Raulet |
Subject: | Re: [certi-devel] List is dead |
Date: | Tue, 28 Jan 2003 11:49:14 +0100 |
User-agent: | Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3a) Gecko/20021212 |
Benoît Bréholée wrote:
Apparemment, lorsqu'une méthode est déclarée virtuelle, il y a systématiquement une redirection. Il va rechercher dans une table, la bonne méthode à appeler. Il semblerait que la profondeur ne ralenti pas. Mais cela reste à vérifier.Valéry Raulet <address@hidden> writes:class Base { public: virtual ~Base(void) {} virtual void f(int x) = 0; virtual void display(void) = 0; }; class BaseImp : public Base, public list<int> { public: BaseImp(void); ~BaseImp(void); void f(int x); void display(void); };L'inconvénient c'est les méthodes virtuelles, je ne sais pas si le ralentissement habituel de ces méthodes dépend uniquement du fait qu'elles soient virtuelles, ou si ça dépend de la recherche des méthodes. Si ça dépend de la profondeur, tout doit pouvoir se placer dans la classe de base avec un attribut liste. Si ça dépend juste du caractère virtuel ou non, cette solution là ne doit pas ralentir plus qu'actuellement, puisque dans la norme les méthodes sont déclarées virtuelles.
J'ai placé deux patchs dans savannah qui permet de modifier les classes comme ci-dessus. Reste à savoir si cela est réellement couteux en temps.
Mais je ne pense pas que s'il y a une perte de temps, cela soit catastrophique (c'est juste un pointeur supplémentaire).
_______________________________________________ certi-devel mailing list address@hidden http://mail.nongnu.org/mailman/listinfo/certi-devel
-- Valéry Raulet Ecole Nationale d'Ingénieurs de Brest Laboratoire d'Ingénierie Informatique Parvis Blaise Pascal Technopole Brest-Iroise Tél : (033) 298 05 66 75 29200 Brest - France Fax : (033) 298 05 66 29
[Prev in Thread] | Current Thread | [Next in Thread] |