A layered JavaScript virtual machine supporting dynamic instrumentation

2013 
L’observation de l’execution d’applications JavaScript est habituellement realisee en instrumentant une machine virtuelle (MV) industrielle ou en effectuant une traduction source-a-source ad hoc et complexe. Ce memoire presente une alternative basee sur la superposition de machines virtuelles. Notre approche consiste a faire une traduction source-a-source d’un programme pendant son execution pour exposer ses operations de bas niveau au travers d’un modele objet flexible. Ces operations de bas niveau peuvent ensuite etre redefinies pendant l’execution pour pouvoir en faire l’observation. Pour limiter la penalite en performance introduite, notre approche exploite les operations rapides originales de la MV sous-jacente, lorsque cela est possible, et applique les techniques de compilation a-la-volee dans la MV superposee. Notre implementation, Photon, est en moyenne 19% plus rapide qu’un interprete moderne, et entre 19× et 56× plus lente en moyenne que les compilateurs a-la-volee utilises dans les navigateurs web populaires. Ce memoire montre donc que la superposition de machines virtuelles est une technique alternative competitive a la modification d’un interprete moderne pour JavaScript lorsqu’applique a l’observation a l’execution des operations sur les objets et des appels de fonction.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    28
    References
    0
    Citations
    NaN
    KQI
    []