Synchronization optimization for statically compiled Java programs is performed in three phases: Thread closure analysis, Alias analysis, and Specialization and transformation. Thread closure analysis bounds the number of thread instances constructed at each thread allocation site, and determines the set of methods potentially executed by each thread instance. Alias analysis generates equivalence class representation based alias signatures for each method. These signatures describe the aliasing and synchronization behavior of each method. The specialization and transformation phase traverses a call graph in a top-down manner starting from the program entry point, and creates specialized copies of methods when they can be individually optimized. A synchronization operation is removed from the code whenever it can be proven that all objects reaching the operation at runtime can be synchronized by at most one thread instance.

L'ottimizzazione di sincronizzazione per i programmi staticamente compilati del Java è effettuata in tre fasi: Filetti l'analisi della chiusura, altrimenti detto analisi e specializzazione e trasformazione. Filetti i limiti che di analisi della chiusura il numero di casi del filetto ha costruito ad ogni luogo di ripartizione del filetto e determina l'insieme dei metodi potenzialmente eseguiti da ogni caso del filetto. Altrimenti detto l'analisi genera le firme basate rappresentazione equivalente del codice categoria altrimenti detto per ogni metodo. Queste firme descrivono il comportamento di sincronizzazione e di aliasing di ogni metodo. La fase di trasformazione e di specializzazione attraversa un grafico di chiamata in un modo dall'alto in basso a partire dal punto di entrata di programma e genera le copie specializzate dei metodi quando possono essere ottimizzate individualmente. Un funzionamento di sincronizzazione è rimosso dal codice ogni volta che può essere dimostrato che tutti gli oggetti che raggiungono il funzionamento a tempo di esecuzione possono essere sincronizzati vicino tutt'al più un caso del filetto.

 
Web www.patentalert.com

< Equivalence class based synchronization optimization

< Equivalence class based synchronization optimization

> Method and apparatus for generating code for array range check and method and apparatus for versioning

> Data referencing within a database graph

~ 00094