SuperOptimize, metti il turbo ai tuoi programmi

Logo di SuperOptimize

SuperOptimize è un pacchetto che avevo creato per l’ottimizzazione automatica dei programmi SuperWaba.

Non è più mantenuto, ma se per te è ancora interessante contattami.

Cos’è?

SuperWaba è una piattaforma di sviluppo per computer palmari e smartphone che permette di usare il linguaggio Java per lo sviluppo di applicazioni negli ambienti Palm OS, Windows Mobile e Symbian OS.

SuperOptimize è un pacchetto per offuscare, ridurre le dimensioni ed ottimizzare i tempi di esecuzione della tua applicazione SuperWaba. Il codice risultante è più compatto, offuscato ed altamente ottimizzato – tre caratteristiche utili per lo sviluppo su questa piattaforma.

SuperOptimize combina i più avanzati strumenti open source per raggiungere questo risultato: il framework Soot e il programma ProGuard.

Perchè ottimizzare il codice?

Attraverso Soot, SuperOptimize modifica il codice dell’applizazione per velocizzarne l’esecuzione, il che è estremamente utile soprattutto sui dispositivi mobili dove le risorse computazionali sono limitate.

Perchè ridurre le dimensioni?

Rimuovendo porzioni di codice non utilizzate, è possibile produrre eseguibili più piccoli che impiegano meno tempo per essere caricati e consumano meno memoria del dispositivo.

Perchè offuscare?

SuperWaba, come in ogni altra Java Virtual Machine ricerca nel codice oggetto i campi e i metodi che vengono utilizzati durante l’esecuzione. Questo si traduce in una ricerca su collezioni di stringhe, dal momento che i nomi dei campi e dei metodi sono mantenuti inalterati nel codice oggetto, il che può risultare costoso. Il processo di offuscamento sostituisce i nomi delle classi, dei metodi e dei campi con nomi più corti come “A” o “Ba”, il che risulterà in un minore tempo speso dalla Virtual Machine per la loro ricerca.

L’offuscamento rende anche più difficile capire il significato del codice per chi non ha a disposizione il codice sorgente, anche se questo, da solo, non è sufficiente a impedire il reverse engineering.

Scaricalo!

Puoi usarlo gratuitamente, per i dettagli vedi la pagina delle licenze.

Come si usa

Prima di tutto, procurati una copia del JDK 1.2.2. Questa particolare versione, anche se ormai datata, è la migliore per generare codice SuperWaba, ed è esplicitamente richiesta da SuperOptimize. Inoltre avrai bisogno di Apache Ant, che è incluso nell’ambiente Eclipse (che è altamente raccomandato). Una volta installato dovrai adattare il file build.xml incluso in SuperOptimize come opportuno. In particolare dovrai variare le righe seguenti:
<!-- Path for the JDK 1.2 -->
<property name="java12home" value="/opt/jdk1.2.2"/>
<!-- Name of the main class -->
<property name="mainClass" value="superwaba.samples.app.swcalc.SWCalc"/>
<!-- Name of the program -->
<property name="programName" value="SWCalc"/>

rispettivamente con il percorso al JDK, il nome della classe con il metodo main e il nome del tuo programma. Si assume inoltre che tutti i sorgenti occorrenti siano nella cartella src. Fatto questo basterà lanciare il file build.xml che procederà alla compilazione ed ottimizzazione producendo il file pdb pronto per la sincronizzazione.

Risultati

Ho creato SuperOptimize quando ero al lavoro su un altro progetto, e al momento non l’ho utilizzato in altre circostanze. I risultati sono stati molto positivi, infatti:

  • le dimensioni del file prodotto sono calate da 500 kb a 150 kb circa e
  • il tempo di esecuzione del principale compito del programma si è ridotto di circa il 40%.

Sorgenti

SuperOptimize è un pacchetto preconfigurato che sostanzialmente rende facile l’utilizzo di alcuni software open source in SuperWaba. I sorgenti non sono stati modificati e sono disponibili alle rispettive pagine ufficiali:

Comments are closed.