JIT - Dipartimento di Sistemi e Informatica
JIT - Dipartimento di Sistemi e Informatica
JIT - Dipartimento di Sistemi e Informatica
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Dipartimento</strong> <strong>di</strong> <strong>Sistemi</strong> e <strong>Informatica</strong>, University of Florence<br />
<strong>Sistemi</strong> Distribuiti, Prof. Paolo Nesi<br />
Common Language Specification<br />
Il CLS definisce un sottoinsieme del Common Type System al<br />
quale tutti i fornitori <strong>di</strong> librerie <strong>di</strong> classi e progettisti <strong>di</strong> linguaggi linguaggi<br />
che puntano al CLR, devono aderire.<br />
Se un componente scritto in un linguaggio (ad esempio C#)<br />
dovrà dovr essere utilizzato da un altro linguaggio (ad esempio<br />
VB.NET), allora chi scrive il componente dovrà dovr aderire ai tipi e<br />
alle strutture definite dal CLS.<br />
Ad Ad esempio, il tipo Int32 è compatibile con il CLS ed i linguaggi<br />
e gli strumenti possono aspettarsi che altri linguaggi e<br />
strumenti conformi al CLS sappiano come utilizzarlo<br />
correttamente<br />
<strong>Sistemi</strong> Distribuiti, Univ. Firenze, Paolo Nesi 2005-2006 21<br />
<strong>JIT</strong> – Just in Time Compiler<br />
Il co<strong>di</strong>ce non viene caricato tutto in memoria<br />
il compilatore <strong>JIT</strong> compila solo il co<strong>di</strong>ce necessario,<br />
quin<strong>di</strong> memorizza nella cache il co<strong>di</strong>ce nativo compilato<br />
per riutilizzarlo<br />
L’overhead overhead è una lieve <strong>di</strong>fferenza che, nella maggior<br />
parte dei casi, non verrà verr rilevata<br />
Quando viene caricata una classe, il caricatore aggiunge<br />
uno stub a ogni metodo della classe<br />
La prima volta che viene chiamato il metodo, il co<strong>di</strong>ce<br />
stub cede il controllo al compilatore <strong>JIT</strong>, che compila<br />
MSIL nel co<strong>di</strong>ce nativo.<br />
Lo stub viene quin<strong>di</strong> mo<strong>di</strong>ficato per puntare al co<strong>di</strong>ce<br />
nativo appena creato, affinché affinch le chiamate successive<br />
passino <strong>di</strong>rettamente al co<strong>di</strong>ce nativo<br />
<strong>Sistemi</strong> Distribuiti, Univ. Firenze, Paolo Nesi 2005-2006 22<br />
11