Vincent Richard wrote
in message news:<3f56452c$0$27055$...Je crois savoir qu'à chaque fois que l'on fait un appel à 'f()', une
"recherche" est effectuée pour appeler la fonction correcte selon
l'objet sur lequel on l'appelle. Cette recherche a un coût.
Un coût très faible, quand même. Il y a des cas où ça importe, mais ils
ne sont pas si fréquent que ça.
Vincent Richard <chere-loque.MARRE-DE-LA-PUB@wanadoo.fr.invalid> wrote
in message news:<3f56452c$0$27055$626a54ce@news.free.fr>...
Je crois savoir qu'à chaque fois que l'on fait un appel à 'f()', une
"recherche" est effectuée pour appeler la fonction correcte selon
l'objet sur lequel on l'appelle. Cette recherche a un coût.
Un coût très faible, quand même. Il y a des cas où ça importe, mais ils
ne sont pas si fréquent que ça.
Vincent Richard wrote
in message news:<3f56452c$0$27055$...Je crois savoir qu'à chaque fois que l'on fait un appel à 'f()', une
"recherche" est effectuée pour appeler la fonction correcte selon
l'objet sur lequel on l'appelle. Cette recherche a un coût.
Un coût très faible, quand même. Il y a des cas où ça importe, mais ils
ne sont pas si fréquent que ça.
un exemple de temps d'éxécution virtual / non-virtual dans une boucle de
10 millions d'itérations (source attaché), donne :
non-virtual. Time=0.05
virtual. Time=0.15
ratio : 3
avec g++-3.3.2 (-O3 ), sur Pentium 4.
un exemple de temps d'éxécution virtual / non-virtual dans une boucle de
10 millions d'itérations (source attaché), donne :
non-virtual. Time=0.05
virtual. Time=0.15
ratio : 3
avec g++-3.3.2 (-O3 ), sur Pentium 4.
un exemple de temps d'éxécution virtual / non-virtual dans une boucle de
10 millions d'itérations (source attaché), donne :
non-virtual. Time=0.05
virtual. Time=0.15
ratio : 3
avec g++-3.3.2 (-O3 ), sur Pentium 4.
le Jeudi 4 Septembre 2003 10:11, écrivit :Vincent Richard wrote
in message news:<3f56452c$0$27055$...Je crois savoir qu'à chaque fois que l'on fait un appel à 'f()',
une "recherche" est effectuée pour appeler la fonction correcte
selon l'objet sur lequel on l'appelle. Cette recherche a un coût.
Un coût très faible, quand même. Il y a des cas où ça importe, mais
ils ne sont pas si fréquent que ça.
je sais pas exactement ce que va faire Richard, mais ça pourrait
ressembler à un prog de calcul, et en tout cas, pour des progs de
calcul, le coût du virtual importe énormément si l'appel a lieu au
sein de l'itération de la boucle la plus interne. ('inner-most loop'
..)
Aucune lib de calcul ne mettrait de fonctions virtuelles qui pourrait
se retrouver dans cette situation..
un exemple de temps d'éxécution virtual / non-virtual dans une boucle
de 10 millions d'itérations (source attaché), donne :
non-virtual. Time=0.05
virtual. Time=0.15
ratio : 3
avec g++-3.3.2 (-O3 ), sur Pentium 4.
on peut s'y attendre : sans virtual, l'operator() est inliné et
l'itération s'éxécute 3 fois plus vite.
le Jeudi 4 Septembre 2003 10:11, kanze@gabi-soft.fr écrivit :
Vincent Richard <chere-loque.MARRE-DE-LA-PUB@wanadoo.fr.invalid> wrote
in message news:<3f56452c$0$27055$626a54ce@news.free.fr>...
Je crois savoir qu'à chaque fois que l'on fait un appel à 'f()',
une "recherche" est effectuée pour appeler la fonction correcte
selon l'objet sur lequel on l'appelle. Cette recherche a un coût.
Un coût très faible, quand même. Il y a des cas où ça importe, mais
ils ne sont pas si fréquent que ça.
je sais pas exactement ce que va faire Richard, mais ça pourrait
ressembler à un prog de calcul, et en tout cas, pour des progs de
calcul, le coût du virtual importe énormément si l'appel a lieu au
sein de l'itération de la boucle la plus interne. ('inner-most loop'
..)
Aucune lib de calcul ne mettrait de fonctions virtuelles qui pourrait
se retrouver dans cette situation..
un exemple de temps d'éxécution virtual / non-virtual dans une boucle
de 10 millions d'itérations (source attaché), donne :
non-virtual. Time=0.05
virtual. Time=0.15
ratio : 3
avec g++-3.3.2 (-O3 ), sur Pentium 4.
on peut s'y attendre : sans virtual, l'operator() est inliné et
l'itération s'éxécute 3 fois plus vite.
le Jeudi 4 Septembre 2003 10:11, écrivit :Vincent Richard wrote
in message news:<3f56452c$0$27055$...Je crois savoir qu'à chaque fois que l'on fait un appel à 'f()',
une "recherche" est effectuée pour appeler la fonction correcte
selon l'objet sur lequel on l'appelle. Cette recherche a un coût.
Un coût très faible, quand même. Il y a des cas où ça importe, mais
ils ne sont pas si fréquent que ça.
je sais pas exactement ce que va faire Richard, mais ça pourrait
ressembler à un prog de calcul, et en tout cas, pour des progs de
calcul, le coût du virtual importe énormément si l'appel a lieu au
sein de l'itération de la boucle la plus interne. ('inner-most loop'
..)
Aucune lib de calcul ne mettrait de fonctions virtuelles qui pourrait
se retrouver dans cette situation..
un exemple de temps d'éxécution virtual / non-virtual dans une boucle
de 10 millions d'itérations (source attaché), donne :
non-virtual. Time=0.05
virtual. Time=0.15
ratio : 3
avec g++-3.3.2 (-O3 ), sur Pentium 4.
on peut s'y attendre : sans virtual, l'operator() est inliné et
l'itération s'éxécute 3 fois plus vite.
Laurent Deniau writes:
| Negligeable. C'est du meme ordre de rapidite qu'un appel de fonction
| standard depuis l'introduction des chunks (orthographe
^
s/c/t/
[...]
| Pour plus d'info, lire Design and Development of C++ de BS.
^^^^^^^^^^^
s/Development/Evolution/
Laurent Deniau <Laurent.Deniau@cern.ch> writes:
| Negligeable. C'est du meme ordre de rapidite qu'un appel de fonction
| standard depuis l'introduction des chunks (orthographe
^
s/c/t/
[...]
| Pour plus d'info, lire Design and Development of C++ de BS.
^^^^^^^^^^^
s/Development/Evolution/
Laurent Deniau writes:
| Negligeable. C'est du meme ordre de rapidite qu'un appel de fonction
| standard depuis l'introduction des chunks (orthographe
^
s/c/t/
[...]
| Pour plus d'info, lire Design and Development of C++ de BS.
^^^^^^^^^^^
s/Development/Evolution/
Samuel Krempp wrote in message
news:<3f571981$0$26411$...le Jeudi 4 Septembre 2003 10:11, écrivit :Un coût très faible, quand même. Il y a des cas où ça importe, mais
ils ne sont pas si fréquent que ça.
je sais pas exactement ce que va faire Richard, mais ça pourrait
ressembler à un prog de calcul, et en tout cas, pour des progs de
calcul, le coût du virtual importe énormément si l'appel a lieu au
sein de l'itération de la boucle la plus interne. ('inner-most loop'
..)
C'est ce que j'ai dit, non ? Il y a des cas où ça importe. Ils ne sont
mettre la fonction non-virtuelle inline, ça expose des possibilités
supplémentaire d'optimisation qui pourrait être non-négligible. Je sais
Sur ma machine de travail, la différence en coût de l'appel d'une
fonction vide, non-inline, et de l'ordre de 10. C-à-d que ça peut bien
faire une différence. Si la fonction appelée est courte, évidemment, et
si le compilateur n'arrive pas à résoudre le type statiquement. En
revanche, le coût absolu est extrèmement faible dans les deux cas. C-à-d
que dès qu'il y a du traitement dans la fonction, la différence devient
negligible : qu'importe qu'une partie du traitement va 10 fois plus
vite, si cette partie ne représente 1% du temps total.
Samuel Krempp <krempp@crans.trucs.en.trop.org> wrote in message
news:<3f571981$0$26411$626a54ce@news.free.fr>...
le Jeudi 4 Septembre 2003 10:11, kanze@gabi-soft.fr écrivit :
Un coût très faible, quand même. Il y a des cas où ça importe, mais
ils ne sont pas si fréquent que ça.
je sais pas exactement ce que va faire Richard, mais ça pourrait
ressembler à un prog de calcul, et en tout cas, pour des progs de
calcul, le coût du virtual importe énormément si l'appel a lieu au
sein de l'itération de la boucle la plus interne. ('inner-most loop'
..)
C'est ce que j'ai dit, non ? Il y a des cas où ça importe. Ils ne sont
mettre la fonction non-virtuelle inline, ça expose des possibilités
supplémentaire d'optimisation qui pourrait être non-négligible. Je sais
Sur ma machine de travail, la différence en coût de l'appel d'une
fonction vide, non-inline, et de l'ordre de 10. C-à-d que ça peut bien
faire une différence. Si la fonction appelée est courte, évidemment, et
si le compilateur n'arrive pas à résoudre le type statiquement. En
revanche, le coût absolu est extrèmement faible dans les deux cas. C-à-d
que dès qu'il y a du traitement dans la fonction, la différence devient
negligible : qu'importe qu'une partie du traitement va 10 fois plus
vite, si cette partie ne représente 1% du temps total.
Samuel Krempp wrote in message
news:<3f571981$0$26411$...le Jeudi 4 Septembre 2003 10:11, écrivit :Un coût très faible, quand même. Il y a des cas où ça importe, mais
ils ne sont pas si fréquent que ça.
je sais pas exactement ce que va faire Richard, mais ça pourrait
ressembler à un prog de calcul, et en tout cas, pour des progs de
calcul, le coût du virtual importe énormément si l'appel a lieu au
sein de l'itération de la boucle la plus interne. ('inner-most loop'
..)
C'est ce que j'ai dit, non ? Il y a des cas où ça importe. Ils ne sont
mettre la fonction non-virtuelle inline, ça expose des possibilités
supplémentaire d'optimisation qui pourrait être non-négligible. Je sais
Sur ma machine de travail, la différence en coût de l'appel d'une
fonction vide, non-inline, et de l'ordre de 10. C-à-d que ça peut bien
faire une différence. Si la fonction appelée est courte, évidemment, et
si le compilateur n'arrive pas à résoudre le type statiquement. En
revanche, le coût absolu est extrèmement faible dans les deux cas. C-à-d
que dès qu'il y a du traitement dans la fonction, la différence devient
negligible : qu'importe qu'une partie du traitement va 10 fois plus
vite, si cette partie ne représente 1% du temps total.
le Jeudi 4 Septembre 2003 17:16, écrivit :Samuel Krempp wrote in message
news:<3f571981$0$26411$...le Jeudi 4 Septembre 2003 10:11, écrivit :Un coût très faible, quand même. Il y a des cas où ça importe, mais
ils ne sont pas si fréquent que ça.
je sais pas exactement ce que va faire Richard, mais ça pourrait
ressembler à un prog de calcul, et en tout cas, pour des progs de
calcul, le coût du virtual importe énormément si l'appel a lieu au
sein de l'itération de la boucle la plus interne. ('inner-most loop'
..)
C'est ce que j'ai dit, non ? Il y a des cas où ça importe. Ils ne sont
euh, oui. je donne juste un exemple de "cas où ça importe",
je ne contredis pas que ça a un "un coût très faible" (dans l'absolu).
Par contre, ça contredit le "coût négligeable" du message de Laurent,
j'aurai aussi pu mettre mon msg en réponse à celui-là.
le Jeudi 4 Septembre 2003 17:16, kanze@gabi-soft.fr écrivit :
Samuel Krempp <krempp@crans.trucs.en.trop.org> wrote in message
news:<3f571981$0$26411$626a54ce@news.free.fr>...
le Jeudi 4 Septembre 2003 10:11, kanze@gabi-soft.fr écrivit :
Un coût très faible, quand même. Il y a des cas où ça importe, mais
ils ne sont pas si fréquent que ça.
je sais pas exactement ce que va faire Richard, mais ça pourrait
ressembler à un prog de calcul, et en tout cas, pour des progs de
calcul, le coût du virtual importe énormément si l'appel a lieu au
sein de l'itération de la boucle la plus interne. ('inner-most loop'
..)
C'est ce que j'ai dit, non ? Il y a des cas où ça importe. Ils ne sont
euh, oui. je donne juste un exemple de "cas où ça importe",
je ne contredis pas que ça a un "un coût très faible" (dans l'absolu).
Par contre, ça contredit le "coût négligeable" du message de Laurent,
j'aurai aussi pu mettre mon msg en réponse à celui-là.
le Jeudi 4 Septembre 2003 17:16, écrivit :Samuel Krempp wrote in message
news:<3f571981$0$26411$...le Jeudi 4 Septembre 2003 10:11, écrivit :Un coût très faible, quand même. Il y a des cas où ça importe, mais
ils ne sont pas si fréquent que ça.
je sais pas exactement ce que va faire Richard, mais ça pourrait
ressembler à un prog de calcul, et en tout cas, pour des progs de
calcul, le coût du virtual importe énormément si l'appel a lieu au
sein de l'itération de la boucle la plus interne. ('inner-most loop'
..)
C'est ce que j'ai dit, non ? Il y a des cas où ça importe. Ils ne sont
euh, oui. je donne juste un exemple de "cas où ça importe",
je ne contredis pas que ça a un "un coût très faible" (dans l'absolu).
Par contre, ça contredit le "coût négligeable" du message de Laurent,
j'aurai aussi pu mettre mon msg en réponse à celui-là.
Par contre, ça contredit le "coût négligeable" du message de Laurent,
j'aurai aussi pu mettre mon msg en réponse à celui-là.
Je parlais par rapport a un appel effectif d'une fonction (attention aux
Par contre, ça contredit le "coût négligeable" du message de Laurent,
j'aurai aussi pu mettre mon msg en réponse à celui-là.
Je parlais par rapport a un appel effectif d'une fonction (attention aux
Par contre, ça contredit le "coût négligeable" du message de Laurent,
j'aurai aussi pu mettre mon msg en réponse à celui-là.
Je parlais par rapport a un appel effectif d'une fonction (attention aux