Shell   01-06-2023, 19:57
#1
Buenas!.

Estoy viendo algunas cosas relacionadas con JIT y su uso en Gambas.

Creo que esto lo he hablado en su día.

Benchmark

Si tenéis las fuentes de gambas.
Cita:Hay un script llamado benchmark.gbs en el directorio benchmark. Sólo tiene que abrir un terminal, cambie a ese directorio, y ejecutarlo con el interprete gambas (gbs3).

Uno de los problemas que se puede tener al ejecutar la parte de Python. Es que busca el interprete por defecto que tengas instalado.
Probablemente la versión 3 "y" los scripts del directorio solo funcionan con la versión 2.

Se puede abrir el script y sustituir todas las líneas que contengan la palabra python por python2.
Existen cinco coincidencias.

De esta forma logro ver la comparación y hacer el test. Os muestro el test en un AMD Ryzen 5 5600. Este tiene 6 núcleos y 12 hilos. ( Ya antiguo ).

[Imagen: KqEwRXG.png]
Lo bueno de Python no es su rapidez. Big Grin
Sorprende la velocidad de Gambas. Otra cosa es que sepa yo usar JIT y cuando usarlo.

Habría que modificar el script para que funcionase en Python3. O tomarlos del lugar donde se encontraron y usar los de la versión 3.

Saludos

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
vuott   02-06-2023, 02:42
#2
(01-06-2023, 19:57)Shell escribió: Python
Otra vez con las Confused serpientes !

« Los horizontes perdidos nunca regresan. » (F. Battiato, 1983)

« Las ondas nunca regresan. » (Genesis: Ripples, 1976)

« Vita non suavis esse potest, nec Mors amara. »  (...vuott)
Shell   02-06-2023, 10:59
#3
(02-06-2023, 02:42)vuott escribió: Otra vez con las Confused serpientes !

  Rolleyes

Que remedio. Ojala Gambas fuera tan popular ( que debería serlo, pero como no mueve dinero ).
¿ Quien con ganas de hacer dinero va a crear libros para una comunidad tan "chiquita" ?
No lo respaldan empresas, instituciones, etc, etc..

De todo se aprende y sirve como ayuda ( Lo cierto es que Python me ayuda a hacer cosas en Gambas ).
A mi en especial me gusta el diseño de videojuegos por simples que puedan ser.
Comparo la librería Pygame ( SDL1/2) con Paint.

La idea es que no les va a funcionar el benchmark de Gambas con solo usar la palabra Python.
Que por cierto, no estaría mal que viéramos el código del benchmark. Sobre todo por que cuando
testea la velocidad en Gambas, usa tres formas.

Esta debe ser la parte que le dice como ejecutar las tres formas.

Código:
...
If Not bGambasOnly Then cResult!python2 += RunScript(sBenchmark & ".py", "python2", bGambasOn
If Not bGambasOnly Then cResult!perl += RunScript(sBenchmark & ".pl", "perl", bGambasOnly)
fTime = RunScript(sBenchmark & ".gbs", "gbs3 -f -U -c", bGambasOnly)
cResult!gambasjit += fTime
cResult!gambasjitwct += fTime - $fCompileTime
cResult!gambas += RunScript(sBenchmark & ".gbs", "gbs3 -c", bGambasOnly)
....

Algo que quiero preguntaros. Fijaros en esto:

cResult!python2

cResult es una colección. Pero ese signo de exclamación, ¿ que quiere decir ?. ¿ la llave o clave ?. ( No puede ser otra opción )
Creía que el símbolo "!" se usaba en bases de datos. No suelo usar ese símbolo o no lo conocía.

Luego está la forma en como se ejecutan los scripts para el test. ( Centrándonos solo en Gambas )

Tenemos:

Código:
fTime = RunScript(sBenchmark & ".gbs", "gbs3 -f -U -c", bGambasOnly)
Cita:-f --fast                use just-in-time compiler
-U --unsafe              allows jit compiler to generate unsafe faster code
-c --nocache             force the script compilation (do not check cache)

Le dice directamente "como" debe ejecutarse "en general" el script ( lo digo por que a lo mejor no tiene procedimientos o funciones concretas que deben ser
"aceleradas" ), ejecuta "todo" el script de test con esas opciones.

El siguiente no os lo muestro, ya que solo usa la opción de -c
Y el primero se ejecutará sin esas opciones.

Saludos

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
  
Usuarios navegando en este tema: 1 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.