Newsgroup: it.comp.java
Titolo: Considerazioni jvm

Salve, sviluppo in java da circa un anno e utilizzo linux come sistema
operativo. Ho avuto modo di testare i miei programmi sia in ambiente
Windows che in ambiente Linux e mi sono accorto delle enormi
differenze tra i due ambienti, specialmente per quanto riguarda
l'aspetto grafico delle mie applicazioni(Swing). Ho notato che swing
gira molto meglio in Windows e che sotto questa piattaforma e' piu'
stabile e veloce. Inoltre in linux le applicazioni in java (tipo
Eclipse, jEdit, jftp, ecc) crashano molto ma molto + frequentemente
che in Windows.
E' possibile che, dato che la maggior parte delle implementazioni
client della jvm gira sotto Windows, la Sun abbia dedicato maggiore
attenzione alla realizzazione della jvm per questa piattaforma
trascurando le altre?
Mi piacerebbe sapere cosa ne pensate...
Grazie a tutti...
saluti.

 
Non credo proprio, anche perché Java è usato da Sun per implementare i tool
di amministrazione di Solaris....comunque è certo ci siano differenze di
performance fra le varie implementazioni dovute a come vengono gestiti i
thread (posix? processi?), da come sono implementati i backend del toolkit,
etc. Se swing non ti piace puoi sempre provare SWT che va sicuramente più
veloce...
Ad ogni modo io sviluppo in Java/Linux da diversi anni e non ho mai avuto i
problemi di cui parli, o meglio, non erano mai dovuti a Java ma a problemi
esterni (memoria, file system, etc.).
Luca

 writes:
R> Salve, sviluppo in java da circa un anno e utilizzo linux come
R> sistema operativo. Ho avuto modo di testare i miei programmi sia in
R> ambiente Windows che in ambiente Linux e mi sono accorto delle
R> enormi differenze tra i due ambienti, specialmente per quanto
R> riguarda l'aspetto grafico delle mie applicazioni(Swing).
Sicuro che sia Swing e non AWT ?
R> che swing gira molto meglio in Windows e che sotto questa
R> piattaforma e' piu' stabile e veloce.
La  velocità la  notai  anche io,  ma  si limitava  alla creazione  di
finestre sotto  X11 con  la 1.4. Passato  alla 1.5  la cosa (da  me) è
scomparsa ed è cambiato il look. Spiegazione ? Molto probabilmente era
legata alla licenza con cui era distribuito Java. Con la 1.4 sono stato
obbligato a prendere un pacchetto costruito per RedHat rimaneggiato in
locale per adattarsi alla distribuzione che uso io (debian Unstable).
Una  soluzione di ripiego  e l'inefficenza  va cercata  nelle librerie
native usate.
A  partire  dalla  1.5,  la  virtual machine  di  java  è  liberamente
ricompilabile e  ridistribuibile, quindi è stato  possibile per Debian
creare  e  distribuire  una  versione  più efficente  ed  adatta  alle
librerie in uso.
R> Inoltre in linux le
R> applicazioni in java (tipo Eclipse, jEdit, jftp, ecc) crashano
R> molto ma molto + frequentemente che in Windows.
Colpa di librerie poco adatte. Da me Eclipse è una roccia (gli altri
non mi servono). jcvsii gire male ma è colpa di come è stato scritto
il programma che probabilmente dovrei far girare coi green thread.
R> E' possibile che, dato che la maggior parte delle implementazioni
R> client della jvm gira sotto Windows, la Sun abbia dedicato maggiore
R> attenzione alla realizzazione della jvm per questa piattaforma
R> trascurando le altre?
No.  Semplicemente,  per  quello  che  riguarda le  librerie  che  gli
servono, Windows è un ambiente molto più prevedibile.
-- 
 /\           ___
/___/\_|_|\_|__|___Gian Uberto Lauri_____
  //--\| | \|  |   Integralista GNUslamico
\/                 e coltivatore diretto di Software
A Cesare avrei detto di scrivermi a	 | To Caesar I woul have said "emai me to
fn...@rat.vg
  (Lui cifrava in rot13) | 
fn...@rat.vg
  (He encrypted wit Rot13)

 trascurando le altre?
Non credo, visto che Sun produce ben 3 JVM per linux x86-32bit, x86/64bit
e x86-embedded...
Ciao
gl


Non credo di avere problemi allla ram, se cosi' fosse l'intero sistema
ne risentirebbeed io invece trovo problemi solamente per le
applicazioni java. Il mio sistema è un suse 10.2

 applicazioni java. Il mio sistema è un suse 10.2
E se incrementi la ram di eclipse?
Poi quando ti va in crash? Quando apri determinati file/classi/perspective?
Mentre compili? Mentre fai debug? Hai provato ad indagare?
Luca

 writes:
R> Non credo di avere problemi allla ram, se cosi' fosse l'intero
R> sistema ne risentirebbeed io invece trovo problemi solamente per le
R> applicazioni java. Il mio sistema è un suse 10.2
Java lo hai installato da un pacchetto Suse ?


 
fn...@rat.vg
  (Lui cifrava in rot13) | 
fn...@rat.vg
  (He encrypted wit Rot13)
Oltre ad avere il java installato da pacchetto suse utilizzo il java
ufficiale della sun, questo perche' suse non dispone ancora (o forse
sono io che non l'ho trovato) del pacchetto per java 6.

 writes:
R> Ho impostato eclipse affinche' utilizzi 512MB di ram.
Ed affidarsi allo swap ? non sarà un fulmine di guerra...


 writes:
R> Oltre ad avere il java installato da pacchetto suse utilizzo il
R> java ufficiale della sun,
Che se non erro č compilato per RH. Ho avuto gli stessi problemi
utilizzando il binario compilato per RH.


 
Io uso abitualmente il pacchetto ufficiale sun e non ho avuto nessun
problema....e uso ubuntu.

 
Lo swap è deciso dal sistema operativo...

 writes:


Il sistema  usa lo swap quando  non ha più  memoria fisica disponibile
per mappare una pagina di memoria virtuale, lo sanno anche all'asilo.
L'area di swap è decisa in fase di installazione della macchina ma può
essere anche  ampliata (nel caso  particolare di Linux  possono essere
aggiunte ulteriori partizioni o file di swap).
Limitare Eclipse perché a mezzo giga  perché hai un giga di ram non la
vedo  come una  manovra vincente.   Bene o  male stai  utilizzando una
macchina dedicata  a te, quindi  sono le applicazioni che  stai usando
quelle  che con  maggiore  probabilità avranno  le  pagine di  memoria
"utili"  nella  memoria  centrale. Usare  un  giga  di  ram e  due  (e
qualcosa) di swap è più lento che  usare 3 giga di ram, ma ti permette
di fare più cose che usare un giga solo....
/* Suggerimento: mandare a nanna i desktop environment ... */


> 
LF> Io uso abitualmente il pacchetto ufficiale sun e non ho avuto nessun
LF> problema....e uso ubuntu.
Che versione della JVM ?


 
java version "1.6.0_01"

 /* Suggerimento: mandare a nanna i desktop environment ... */
ecco, questo si che è utile!

> anche all'asilo.
LF> Beh, grazie della lezione.
Prego, figurati.
LF> ecco, questo si che è utile!
Perché, a te serve ?


> 
LF> java version "1.6.0_01"
Allora hanno corretto il tiro. Con la 1.4 c'erano problemi.


 esterni (memoria, file system, etc.).
Quoto tutto. Per elaborazioni server side IMHO sotto linux java performa 
addirituttura meglio.
Scorpio