Question

Je voudrais sélectionner les optimisations du compilateur pour générer l'application la plus rapide possible.

Laquelle des paramètres suivants dois-je mettre à true?

  • l'élimination du magasin mort
  • Éliminez les expressions en double dans les blocs et les fonctions de base
  • Activer variable d'induction de boucle et la réduction de la force
  • Activer la programmation instruction Pentium
  • Développer les fonctions intrinsèques communes
  • Optimize sauts
  • Utiliser des variables de registre

Il y a aussi l'option « Générer le plus rapide possible du code. », Que je évidemment la valeur true. Cependant, quand je mis à true, toutes les options ci-dessus sont encore fixés à faux.

Je voudrais donc savoir si l'une des options ci-dessus permettra d'accélérer l'application si je les mets à vrai?

Était-ce utile?

La solution

  

Je voudrais donc savoir si l'une des options ci-dessus permettra d'accélérer l'application si je les mets à vrai?

Je sais que certains vont me haïr pour cela, mais personne ici ne peux vous répondre honnêtement . Vous devez essayer votre programme avec et sans eux, et profil chaque génération et de voir quels sont les résultats. Devinez-travail ne trouve personne nulle part.

Compilateurs font déjà des tonnes (!) D'une grande optimisation, avec ou sans votre permission. Votre meilleur pari est d'écrire votre code dans une affaire propre et organisée, et l'inquiétude au sujet de la maintenabilité et l'extensibilité. Comme je tiens à dire:. Code de maintenant, d'optimiser plus tard

Autres conseils

Ne pas microgérer vers le bas à l'optimisation individuelle. écrivains compilateur sont des gens très intelligents - il suffit de les mettre tous à moins que vous voyez un besoin spécifique de ne pas. Votre temps est mieux dépensé en optimisant votre code (améliorer la complexité algorithmique de vos fonctions, etc.) plutôt que de jongler avec les options du compilateur.

Mon autre conseil, utilisez un autre compilateur. Intel a une grande réputation en tant que compilateur d'optimisation. VC et GCC sont bien sûr aussi de grands choix.

Vous pouvez regarder le code généré avec différentes options compilées pour voir qui est le plus rapide, mais je comprends aujourd'hui beaucoup de gens n'ont pas d'expérience faire.

Par conséquent, il serait utile de profiler l'application. S'il y a une partie évidente nécessitant vitesse, ajouter du code à exécuter mille ou dix millions de fois et le temps à l'aide utime() si elle est disponible. La boucle devrait fonctionner assez longtemps que d'autres processus en cours d'exécution par intermittence n'affectent pas les résultats sur dix à vingt secondes est une gamme de référence populaire. Ou exécuter plusieurs essais de synchronisation. Compiler différents cas de test et de l'exécuter pour voir ce qui fonctionne le mieux.

Passer une heure ou deux à jouer avec les options d'optimisation révélera rapidement que la plupart ont un effet mineur. Cependant, même le temps passé à réfléchir à l'essence de l'algorithme et de petits changements (suppression du code est particulièrement efficace) peuvent souvent largement améliorer le temps d'exécution.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top