OVH Cloud OVH Cloud

cout d'un try (pas du catch)

2 réponses
Avatar
amerio
Bonjour,
Je m'interroge sur le cout de l'ajout du "try" (et pas sur le cout de la levée d'une
exception elle meme)
Pour préciser :
Sachant que la fonction "test" peut lever l'exception "toto" en théorie, mais qu'en
pratique *ca n'arrive jamais* :
est ce que :

try { test(); }catch(toto&) {}

est plus couteux que :

test();

Je repete : l'exception n'est JAMAIS levé (sinon pan dans la ...)
(c'est pour être "idiotproof" que je veux ajouter le try, pour voir si un codeur fais pas
n'importe koi derriere).
(si on vous demande pourquoi ca lance une exception qui ne doit jamais arriver ni etre
attrapé, vous dites que vous savez pas, comme moi)

2 réponses

Avatar
Loïc Joly
amerio wrote:

Bonjour,
Je m'interroge sur le cout de l'ajout du "try" (et pas sur le cout de la levée d'une
exception elle meme)


Dans http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2003/n1487.pdf te
trouveras un document sur le coût de plusieurs fonctionnalités du C++
(dont les exceptions) avec divers compilateurs.

--
Loïc

Avatar
kanze
"amerio" wrote in message
news:<Fadlb.68138$...

Je m'interroge sur le cout de l'ajout du "try" (et pas sur le cout de
la levée d'une exception elle meme)
Pour préciser :
Sachant que la fonction "test" peut lever l'exception "toto" en
théorie, mais qu'en pratique *ca n'arrive jamais* :
est ce que :

try { test(); }catch(toto&) {}

est plus couteux que :

test();

Je repete : l'exception n'est JAMAIS levé (sinon pan dans la ...)

(c'est pour être "idiotproof" que je veux ajouter le try, pour voir si
un codeur fais pas n'importe koi derriere). (si on vous demande
pourquoi ca lance une exception qui ne doit jamais arriver ni etre
attrapé, vous dites que vous savez pas, comme moi)


Ça dépend du compilateur. Il existe des compilateurs où le coût est
quasiment nul, au moins en théorie. Dans la pratique, sur mon Sparc, je
constate que le bloc de try ajoute entre 1,5 et 2,5 nanosécondes avec
g++ (3.3.1, -O3), et aux alentours de 6 nanosécondes avec Sun CC (5.1,
-fast). Or que je crois que les deux utilisent les algorithmes les plus
efficace connus.

--
James Kanze GABI Software mailto:
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16