Skip to content

Progetto e realizzazione di un ambiente di ottimizzazione del bytecode Java

Dal momento della sua nascita nel 1994, la tecnologia Java ha subito molti mutamenti sull’onda dello straordinario sviluppo delle reti di computer, ma questa gigantesca evoluzione, a causa probabilmente del suo stesso successo, ha tralasciato alcuni aspetti più specifici quali le ottimizzazioni.
Il merito principale di Java è la capacità di integrare alcune delle migliori tecnologie esistenti nell’ingegneria del software e renderle disponibili in un comune ambiente di programmazione, contribuendo ad allargare la gamma di servizi che le persone, anche non esperte, possono ricevere dai sistemi informatici, dai data base multimediali, dalla telefonia e dalle più flessibili reti di calcolatori. Tutto ciò ha un costo, che si paga con la perdita di prestazioni rispetto alle altre piattaforme dedicate.
Il processo di innovazione, comunque, non deve essere controllato o fermato per focalizzare l’attenzione solamente sulle prestazioni di Java. Certamente però è ormai opportuno, come già suggerito da altri autori, rielaborare alcune delle caratteristiche e delle strutture dell’ambiente Java, in modo da compensare rapidamente le lacune rispetto alle soluzioni più tradizionali. Si corre altrimenti il rischio di sviluppare un prodotto per il domani non utilizzabile oggi e, nel mondo in continua evoluzione delle tecnologie informatiche, questa è una scommessa perdente.
Sebbene Java abbia mosso i primi passi per poche applicazioni fortemente dedicate, come ad esempio i dispositivi domestici intelligenti o le popolari applets presenti su Internet, attualmente viene utilizzato per una gamma più ampia di applicazioni, che vanno dalle reti di calcolatori fino ai dispositivi personali.
Al momento sono disponibili in commercio quattro ambienti: Java Appication Environment (JAE) per elaborazioni generali, Personal Java per sistemi di comunicazione personali, Embedded Java e Java Card per applicazioni su schede intelligenti. Questi forniscono strumenti differenti, più o meno complessi in termini di ambiente di sviluppo (API e strumenti dedicati, etc) e di sistema di esecuzione (garbage collection, multithreading, security, etc) a seconda delle caratteristiche della piattaforma sottostante. Il presente scenario coinvolge anche quattro diversi approcci all’esecuzione dei bytecode: interpreti, compilatori Just In Time (JIT), compilatori Way Ahead of Time (WAT) e Java Silicon Machine (JSM) sono tutte piattaforme che forniscono soluzioni diverse all’implementazione delle specifiche Java Virtual Machine (JVM). Tuttavia, data la varietà del codice applicativo e delle macchine esistenti, non si può indicare ancora un ambiente di esecuzione che rappresenti la soluzione migliore in ogni contesto.
Anche considerando questa crescente varietà di ambienti, è ragionevole pensare che debba necessariamente partire un processo di rielaborazione basato una seria analisi dell’implementazione delle caratteristiche del linguaggio, che sono le fondamenta dei programmi. A questo proposito le istruzioni di invocazione dei metodi, un punto critico specialmente per i linguaggi orientati agli oggetti, non sono ancora state sufficientemente indicate in letteratura come possibile elemento da cui ottenere migliori prestazioni. Il polimorfismo, caratteristica essenziale della programmazione orientata agli oggetti, è reso possibile dal meccanismo del late binding, che collega dinamicamente il codice invocato in conformità al tipo runtime dell’oggetto destinatario. Questa procedura di collegamento, solitamente realizzata riferendosi alle virtual function tables (method tables in Java), coinvolge l’identificazione, a tempo di esecuzione, del tipo reale del destinatario in modo da saltare al codice corrispondente. Ciò impedisce ottimizzazioni interprocedurali da parte del compilatore a causa dell’incertezza circa il codice che segue ogni sito di invocazione virtuale.
Il meccanismo del late binding indebolisce le prestazioni del moderno hardware. La tendenza della ricerca nelle architetture dei computer e le nuove caratteristiche dei linguaggi di programmazione sono infatti in rotta di collisione. I moderni microprocessori espongono una quantità sempre maggiore di dettagli implementativi al compilatore, come ad esempio l’organizzazione in pipeline, la gerarchia di memoria e il parallelismo delle unità funzionali. Il compilatore deve poter predire il flusso di esecuzione dei programmi per sequenze il più ampie possibili, in modo da sfruttare le potenzialità dei microprocessori nella capacità di eseguire più istruzioni contemporaneamente e nella capacità di predizione dei salti da effettuare. Quest’ultimo fatto acquista molta importanza poichè i salti condizionati indiretti, sono più difficili da predire dei salti diretti (percentuale di predizione corretta del 95% dei diretti contro il 60% degli indiretti), e, sebbene avvengano meno frequentemente, possono avere un impatto negativo sulle prestazioni.

CONSULTA INTEGRALMENTE QUESTA TESI

La consultazione è esclusivamente in formato digitale .PDF

Acquista
Mostra/Nascondi contenuto.
Bibliografia Università degli Studi di Genova Dipartimento di Ingegneria Biofisica ed Elettronica 144 CAPITOLO 11 “Se vuoi capire gli altri devi intensificare il tuo individualismo.” (Oscar Wilde) . “... quei misteriosi iniziati, divenuti numerosi, arditi, cospiratori: gesuitismo, magnetismo, martinismo, pietra filosofale, sonnambulismo, eclettismo, tutto nasce da loro.” (C. L. Cadet-Gasicourt, Le tombeau de Jacques de Molay, Paris, Desenne, 1797, pag. 91) 11.1. Java Platform [1] Arnold K., Gosling J., The Java Programming Language. Addison-Wesley, 1996. [2] Case B., Java Virtual Machine Should Stay Virtual. Microprocessor Report, pages 14-15, April 1996. [3] Eckel. B., Thinking in Java. Practice Hall PTR, Upper Saddle River, NJ, 1998.

