By: Esteban on Mercoledì 24 Gennaio 2007 02:03
Diciamo che è il software ....
Ho già chiesto e fatto tutte le prove del caso ...
Ma è un problema difficilmente riscontrabile ...
Come al solito ho avvisato e come al solito mi hanno detto che sono l'unico (ma è probabilissimo perchè c'è un motivo che rende tale situazione difficile da replicare)
Sul sito della SUN (chi java lo ha fatto) si trovano varie note a riguardo , non ho ancora trovato un codice specifico, per ora...
^link#http://onesearch.sun.com/search/onesearch/index.jsp?col=developer-forums&qt=eat+memory&qp_name=null&subCat=siteforumid%3Ajava31&site=dev&dftab=siteforumid%3Ajava31&chooseCat=javaall&cs=false&rt=true&st=11^
as we know, the JVM snatches memory from the OS for doing its own operation like running java program etc etc.
JVM also increase memory ON- DEMAND.
Quindi se QT ne richiede a java , javaw.exe la procura e windows XP gliela da ...
Nel senso che la prende alle altre applicazioni.
Probabilmente se aprite vari task , notate un rallentamento , o QT che diventa tutto grigio e non visualizza i grafici (ma non è detto ... perchè vedi sotto)
QT credo lavori con la mappa grafica di ogni finestra in memoria ram (tampone - non virtuale cioè disco fisso), quindi + finestre uno ha aperte + occupa memoria ...
Non solo ...
Io ad esempio opero con 2 monitor da 19" , il mapping in teoria varia pure in base alla definizione del Monitor ( ho 2 19" a 1280x1024 + 1280x1024 + l'informazione del colore del pixel
e sono 16 milioni di colori quelli che uso, quelli di QT meno, non so esattamente).
Fatto sta che il peso gestito in ram varia notevolmente a seconda della definizione del monitor.
Chiaro che salvare su RAM risulta molto + veloce per il programma rispetto a salvare su disco fisso(memoria virtuale), e fare gli zoom che facciamo spesso.
Per averne prova , ho semplicemente chiuso tutte le finestre ho ridotto ad icona QT, e l'ho riaperto.
La memoria non aumenta + di 30 MB ( che in teoria è il solo programma aperto senza strumenti interni aperti, per me son 30Mb, solo il programma, ma per un 1024x768 sarà molto meno).
Questo non mi chiarisce però , perchè l'incremento da 60Mb (già tutto esploso a video con finestre e grafici vari, quindi al massimo) arriva sucessivamente a 150MB con aumenti di 1Mb ogni 5 secondi(variabile).
Quì credo ,c'è pure un problema software , non può essere che mi sale la memoria occupata da javaw.exe di 1Mb ogni 5secondi e sale fino a 150Mb.
Evidentemente c'è qualche noia sulla riallocazione della memoria ( o da sys op o da programma).
Siccome java è un interprete ,nel senso che interpreta il codice, ed il modulo è javaw.exe che occupa memoria RAM, task manager mi dice che occupa molto + di ciò che il programma mi fa vedere sui dati forniti a video, quindi l'incongruenza ...
Magari si consuma 50Mb sul PRG , ma javaw.exe in memoria ne occupa 150MB troppo, Io ad esempio ho 512Mb , levate quella del sysop XP, quella del prg alla fine vi rimane poco per il resto (explore carica anche 100Mb su certe pagine, e se non ha ram fa swap su disco rallentando il tutto ...
Ho appena ACQ. una Matrox G450 mms a 4 vie per avere alla fine 4+2 Monitor a 1900x1600 ...
Quanta memoria dovrei Acq. per supportarli tutti a quella definizione(pensando di ingrandire QT a + finestre) ?
Polipolio , tu ad esempio hai risolto aggiungendo ram , e questa è la via + immediata.
C'è un problema con l'aumento della definizione , ma c'è pure un problema sul Prg. nella gestione della memoria ,
Se con il programma e tutte le finestre aperte mi accupano 60GB e poi inizia a salire a colpi di 1MB ogni tot secondo sino ad arrivare a + del doppio , quei 90 Mb rimanenti come si giustificano (son troppi).