https://foro.gambas-es.org/viewtopic.php?f=24&t=8031
-----------------------------------
tercoIDE
Jueves, 07 May 2020, 00:02

Comparacion De Perfomance: Paint Vs Cairo
-----------------------------------
Hice una prueba que les adjunto. Cairo es notablemente mas rápido, en 5 y 10 veces.


[img]https://foro.gambas-es.org/files/images/2399/captura_de_pantalla_de_2020_05_06_19_51_27.png[/img]


-----------------------------------
tincho
Jueves, 07 May 2020, 10:45

Re: Comparacion De Perfomance: Paint Vs Cairo
-----------------------------------
Descargado.
Ayer también leí un poco sobre esta librería, pero mejor un ejemplo.
Saludos.
 [img]https://foro.gambas-es.org/files/images/2590/captura_de_pantalla_2020_05_07_11_56_08.png[/img]


-----------------------------------
tercoIDE
Jueves, 07 May 2020, 11:43

Re: Comparacion De Perfomance: Paint Vs Cairo
-----------------------------------
Mejoras posibles al tester, para quien desee hacerlo:
1-La imagenes pueden ser mar grandes y ver solo la que se testea
2-Agregar Fast como opcion
3-Agregar OpenGL
4-Agregar mas dibujos y otros colores


-----------------------------------
tercoIDE
Viernes, 08 May 2020, 04:38

Re: Comparacion De Perfomance: Paint Vs Cairo
-----------------------------------
Pero en GambasCAD el problema es otro, los recorridos ForEach para dibujar cada cosa son el bottleneck.

Un dibujo con 54.000 entidades (la mayoria lineas) tardo:

Cairo 7.50 seg

Paint 8.26 seg


-----------------------------------
tincho
Viernes, 08 May 2020, 11:00

Re: Comparacion De Perfomance: Paint Vs Cairo
-----------------------------------
[quote user="tercoIDE" post="48385"]Pero en GambasCAD el problema es otro, los recorridos ForEach para dibujar cada cosa son el bottleneck.
Un dibujo con 54.000 entidades (la mayoria lineas) tardo:
Cairo 7.50 seg
Paint 8.26 seg[/quote]
Pero no termino de entender por que hay que dibujarlo todo. ademas hay otra cuestión, si existe un zoom de una parte del dibujo y el resto queda fuera, ¿Hay que dibujarlo también?
Saludos.


-----------------------------------
tercoIDE
Viernes, 08 May 2020, 12:05

Re: Comparacion De Perfomance: Paint Vs Cairo
-----------------------------------
[quote user="tincho" post="48389"][quote user="tercoIDE" post="48385"]Pero en GambasCAD el problema es otro, los recorridos ForEach para dibujar cada cosa son el bottleneck.
Un dibujo con 54.000 entidades (la mayoria lineas) tardo:
Cairo 7.50 seg
Paint 8.26 seg[/quote]
Pero no termino de entender por que hay que dibujarlo todo. ademas hay otra cuestión, si existe un zoom de una parte del dibujo y el resto queda fuera, ¿Hay que dibujarlo también?
Saludos.[/quote]

si todo esta dentro de la pantalla que quieres mostrar, no queda otra que dibujarlos


-----------------------------------
tincho
Viernes, 08 May 2020, 13:36

Re: Comparacion De Perfomance: Paint Vs Cairo
-----------------------------------
[quote user="tercoIDE" post="48397"][quote user="tincho" post="48389"][quote user="tercoIDE" post="48385"]Pero en GambasCAD el problema es otro, los recorridos ForEach para dibujar cada cosa son el bottleneck.
Un dibujo con 54.000 entidades (la mayoria lineas) tardo:
Cairo 7.50 seg
Paint 8.26 seg[/quote]
Pero no termino de entender por que hay que dibujarlo todo. ademas hay otra cuestión, si existe un zoom de una parte del dibujo y el resto queda fuera, ¿Hay que dibujarlo también?
Saludos.[/quote]
si todo esta dentro de la pantalla que quieres mostrar, no queda otra que dibujarlos[/quote]
Tal vez se pueda "engañar" a _Draw dibujando puntos en los casos de el elemento que se intenta dibujar de todas manera se vería como un punto segun el zoom que se este manejando.
Saludos.


-----------------------------------
tincho
Viernes, 08 May 2020, 13:37

Re: Comparacion De Perfomance: Paint Vs Cairo
-----------------------------------
Pero la pregunta la formule mal. ahi va otra vez.
¿Por que es necesario dibujar cada vez todo? no se puede dibujar solo lo que se esta haciendo o modificando y el resto dejarlo como esta?
Saludos.


-----------------------------------
tercoIDE
Viernes, 08 May 2020, 14:07

