9
votes

Implications de performance d'utilisation d'espaces au lieu d'une onglets pour l'indentation

J'utilise actuellement des onglets Soft (c'est-à-dire des espaces (c'est-à-dire des espaces) pour enlever mon code de rubis, si je devais utiliser des onglets rigoureux, cela augmenterait-il la performance lorsque le code est interprété? Je suppose qu'il est plus rapide de lire un caractère d'onglet que d'analyser 4 caractères spatiaux (si négligeables).


0 commentaires

3 Réponses :


8
votes

L'impact de la performance est ε, c'est-à-dire un très petit nombre supérieur à zéro. Les espaces ne sont que lire et analysés une fois, le code Ruby est ensuite transformé en une forme intermédiaire.


3 commentaires

Absurdité. La phase lexing fait partie de l'analyse.


Absurdité. Les espaces sont criblés; Le résultat est numérisé; et le résultat de cela est analysé.


EJP, vous voulez vraiment regarder certains de ces mots. Ils ne veulent pas dire ce que vous pensez qu'ils veulent dire.



11
votes

Avez-vous une idée de toutes les phases impliquées dans l'interprétation de la source? Seule la toute première, une analyse lexicale, doit traiter avec des espaces blanche et, dans le cas de WhitSpace, "traite de" signifie "l'ignorer". Cette phase ne prend qu'une petite fraction du temps total, il est généralement fait en utilisant une expression régulière et à peu près une complexité linéaire. Construite qu'avec l'analyse, qui peut prendre des âges en comparaison. Et l'interprétation n'est qu'un peu viable, car ces deux phases (plus une troisième génération de bytecode, dans des implémentations utilisant ByTecode) prend beaucoup moins que l'exécution réelle pour les programmes non triviaux.

Ne vous inquiétez pas pour cela. Il n'y a pas de différence que quiconque ne remarquerait jamais. Honnêtement, je serais surpris si vous pouviez mesurer une différence en utilisant Time et un petit programme qui ne se rapproche d'aucun travail réel.


0 commentaires

9
votes

À peu près sûr que quel que soit l'impact négligeable, l'analyseur peut avoir entre lire un octet pour une indentation à onglets et quatre octets pour les espaces seront compensés par la personne suivante qui doit lire votre code et réparer votre onglets / espacés.

Veuillez utiliser des espaces. Signé, le prochain gars à lire votre code.


0 commentaires