J'ai joué avec un décorateur de synchronisation pour mon application pylônes afin de fournir des informations sur le timing de vol pour des fonctions spécifiques. Je l'ai fait en créant un décorateur & en le reliant simplement à n'importe quelle fonction dans le contrôleur que je veux chronométré.Combien de frais généraux les décorateurs ajoutent-ils aux appels de fonction Python
Il a été souligné cependant que les décorateurs pourraient ajouter une bonne quantité de frais généraux à l'appel, et qu'ils courent 2-3 fois plus lentement qu'une fonction non décorée. Premièrement, je m'attendrais à ce que l'exécution d'une fonction décorée prenne un coup plus long que celui d'une fonction non décorée, mais je m'attendrais à ce que le temps système soit dans les millièmes de secondes négligeable par rapport à un appel d'insertion SQL. Le décorateur lui-même fait de simples calculs de synchronisation simples en utilisant time.time() & une agrégation très simple.
Est-ce que les décorateurs ajoutent des frais généraux importants à un système? Je ne trouve rien pour soutenir ça.
Les frais généraux de la décoration elle-même est mesurable, mais nulle part près de 2-3x. Cela ne prend pas en compte le comportement de décoration, qui peut prendre beaucoup de temps en fonction de ce que vous faites (mises à jour de la base de données, signaux de rebond de la lune, etc.). – PaulMcG
+1 pour renvoyer des signaux hors de la lune –
De même, mais en réservant +2 pour un commentaire futur: "synchrone moon-signal-bouncing" – Profane