Sto avendo uno strano problema, fondamentalmente in Java Graphics.drawImage() è estremamente lento su alcuni computer e più veloce su altri. Anche questo non è collegato alla potenza del computer, alcuni computer più deboli funzionano bene mentre alcuni più forti sembrano bloccarsi alla chiamata drawImage.Graphics.drawImage() in Java è ESTREMAMENTE lento su alcuni computer e molto più veloce su altri
Può essere o non essere correlato alla larghezza e all'altezza, ho una larghezza, un'ampiezza e una altezza molto grandi definite (qualcosa come 5000 per 2500). Non penserei che sia il problema tranne che come ho detto che corre in tempo reale su alcuni computer e più lentamente su altri e non sembra essere legato al potere relativo del computer.
Entrambi i computer hanno la stessa versione di Java, entrambi utilizzano Vista. Uno ha un Core 2 Duo da 1.83 ghz con 1gb di RAM e grafica integrata (funziona bene), l'altro ha un core 2 core ghz 2,53 con un 9600GS (ultimi driver nVidia) e 4GB di RAM e si blocca letteralmente sulla chiamata drawImage.
Qualche idea?
edit: ok questo è davvero strano, sto disegnando l'immagine in una finestra in Swing, ora quando ridimensiono la finestra e la ridimensiono l'immagine viene ridimensionata e diventa piccola. All'improvviso tutto procede senza intoppi, quando lo ridimensiono alla dimensione che era prima ancora che funzioni senza intoppi!
Ha anche più problemi di monitoraggio, se eseguo il trucco di ridimensionamento per farlo funzionare più velocemente su un monitor, quindi lo scorri su un altro monitor quando più della metà della finestra si trova nel nuovo monitor che ricomincia a scoppiare. Devo ridimensionare nuovamente la finestra per ridimensionarla e tornare alla sua dimensione originale per tornare indietro.
Se faccio il trucco di ridimensionamento su un monitor, spostarlo verso l'altro è di chugs naturalmente, ma se torno indietro al monitor originale su cui ho fatto il trucco di ridimensionamento funziona al 100%
Se ho due finestre mobili aperte (che visualizzano la stessa immagine), entrambe funzionano lentamente, ma se faccio il trucco di ridimensionamento su una finestra entrambe iniziano a girare senza problemi (tuttavia non è sempre così).
* quando dico ridimensionare la finestra, voglio dire renderlo il più piccolo possibile fino al punto in cui l'immagine non può essere effettivamente vista.
Potrebbe essere un errore Java?
Che tipo di immagine è, e ciò che le versioni del JDK sono sui computer? –
Penso di vedere lo stesso problema.Questo è JDK 8 su XP (sì lo so) e un display Hi-Color. Bastano un paio di secondi per eseguire il rendering di un'Immagine Bufferata contenente una schermata intera, ma solo la seconda (!) Volta in cui il componente viene disegnato. Le chiamate successive a drawImage sono di nuovo istantanee. Forse qualche conversione avviene internamente? Abbastanza confondendo tutto sommato, e non proprio accettabile che una semplice conversione del colore impieghi tanto tempo (se è la ragione). –