𝐏𝐨𝐮𝐫𝐪𝐮𝐨𝐢 𝐏𝐲𝐭𝐡𝐨𝐧 𝐞𝐬𝐭 𝐩𝐥𝐮𝐬 𝐥𝐞𝐧𝐭 𝐪𝐮𝐞 𝐉𝐚𝐯𝐚 ?

 

    Python et Java compilent tous deux les fichiers sources en bytecode. La différence réside dans la manière d'exécuter ce bytecode. Dans les deux langages, le bytecode est essentiellement une représentation binaire du code source textuel, et non un programme d'assemblage pouvant être exécuté sur une unité centrale. Vous avez un programme différent qui accepte le bytecode et l'exécute.

    Comment l'interprète-t-il ? Python possède un interpréteur, c'est-à-dire un programme qui conserve un "modèle du monde" d'un programme Python (quels modules sont importés, quelles variables existent, quels objets existent...), et qui exécute le programme en chargeant les bytecodes un par un et en exécutant chacun d'entre eux séparément. Cela signifie qu'une instruction telle que y = x + 1 est exécutée comme une séquence d'opérations telles que "charger la constante 1", "charger x", "ajouter les deux valeurs", "stocker le résultat dans y".

    Chacune de ces opérations est mise en œuvre par un appel de fonction qui fait quelque chose en C et qui lit et met souvent à jour les structures du dictionnaire. C'est lent, et c'est d'autant plus lent que les opérations sont petites. C'est pourquoi le code numérique en Python est lent - les opérations numériques en Python convertissent des instructions uniques en plusieurs appels de fonction, de sorte que dans ce type de code, Python peut être 100 fois plus lent que d'autres langages.

    Java compile le bytecode en code machine. Vous ne le voyez pas parce que cela se produit au moment de l'exécution (appelé JIT), mais cela se produit. Comme Java sait également que x dans y = x + 1 est un entier, il peut exécuter la ligne en utilisant une seule instruction du CPU.

    En outre, la JVM procède également à une optimisation adaptative. Elle conserve des statistiques sur les branchements conditionnels et recompile dynamiquement des portions de code chaque fois qu'elle détermine que certaines conditions de branchement se produisent plus souvent que d'autres. Le code recompilé est optimisé pour la condition de branchement la plus courante (c'est-à-dire qu'il ne saute pas à chaque fois qu'elle se produit), et seules les conditions les moins courantes entraînent une pénalité de performance.

---

Par: Abdessamad Touzani

Mes liens: https://linktr.ee/katskystudio_fr

Sur ma chaine youtube, je  publie des vidéos de la programmation python de A-Z et aussi pour la language de programmation Mojo et wordpress, Merci de nous suivre et de nous supporter😄💖

=> https://www.youtube.com/@katskystudio

 

Commentaires