[Plugin] JIT | Acelera tu servidor

¿Encontraste un Plugin que te asombró? ¿Qué opinas de mostrárnoslo? ¡Súbelo y compártelo con los demás! También, encuentra gran cantidad de Includes.

Moderador: Ayudantes

Reglas del Foro
  • Si publicas un Plugin de tu autoría, deberás publicar el código fuente del mismo. No olvides utilizar el BBCode [Pawn]Código aquí[/Pawn].
  • Si no eres el autor del plugin/include o has utilizado códigos de otros autores, recuerda colocar los créditos correspondientes. (El plagio es motivo de sanción).
Responder
Avatar de Usuario
MattHudson
Moderador Global
Moderador Global
Mensajes: 1668
Registrado: 31 Oct 2015 18:16
Ubicación: Argentina, Buenos Aires, San Miguel.
Contactar:
Reputación: 89

30 Ago 2017 12:00

¿Que es esto?

Es un compilador tipo "Just-In-Time"(JIT) hecho para AMX creado por el tito Zeex



¿Que hace?

En resumen, traduce el código proveído del AMX al compilar el archivo Pawn a un código nativo tipo x86 en el momento de ejecución para lograr una mayor velocidad en la ejecución del código.Puedes leer mas de este tipo de compilación aquí(no hay una pagina en español que explique esto...)



¿Como instalar?

-Descarga la versión que quieras(por lógica, es mejor la ultima) y que necesites de acuerdo a tu sistema operativo.
-Sigue estos pasos con los incisos "B"
para el archivo del plugin, y los "A" para el del include.



Preguntas frecuentes:
¡Matt!, no entendí un pepino de que para que sirve esto:
-Dicho de forma INCREÍBLEMENTE BRUTA, esto es como el cache de un navegador web. "guarda" datos cuando se usa algo, para cuando lo vuelve a usar lo ejecuta mas rápido.(o como cuando abres Google y ni estas conectado a una red)

¡Matt!, se me crashea el samp-server.exe al usar esto:
-Si usas YSI, lamento decirte que de momento no esta acabada la compatibilidad entre esa famosa librería y este plugin.
Avatar de Usuario
Daniel Lazca
Aprendiz
Aprendiz
Mensajes: 110
Registrado: 06 Dic 2016 21:16
Ubicación: México
Reputación: 1

31 Ago 2017 14:24

Suena interesante, pero lastima eso con el YSI, pero aun asi buen aporte tal vez me sirva mas adelante. -good
Programador Intermedio en C#, HTML5, CSS3, Java y Scripting en Pawn

Programador: 50%
Scripter: 40%
WebMaster: 50%

Avatar de Usuario
MattHudson
Moderador Global
Moderador Global
Mensajes: 1668
Registrado: 31 Oct 2015 18:16
Ubicación: Argentina, Buenos Aires, San Miguel.
Contactar:
Reputación: 89

31 Ago 2017 14:38

Daniel Lazca escribió:
31 Ago 2017 14:24
Suena interesante, pero lastima eso con el YSI, pero aun asi buen aporte tal vez me sirva mas adelante. -good
Si, es una pena. Eso fue algo que me lo imagine cuando me entere de que era el plugin, lo vi muy obvio que pasaria con librerias así jeje.