CONSULTA INTEGRALMENTE QUESTA TESI

La consultazione è esclusivamente in formato digitale .PDF

Acquista
Il miglior software antiplagio

L'unico servizio antiplagio competitivo nel prezzo che garantisce l'aiuto della nostra redazione nel controllo dei risultati.
Analisi sicura e anonima al 100%!
Ottieni un Certificato Antiplagio dopo la valutazione.

Informazioni tesi

  Autore: Riccardo Berta
  Tipo: Tesi di Laurea
  Anno: 1998-99
  Università: Università degli studi di Genova
  Facoltà: Ingegneria
  Corso: Ingegneria Elettronica
  Relatore: Alessandro De Gloria
Coautore: Andrea Barisone
  Lingua: Italiano
  Num. pagine: 164

FAQ

Per consultare la tesi è necessario essere registrati e acquistare la consultazione integrale del file, al costo di 29,89€.
Il pagamento può essere effettuato tramite carta di credito/carta prepagata, PayPal, bonifico bancario.
Confermato il pagamento si potrà consultare i file esclusivamente in formato .PDF accedendo alla propria Home Personale. Si potrà quindi procedere a salvare o stampare il file.
Maggiori informazioni
Ingiustamente snobbata durante le ricerche bibliografiche, una tesi di laurea si rivela decisamente utile:
  • perché affronta un singolo argomento in modo sintetico e specifico come altri testi non fanno;
  • perché è un lavoro originale che si basa su una ricerca bibliografica accurata;
  • perché, a differenza di altri materiali che puoi reperire online, una tesi di laurea è stata verificata da un docente universitario e dalla commissione in sede d'esame. La nostra redazione inoltre controlla prima della pubblicazione la completezza dei materiali e, dal 2009, anche l'originalità della tesi attraverso il software antiplagio Compilatio.net.
  • L'utilizzo della consultazione integrale della tesi da parte dell'Utente che ne acquista il diritto è da considerarsi esclusivamente privato.
  • Nel caso in cui l’utente che consulta la tesi volesse citarne alcune parti, dovrà inserire correttamente la fonte, come si cita un qualsiasi altro testo di riferimento bibliografico.
  • L'Utente è l'unico ed esclusivo responsabile del materiale di cui acquista il diritto alla consultazione. Si impegna a non divulgare a mezzo stampa, editoria in genere, televisione, radio, Internet e/o qualsiasi altro mezzo divulgativo esistente o che venisse inventato, il contenuto della tesi che consulta o stralci della medesima. Verrà perseguito legalmente nel caso di riproduzione totale e/o parziale su qualsiasi mezzo e/o su qualsiasi supporto, nel caso di divulgazione nonché nel caso di ricavo economico derivante dallo sfruttamento del diritto acquisito.
L'obiettivo di Tesionline è quello di rendere accessibile a una platea il più possibile vasta il patrimonio di cultura e conoscenza contenuto nelle tesi.
Per raggiungerlo, è fondamentale superare la barriera rappresentata dalla lingua. Ecco perché cerchiamo persone disponibili ad effettuare la traduzione delle tesi pubblicate nel nostro sito.
Per tradurre questa tesi clicca qui »
Scopri come funziona »

DUBBI? Contattaci

Contatta la redazione a
[email protected]

Ci trovi su Skype (redazione_tesi)
dalle 9:00 alle 13:00

Oppure vieni a trovarci su

Parole chiave

inlining
java
jvm
linguaggi di programmazione
linguaggi orientati agli ogetti
virtual function call
ottimizzazione del software

Tesi correlate


Non hai trovato quello che cercavi?


Abbiamo più di 45.000 Tesi di Laurea: cerca nel nostro database

Oppure consulta la sezione dedicata ad appunti universitari selezionati e pubblicati dalla nostra redazione

Ottimizza la tua ricerca:

  • individua con precisione le parole chiave specifiche della tua ricerca
  • elimina i termini non significativi (aggettivi, articoli, avverbi...)
  • se non hai risultati amplia la ricerca con termini via via più generici (ad esempio da "anziano oncologico" a "paziente oncologico")
  • utilizza la ricerca avanzata
  • utilizza gli operatori booleani (and, or, "")

Idee per la tesi?

Scopri le migliori tesi scelte da noi sugli argomenti recenti


Come si scrive una tesi di laurea?


A quale cattedra chiedere la tesi? Quale sarà il docente più disponibile? Quale l'argomento più interessante per me? ...e quale quello più interessante per il mondo del lavoro?

Scarica gratuitamente la nostra guida "Come si scrive una tesi di laurea" e iscriviti alla newsletter per ricevere consigli e materiale utile.


La tesi l'ho già scritta,
ora cosa ne faccio?


La tua tesi ti ha aiutato ad ottenere quel sudato titolo di studio, ma può darti molto di più: ti differenzia dai tuoi colleghi universitari, mostra i tuoi interessi ed è un lavoro di ricerca unico, che può essere utile anche ad altri.

Il nostro consiglio è di non sprecare tutto questo lavoro:

È ora di pubblicare la tesi