Pour votre question directe: Comprendre l'ABI vous aidera dans une certaine mesure. Mais l'ABI ne vous dira pas ce qui est efficace dans une application C++ particulière en tant que telle - par exemple, l'effet de l'utilisation de l'inline - qui peut être bénéfique et préjudiciable. De même, le choix d'utiliser vector
par rapport au tableau de style C peut être bénéfique dans certains cas, mais dans d'autres cas, cela fait si peu de différence que cela ne vaut pas la peine de passer de l'un à l'autre.
Un logiciel à faible latence consiste beaucoup plus à comprendre ce que le compilateur fait EN GÉNÉRAL avec un code particulier qu'à savoir exactement ce que le paragraphe 13.6.2 de l'ABI dit sur la façon dont la VTABLE est organisée - à moins bien sûr que le code particulier que vous compilez est directement affecté par la mise en page VTABLE - la plupart du temps ce n'est pas un problème (au-delà de la compréhension qu'une fonction virtuelle est un appel indirect, qui peut être un peu plus lent que l'appel direct correspondant Vous pouvez vous soucier de choses comme "Combien de registres sont utilisés pour transmettre des arguments", mais sachant si le compilateur utilise R0, R1, R2 ou R13, R14 et bien plus que la version inline de la fonction. R15 comme les trois re gisters pour passer des arguments est beaucoup moins important. Et surtout, peu importe combien vous PENSEZ comprendre ce que fait le compilateur, en regardant la sortie de l'assembleur, en exécutant le code à travers un profileur, etc., vous en apprendrez BEAUCOUP plus que de lire la spécification ABI. Rappelez-vous que dans le code typique, 90% du temps est passé dans 10% du code. La fixation de la "lenteur" d'une fonction qui utilise 0,001% du temps d'exécution total est probablement un effort inutile.
duplication possible de [Que pourrait C/C++ "perdre" si elles ont défini un ABI standard?] (Http://stackoverflow.com/questions/2083060/what-could-cc-lose-if-they-defined- a-standard-abi) – duDE
Il existe * un * standard C++, il y a * beaucoup * d'ABI et d'architectures de processeurs. Évitez de faire des comparaisons. –
@HansPassant Tout le point de ma question est de faire une comparaison ?! Quel est le but de l'ABI, comment est-ce différent? – user997112