allocation: 16 ms, 768 μs, and 5 hnsecs
random: 11 ms, 765 μs, and 4 hnsecs
result: 46654920000
scalar products: 5 secs, 358 ms, 999 μs, and 7 hnsecs
CPP:
allocation: 3 ms
random generation: 8 ms
result: 29248300000
time: 3489 ms
le programme cpp est légèrement plus rapide toutefois le code est stricto sensu le code cpp ce qui introduit un biais car le code D fournit :
réalloue à chaque tour de bloc la taille du tableau!!
Le tableau pourrait être statique afin de pouvoir utiliser les instructions SSE4
l'approche fonctionnelle avec notamment map aiderait sensiblement les performances
N devrait être immutable
size_type devrait être size_t pour supporter 32 et 64 bits
les param de scalar_product :
changer const ref en in
mettre la fonction comme pure
et j'en passe
Un même code peut être transcrit presque litterralement dans plusieurs langage cependant il y a des subtilités qui vont produire des différences significatives
[^] # Re: dommage
Posté par Jonathan MERCIER . En réponse au journal The Future of Functional Programming Languages. Évalué à 1. Dernière modification le 23 octobre 2012 à 01:24.
avec les options d'optimisations:
D:
CPP:
le programme cpp est légèrement plus rapide toutefois le code est stricto sensu le code cpp ce qui introduit un biais car le code D fournit :
et j'en passe
Un même code peut être transcrit presque litterralement dans plusieurs langage cependant il y a des subtilités qui vont produire des différences significatives