v0.3.2 - 27/03/2012 - Fixed crash of HALT/BOUNDS instructions - Fixed crash if native function is not found - now a runtime error 19 is shown instead v0.3.1 - 26/03/2012 - Fixed crash during compilation if script contains an empty switch statement - Fixed crash if server.cfg contains non-ASCII characters - Added support for LCTRL 6/SCTRL 6 - Added support for CALL.pri/JUMP.pri v0.3 - 25/03/2012 - Now the whole script is compiled at once, when AMX is loaded. If an error occurs during JIT compilation, a message is printed and the code is run as usually i.e. without JIT. - Mad it possible to set the size of stack on which JIT code is executed via the "jit_stack" option in server.cfg. - Reduced CALL overhead of recursive functions, thanks to first item. - Made it possible for JUMP/JCC to jump outside of function bounds. v0.2 - 23/03/2012 - Ported to AsmJit - http://code.******.com/p/asmjit/ - which automatically fixed a few issues v0.1 - 19/03/2012 - Initial release
path/to/procdump.exe -e -ma -x samp-server.exe samp-server.dmp
Test "floatrandom1" finished: 2684ms (3725782.5/sec) Test "IsPlayerAimingAt" finished: 3004ms (332889.5/sec) Test "GetPlayerCameraAimVector" finished: 192ms (5208333.5/sec)
Test "floatrandom1" finished: 715ms (13986014.0/sec) Test "IsPlayerAimingAt" finished: 2301ms (434593.6/sec) Test "GetPlayerCameraAimVector" finished: 22ms (45454548.0/sec)
SA-MP Server: 0.3d Exception At Address: 0x6C1D826E Registers: EAX: 0x00000001 EBX: 0x03FD35E8 ECX: 0xFC2C3F14 EDX: 0x021346B8 ESI: 0x03FA0778 EDI: 0x03ECC7DC EBP: 0x00000000 ESP: 0x0018EAE4 EFLAGS: 0x00010202 Stack: +0000: 0x00000008 0x00000000 0x00000004 0x00000002 +0010: 0x032E6E08 0x0327ECE8 0x00000034 0x0327ECE8 +0020: 0x08A50000 0x00000008 0xFFFFFFFF 0x0018EB2C +0030: 0x6C1D830A 0x00043248 0x03FD35E8 0x0018EFC4 +0040: 0x00000000 0x02185EE0 0x0018EB3C 0x6C1DDC50 +0050: 0x00000034 0x0018EF98 0x0018EFA8 0x004718AE +0060: 0x02185EE0 0x0018EF98 0x00000034 0x00470069 +0070: 0x65747449 0x6E4F5F72 0x79616C50 0x6F437265 +0080: 0x63656E6E 0x00470074 0x00000001 0x032E6CA8 +0090: 0x03FD35F0 0x00000000 0x00000000 0x00000000 +00A0: 0x00000000 0x00000000 0x00000000 0x00000000 +00B0: 0x00000000 0x00000000 0x00000000 0x00000000 +00C0: 0x00000000 0x00000000 0x00000000 0x00000000 +00D0: 0x00000000 0x04980000 0x84001800 0x5E0018D8 +00E0: 0xC86C1BFB 0x000018D8 0xFF000000 0xD5FFFFFF +00F0: 0x00CF9452 0x00400219 0xFFFF0000 0x0000FFFF +0100: 0x00000000 0x00000000 0x00000000 0x8B000000 +0110: 0x00100003 0x00000000 0x00400000 0xFFF00000 +0120: 0x0000FFFF 0x00000000 0x00980000 0x00000074 +0130: 0x00000001 0x03282DCC 0x033D0000 0x033DEFA8
Basically, I can add this to my public server with no worry's and my server will speed up? |
[17:25:12] [debug] Server crashed due to an unknown error
-------------------------- SA-MP Server: 0.3d-R2 Exception At Address: 0x01C60011 Registers: EAX: 0x0012F7CC EBX: 0x0134F770 ECX: 0x0012F7BC EDX: 0x01C60000 ESI: 0x00B1B838 EDI: 0x00000000 EBP: 0x0012F7A4 ESP: 0x0012F7A4 EFLAGS: 0x00010206 Stack: +0000: 0x0012F7BC 0x01C70095 0x0000000C 0x00003E10 +0010: 0x00000001 0x00000010 0x0012F7D0 0x01D00013 +0020: 0x00000008 0x00000000 0x0000B878 0x0012F7FC +0030: 0x00C1826E 0x00000000 0x00000000 0x00B1B838 +0040: 0x00B15528 0x0000000C 0x00B15528 0x01D00000 +0050: 0x00000000 0xFFFFFFFF 0x0012F818 0x00C1830A +0060: 0x0000AAD0 0x0134F770 0x00000000 0x00000000 +0070: 0x01330FB8 0x0012F828 0x00C1DC50 0x0000000C +0080: 0x0012FC84 0x0012FC94 0x004718DE 0x01330FB8 +0090: 0x0012FC84 0x0000000C 0x41435353 0x4F5F464E +00A0: 0x6C69466E 0x53726574 0x70697263 0x696E4974 +00B0: 0x00470074 0x00000000 0x00B155C0 0x0134F774 +00C0: 0x00000000 0x00000000 0x00000000 0x00000000 +00D0: 0x00000000 0x00000000 0x00000000 0x00000000 +00E0: 0x00000000 0x00000000 0x00000000 0x00000000 +00F0: 0x00000000 0x00000000 0x00000000 0x00000000 +0100: 0x5E0012E5 0xAC00BFFB 0x000012E5 0xFF000000 +0110: 0xFCFFFFFF 0xB1E25620 0x00400219 0xFFFF0000 +0120: 0x0000FFFF 0x00000000 0x00000000 0x00000000 +0130: 0x00000000 0x000C0003 0x00000000 0x00400000
[17:33:54] [debug] Server crashed due to an unknown error
Just-in-time compilation (JIT), also known as dynamic translation, is a method to improve the runtime performance of computer programs. |
I love how you make incredible things then just explain them with one paragraph like it's nothing! GREAT job!
![]() |