Tuesday, November 08, 2005

String <-> InputStream

In questi giorni mi sono concentrato sugli Stream, ma ho ancora qualche difficoltà a gestirli efficientemente. In particolare qualora questi non supportano il reset.

Cercando un po' di informazioni in internet mi sono trovato davanti a del codice che implementa una cosa che non ero mai riuscito a fare in modo efficiente (se non utilizzando classi deprecate).

Conversione da InputStream a String:
  public String parseISToString(java.io.InputStream is){
java.io.DataInputStream din = new java.io.DataInputStream(is);
StringBuffer sb = new StringBuffer();
try{
String line = null;
while((line=din.readLine()) != null){
sb.append(line+"\n");
}
}catch(Exception ex){
ex.getMessage();
}finally{
try{
is.close();
}catch(Exception ex){}
}
return sb.toString();
}


Conversione da String ad InputStream:

  public java.io.InputStream parseStringToIS(String str){
if(str==null) return null;
str = str.trim();
java.io.InputStream in = null;
try{
in = new java.io.ByteArrayInputStream(str.getBytes("UTF-8"));
}catch(Exception ex){}
return in;
}

Commenti sulla qualità di queste due funzioni? Alternative migliori?

Wednesday, November 02, 2005

Primi test su IBM Java 1.5 Beta

Alla fine sono riuscito a ottenere e testare la beta del jdk di IBM.
Il primo test è semplicemente l'avvio di Eclipse, abbastanza grosso per verificare che in effetti tutto funzioni a dovere.

La nota positiva è che in effetti tutto parte e funziona correttamente, quella negativa invece sono i tempi:

  • Avvio di Eclipse (Java5): 55 secondi
  • Avvio di Eclipse (Java1.4): 45 secondi
  • Avvio SWTHelloWorld da Eclipse (Java5): 7 secondi
  • Avvio SWTHelloWorld da Eclipse (Java1.4): 4 secondi
  • Avvio SwingHelloWorld da Eclipse (Java 5): 7 secondi
  • Avvio SwingHelloWorld da Eclipse (Java1.4): 6 secondi
Ho poi effettuato una serie di test (array sort, test numeri primi, divisioni floating point). I tempi sono espressi in millisecondi:

IBM Java5:
  • Array sort: 5551
  • Test numeri primi: 25086
  • Divisioni floating point: 14063

IBM Java1.4
  • Array sort: 4279
  • Test numeri primi: 1049
  • Divisioni floating point: 458
Il codice utilizzato per questi test è lo stesso utilizzato in Introduzione a Gcj nella sezione Conclusioni.

In conclusione un paio di note positive: in questa vesione di Java, IBM ha incluso anche un plugin per mozilla e Java Web Start. Ho effettuato qualche semplice test su entrambi:
  • 2 chat basate su java per il plugin per mozilla
  • jlGui web start installer
Speriamo che per il rilascio finale IBM risolva i problemi di velocità e fornisca a tutti i possessori di architetture PowerPC una Java5 degna di questo nome.

Tuesday, November 01, 2005

IBM Java 1.5 Beta

IBM ha rilasciato (abbastanza silenziosamente a dire il vero) la beta della sua implementazione di Java 5.

Al momento non sono ancora riuscito a provarla, dopo la richiesta di download mi viene detto:
This product is subject to strict US export control laws. Prior to providing access, we must validate whether you are eligible to receive it under an available US export authorization.
Your request is being reviewed.
Upon completion of this review, you will be contacted if we are able to give access. We apologize for any inconvenience.

La cosa veramente positiva di questo annuncio è che finalmente i possessori di PPC hanno a disposizione una implementazione di Java 1.5 con tanto di plugin per mozilla.


Appena riuscirò a provarla, pubblicherò qualche benchmark.