De todas formas te dejo esta cita a Y_Less en el issue #52 de YSI en relación al plugin JIT de Zeex:
Y_Less escribió:Estoy revisando el código entre YSI y amx_assembly ahora, tratando de hacerlos compatibles con JIT. No estoy seguro de que pueda hacer funcionar las funciones SysregX de dymamic_caii.inc(pero estoy tratando de hacerlo como si fuera un ingenioso "hack" con el resto de la librería. Ya tuve una oportunidad de extraer el código compilado del JIT y su dirección base - #emit zero.pri; #emit lctrl 8). Esto necesitaría otra modificación del plugin JIT. Tratare de encontrar una solución, o solo dejarla a un lado ya que no lo uso por ahora(se que otros si lo usan, pero mi objetivo primario es hacer funcional a YSI, pero es algo que requiere algunas partes del amx_assembly configuradas para funcionar).
Básicamente, esta intentando hacerlo compatible. Su principal problema por ahora es el amx_assembly. Si quieres mantenerte al día de esto, revisa la pagina de lanzamientos de YSI y del plugin JIT constantemente. O incluso el perfil de Misiur, quien también esta ayudando moralmente en esto.


Gracias por comentar.
Última edición por MattHudson el 02 Sep 2017 07:28, editado 1 vez en total.
MarkFerg
Aprendiz
Aprendiz
Mensajes: 13
Registrado: 28 Ago 2017 13:01
Reputación: 0

01 Sep 2017 19:34

Estas diciendo que si le implemento esto a mi servidor ira fluido ? sin lag ni bajones de fps?
-dance4

No entendí un carajo -nosweat -852
Avatar de Usuario
MattHudson
Moderador Global
Moderador Global
Mensajes: 1668
Registrado: 31 Oct 2015 18:16
Ubicación: Argentina, Buenos Aires, San Miguel.
Contactar:
Reputación: 89

26 Nov 2017 12:59

MarkFerg escribió:
01 Sep 2017 19:34
Estas diciendo que si le implemento esto a mi servidor ira fluido ? sin lag ni bajones de fps?
-dance4

No entendí un carajo -nosweat -852
Te dejo esto escrito por Mauzen.

"Ehm, okey. Dos palabras: Gran trabajo.
Esto realmente funciona, puede acelerar las funciones mas del 300%, en mi opinion esto deberia ser usado por todo servidor si funcionara libre de bugs(que con el progreso de las actualizaciones de plugin se ira logrando), y podria llegar a ser integrado en amx loader de SA-MP.


Dejo algunos tests de algunas funciones(floatrandom es un calculo de puro Pawn, el resto son funciones mas o menos nativas)

Sin JIT:
Test "floatrandom1" terminada en: 2684ms (3725782.5/seg)
Test "IsPlayerAimingAt" terminada en: 3004ms (332889.5/seg)
Test "GetPlayerCameraAimVector" terminada en: 192ms (5208333.5/seg)

Con JIT(en Windows):
Test "floatrandom1" terminada en: 715ms (13986014.0/seg)
Test "IsPlayerAimingAt" terminada en: 2301ms (434593.6/seg)
Test "GetPlayerCameraAimVector" terminada en: 22ms (45454548.0/seg)"
Avatar de Usuario
Graber
Junior
Junior
Mensajes: 194
Registrado: 10 Abr 2016 19:16
Contactar:
Reputación: 22

26 Nov 2017 13:12

Una mejor explicación sería mejor:

El AMX es cargado en una máquina virtual que usa el SAMP. Esta máquina virtual lee el AMX y interpreta el código compilado a AMX, lo cual es lento. El JIT lo que hace es convertir directamente el AMX hacia x86 Assembly (código nativo del ordenador) así se evita la lentitud de tener que interpretarlo.

Así funciona, no es un "cache" por un lado aunque es similar lo que hace este plugin.
Imagen

No doy soporte por privado y no estoy disponible para ningún trabajo/proyecto/lo que sea. Eviten MPs de ese tema

Avatar de Usuario
MattHudson
Moderador Global
Moderador Global
Mensajes: 1668
Registrado: 31 Oct 2015 18:16
Ubicación: Argentina, Buenos Aires, San Miguel.
Contactar:
Reputación: 89

26 Nov 2017 13:21

Graber escribió:
26 Nov 2017 13:12
Así funciona, no es un "cache" por un lado aunque es similar lo que hace este plugin.
No entendiste lo que quise decir con:
MattHudson escribió: "Dicho de forma INCREÍBLEMENTE BRUTA"
De todas formas, muchas gracias por reforzar la explicación. Se agradece infinitamente mas explicaciones para que cada usuario pueda entender en su totalidad que esta usando en su código
Avatar de Usuario
Graber
Junior
Junior
Mensajes: 194
Registrado: 10 Abr 2016 19:16
Contactar:
Reputación: 22

27 Nov 2017 08:08

Si perdón, no habían considerado Eda parte jaja
Imagen

No doy soporte por privado y no estoy disponible para ningún trabajo/proyecto/lo que sea. Eviten MPs de ese tema

Avatar de Usuario
alekogalcraftt
Aprendiz
Aprendiz
Mensajes: 37
Registrado: 13 Nov 2015 11:30
Reputación: 0

05 Abr 2018 05:35

¿Alguna novedad para utilizarlo con YSI?
También el tonto tiene pensamientos inteligentes, solo que no se entera.

Avatar de Usuario
#Fede
Moderador Global
Moderador Global
Mensajes: 3124
Registrado: 12 Ene 2015 06:32
Ubicación: Montevideo, Uruguay.
Reputación: 75

06 Abr 2018 08:13

alekogalcraftt escribió:
05 Abr 2018 05:35
¿Alguna novedad para utilizarlo con YSI?
Esta básicamente confirmado (por Y_Less) que nunca seran compatible (A menos que tenga el ganas de escribir otra versión de YSI que no puede usar ninguna librería de la actual).

El problema radica en que YSI usa "run-time code rewriting", que es básicamente y explicado de forma bruta que el código se reescribe mientras se esta corriendo YSI. Como el JIT ya lo tiene cargado, el código no puede reescribirse y por eso son incompatibles.
Estoy fuera de SA-MP, no me envíen mensajes privados invitándome a proyectos.


scriptnoob escribió:Cada día se va mejorando el foro, nuestro objetivo es como el de una empresa:

Misión: Brindar ayuda y aportes a los usuarios.
Visión: Ser la página de mayor calidad de servicio de soporte referidos a lenguajes de programación.
Lee las reglas del foro para evitar ser sancionado




Avatar de Usuario
MattHudson
Moderador Global
Moderador Global
Mensajes: 1668
Registrado: 31 Oct 2015 18:16
Ubicación: Argentina, Buenos Aires, San Miguel.
Contactar:
Reputación: 89

06 Abr 2018 09:38

FedeNet escribió:
06 Abr 2018 08:13
alekogalcraftt escribió:
05 Abr 2018 05:35
¿Alguna novedad para utilizarlo con YSI?
Esta básicamente confirmado (por Y_Less) que nunca seran compatible (A menos que tenga el ganas de escribir otra versión de YSI que no puede usar ninguna librería de la actual).

El problema radica en que YSI usa "run-time code rewriting", que es básicamente y explicado de forma bruta que el código se reescribe mientras se esta corriendo YSI. Como el JIT ya lo tiene cargado, el código no puede reescribirse y por eso son incompatibles.
Alex(Y_Less) ya viene re-escribiendo el código de YSI(en los archivos necesarios, no en todos) para poder ejecutar la misma con el método JIT hace ya un tiempo(de hecho, ya termino algún que otro include). Solo que, como ya se sabe, es demasiado código que lleva su debido tiempo re-escribirlo. Por lo cual , pienso yo, que se va a tener que esperar mucho mas para que la librería entera sea compatible con este plugin.
ChrisPa
Mensajes: 101
Registrado: 19 Abr 2018 20:37
Ubicación: Mexico
Contactar:
Reputación: -5

25 Abr 2018 14:25

Buen aporte tal vez lo use, dejando créditos claro.
Si te ayude por favor déjame +1 =) Se agradece, yo are lo mismo cuando tu me ayudes

Avatar de Usuario
Jeffersonm11
Aprendiz
Aprendiz
Mensajes: 43
Registrado: 08 Sep 2018 07:13
Reputación: 0

16 Abr 2019 18:11

Funciona con pawncmd?
Las cosas fluirán mejor si tu actuar empieza a cambiar.
Responder