Faire fonctionner une machine virtuelle
Bonjour,
J'ai un exercice à faire en machine virtuelle mais je ne sais pas par où commencer.
Voici l'exercice :
Fast GET_FIELD
Le but est d’accélérer l'exécution d'un interpréteur. Une technique habituelle consiste à ré-écrire certaine instructions pour que celle-ci s'exécute plus rapidement. C'est ce que l'on se propose de faire avec l'instruction GET_FIELD.
L'instruction GET_FIELD est assez lente car celle-ci demande à chaque appel de trouver le objet classe correspondant à l'instance en sommet de pile, puis de chercher le champs par son nom dans la classe pour trouver l'offset qui permettra d'aller lire le champ de l'objet.
Pour accélérer les choses, l'idée est réserver une place supplémentaire dans chaque instruction GET_FIELD pour que si on demande le champ d'une instance d'une classe précédemment rencontré, l'index correspondant soit directement stocké dans l'instruction. En fait, c'est le même principe qu'un inlining cache, si on appel la même instruction avec des instances d'une même classe, l'index d'offset du champ n'a pas besoin d'être recalculé.
Quelqu'un saurait-il me guider un peu ?
Merci d'avance pour votre aide.
Optimisation de Get Field
tout d'abord merci pour vos reponses :) !
Ofet voila , j'ai un projet en java qu'on nous a donné , et l'exo dit de modifier dans le code de ce projet , il faut toucher a l'instruction get field pour pouvoir la rendre plus rapide en execution ,LA QUESTION est , d'ou commencer j'ai pas compri compri comment le projet a été fait !!
je peux publier le projet si quelqu'un pense pouvoir m'aider.
MERCII a tous
je vous explique avec plus de detail !!
tout d'abord je vous remercie pour vos réponses !!
On nous a donné un projet JAVA qui interprété un langage "small", le but est de modifier la methode GET_FIELD pour la rendre plus rapide , cependant je sais pas d'ou commencer !
je sais que c'est tres vaste , je peux partager le projet avec vous si vous voulez m'aider !!
Merci d'avance