Re: Comparacion De Perfomance: Paint Vs Cairo
-----------------------------------
[quote user="tincho" post="48400"]Pero la pregunta la formule mal. ahi va otra vez.
¿Por que es necesario dibujar cada vez todo? no se puede dibujar solo lo que se esta haciendo o modificando y el resto dejarlo como esta?
Saludos.[/quote]

en ese caso si, pero si haces pan o zoom no


-----------------------------------
tercoIDE
Viernes, 08 May 2020, 23:55

Re: Comparacion De Perfomance: Paint Vs Cairo
-----------------------------------
una comparativa de Cairo vs openGL 

http://www.mdk.org.pl/2007/8/6/vector-drawing-opengl-shaders-and-cairo


-----------------------------------
tincho
Sabado, 09 May 2020, 12:30

Re: Comparacion De Perfomance: Paint Vs Cairo
-----------------------------------
[quote user="tercoIDE" post="48411"]una comparativa de Cairo vs openGL 
http://www.mdk.org.pl/2007/8/6/vector-drawing-opengl-shaders-and-cairo[/quote]
Si no entendí mal entonces lo mejor que tenemos ahora mismo en gambas es openGL no?
Saludos.


-----------------------------------
tercoIDE
Sabado, 09 May 2020, 15:10

Re: Comparacion De Perfomance: Paint Vs Cairo
-----------------------------------
[quote user="tincho" post="48418"][quote user="tercoIDE" post="48411"]una comparativa de Cairo vs openGL 
http://www.mdk.org.pl/2007/8/6/vector-drawing-opengl-shaders-and-cairo[/quote]
Si no entendí mal entonces lo mejor que tenemos ahora mismo en gambas es openGL no?
Saludos.[/quote]

si, pero incompleto pues tiene un gran faltante que no se porque no fue incluido en su momento: DrawArrays que permite dibujar muchas lineas acumuladas de golpe, en una sola instruccion, para 5.000 lineas no hace falta, pero el DXF que use como Caso de Estudio tiene 300.000

Resumiendo:
Cairo es 7 veces mas rapido que Paint
OpenGL es 100 veces mas rapido que Cairo, siempre un cuando se pueda usar la GPU


-----------------------------------
tercoIDE
Jueves, 14 May 2020, 13:38

Re: Comparacion De Perfomance: Paint Vs Cairo
-----------------------------------
Despues de hacer la consulta en la Lista de Correos, resulta que Qt4 tenia un problema con Paint, que fue resuelto con Qt5. La perfomance ahora es similar en ambos entornos, y esto, sumado a que Cairo va rumbo al abandono, la hace poco recomendable de usar. Va un pantallazo de este mismo tester, pero usando Qt5 en vez de Qt4

[img]https://foro.gambas-es.org/files/images/2399/captura_de_pantalla_de_2020_05_14_09_37_38.png[/img]


-----------------------------------
Shell
Jueves, 14 May 2020, 15:31

Re: Comparacion De Perfomance: Paint Vs Cairo
-----------------------------------
tercoIDE:

[quote]
Despues de hacer la consulta en la Lista de Correos, resulta que Qt4 tenia un problema con Paint, que fue resuelto con Qt5. La perfomance ahora es similar en ambos entornos,
[/quote]

Estuve leyendo por encima la lista internacional.

[quote]
La perfomance ahora es similar en ambos entornos, y esto, sumado a que Cairo va rumbo al abandono, la hace poco recomendable de usar.
[/quote]

En ese test se demuestra que es más rápido Paint.  :roll: 

Esto me parece increíble. Ya que Cairo no se usa solo en Gambas. Tiene un montón de funciones y métodos.
¿ A qué se debe las líneas trazadas ?. ¿ Parece un error ?. Algo falla ahí. Parten rodas de un mismo sitio.
¿ Rectificaste algo del código ?.

Entonces visto el panorama gráfico en Gambas...¿ cual se puede usar ?...pregunta del millón.
Que pena.. :cry: 

Saludos


-----------------------------------
tercoIDE
Jueves, 14 May 2020, 18:05

Re: Comparacion De Perfomance: Paint Vs Cairo
-----------------------------------
las lineas esas intentaron ser una curva de Beizer pero no tiene importancia el grafico sino la perfomance, puedes intentar embellecerlo toqueteando los parámetros

lo unico que se vislumbra con respaldo a largo plazo es Paint con Qt5 

OpenGL no esta aun implementado en Qt5 (para gambas) 

Adjunto el nuevo programa


-----------------------------------
tercoIDE
Domingo, 17 May 2020, 06:44

Re: Comparacion De Perfomance: Paint Vs Cairo Vs OpenGL
-----------------------------------
Ahora vs OpenGL 

OpenGL es 3 veces mas rapido, sin uso de la GPU


