Il
processore virtuale assomiglia per la cronaca ad un
processore RISC a 32 bit.
Il
formato eseguibile in particolare è stato ideato per
essere compatto, in genere in un rapporto 1:1.5 rispetto
ai binari prodotti per un processore hardware RISC.
Nel
caso degli "eseguibili" JAVA, che come abbiamo visto
sono in formato bytecode, JTE provvede un tool sempre
scritto in VP (jcode), di ridottissime dimensioni che
provvede a prendere i bytecode e a convertirli in formato
VP, il codice VP ottenuto verrà quindi sottoposto al
"traduttore" (in genere di 50/80 Kilobytes
appena)
sviluppato da TAO che provvederà appunto a tradurre
il formato VP nel codice macchina nativo del processore
(x86, RISC) presente e a renderlo disponibile per l'esecuzione.
A
questo punto si potrebbe ritenere che il processo sia
molto simile a quello effettuato normalmente da una
qualsiasi JVM standard, ma in realtà non lo è ed anzi
permette notevoli vantaggi.
In particolare le dimensioni del traduttore come degli
altri tool realizzati in VP sono ridottissime
quindi
non occupano inutilmente memoria, né richiedono tempi
lunghi di accesso al disco per il caricamento in memoria,
né di un utilizzo estremo del processore, né di eccessiva
energia (batteria) nel caso di apparecchi embedded,
telefonini.
Anche
i pacchetti Java (librerie) sono stati ottimizzati e
portati in VP per ottenere prestazioni ottimali.
Il
codice VP viene tradotto ossia compilato in base al
processore (Pentium, PowerPC, …) presente al momento
del caricamento (in genere molto veloci date le dimensioni
ridotte dei file VP) ed eseguito come un normale file
eseguibile compilato, quindi ciò è differente dal caso
tipico di JAVA che utilizza una combinazione interpretazione
+ compilazione (JIT).
Queste
caratteristiche lo rendono ideali in particolare per
i dispositivi embedded, per i palmari, per i telefonini,
PDA, SmartCard, in particolare se utilizzati con Personal
Java.
In
genere in molti casi si è risusciti, in base ad esperimenti
effettuati da TAO, a ottenere risultati fino a 10 volte
più veloci di altre implementazioni della JVM e 10 volte
più compatte.
Riassumendo
i punti di forza del VP sono:
- Compattezza
dei file (caricamento da hard-disk o trasferimento
via rete immediati)
- Utilizzo
non di classi di tool (caso JAVA), ma tool singoli
per rapido caricamento e compilazione
- Traduzione
codice JAVA -> VP -> CPU e VP -> CPU veloce
- Utilizzo
memoria contenuto
- Portabilità
(utilizzo su una macchina qualsiasi avente uno dei
processori supportati)
- Sviluppo
in C/C++/JAVA/VP
|