Tengo un problema extraño, básicamente en Java Graphics.drawImage() es extremadamente lento en algunas computadoras y más rápido en otras. Esto tampoco está relacionado con la potencia de las computadoras, algunas computadoras más débiles funcionan bien, mientras que algunas más fuertes parecen bloquearse en la llamada a drawImage.Graphics.drawImage() en Java es EXTREMADAMENTE lento en algunas computadoras pero mucho más rápido en otras
Puede o no estar relacionado con el ancho y la altura, tengo un ancho y una altura muy, muy grandes definidos (algo así como 5000 por 2500). No creo que sea el problema, excepto como dije que funciona en tiempo real en algunas computadoras y más lento en otras y no parece estar relacionado con la potencia relativa de las computadoras.
Ambas computadoras tienen la misma versión de Java, ambas usan Vista. Uno tiene un Core 2 Duo de 1.83 ghz con 1 gb de RAM y gráficos integrados (todo funciona bien), el otro tiene un dúo core 2.53 ghz con un 9600GS (los últimos controladores nVidia) y 4 gb de RAM y literalmente resuena en la llamada drawImage.
¿Alguna idea?
edit: ok esto es realmente extraño, estoy dibujando la imagen en una ventana en Swing, ahora cuando cambio el tamaño de la ventana y la hago realmente pequeña, la imagen también se reduce y se vuelve pequeña. ¡De repente, todo funciona sin problemas, cuando lo vuelvo a escalar hasta el tamaño que tenía antes de que siga funcionando sin problemas!
También tiene múltiples problemas de monitor, si hago el truco de cambio de tamaño para hacerlo funcionar más rápido en un monitor y luego desplazarlo a otro monitor cuando más de la mitad de la ventana está en el nuevo monitor, vuelve a funcionar. Tengo que cambiar el tamaño de la ventana de nuevo a pequeño y luego volver a su tamaño original para recuperar la velocidad.
Si hago el truco de cambio de tamaño en un monitor, moverlo hacia el otro es de Chugs curso, pero si vuelvo de nuevo a la pantalla original en el que hice el truco de cambio de tamaño que funciona al 100%
Si tengo dos ventanas abatibles abiertas (mostrando la misma imagen) ambas funcionan con lentitud, pero si hago el truco de cambio de tamaño en una ventana, ambas comienzan a funcionar sin problemas (sin embargo, este no es siempre el caso).
* cuando digo redimensionar la ventana quiero decir que sea lo más pequeña posible hasta el punto en que la imagen no se pueda ver realmente.
¿Podría ser esto un error en Java?
¿Qué tipo de imagen es, y qué versiones del JDK están en los ordenadores? –
Creo que estoy viendo el mismo problema.Este es JDK 8 en XP (sí lo sé) y una pantalla Hi-Color. Se tarda unos segundos en renderizar una Imagen Buffered que contiene una captura de pantalla completa, pero solo la segunda (!) Vez que se dibuja el componente. Las llamadas posteriores a drawImage vuelven a ser instantáneas. Tal vez alguna conversión se lleva a cabo internamente? Bastante confuso en general, y no es realmente aceptable que una conversión de color simple tome tanto tiempo (si es la razón). –