Jeudi 26 juillet 2007
Pour du C++ plus rapide vous avez intérêt tout d'abord, absolument, il faut, vous devez, coder sans prendre en considération les problèmes d'optimisation puis après vous pourrez :
- Utiliser de préférence un int lorsque vous gérez des entiers.
- Utiliser des float lorsque des double ou long double ne sont pas nécessaire.
- Sauter dans les fichiers (utiliser ftell et fseek) au lieu de lire octet par octet.
- Lorsque vous divisez ou multipliez des entiers par des puissances de 2 utiliser k >>= (1 << n) et k <<=Et (1 << n) au lieu de * et / (mais attention au perte d'information et la fin du décalage).
- Lorsque vous avez des boucles dont vous connaissez le nombre d'itération utiliser while(i--) au lieu d'un for(int u = 0; u < i; u++) la comparaison à 0 est beaucoup plus rapide.
- Recodez les fonctions mathématique standard en ASM (si vous ne cherchez pas la portabilité) [La fonction racine carré codé en ASM est 900% plus rapide que celle de la fonction standard avec l'algorithme de Newton].
- Utiliser fastcall pour les fonctions qui seront souvent utilisées.
- Précalculer ce qui peut l'être.
- Utiliser les const quand il faut ou les #define.
- i++ estplus rapide que --i.
- Les multiplications sont plus rapide que les divisions.
- Utiliser a+=b au lieu de a=a+b.
- Lors de vos test mettez le code le moin problable dans le else (par exemple divisibiliter par 0).
