certi-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [certi-devel] List is dead


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:

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.

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.

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






reply via email to

[Prev in Thread] Current Thread [Next in Thread]