Giter Club home page Giter Club logo

samp-plugin-profiler's People

Contributors

dayvison avatar myudev avatar zeex avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

samp-plugin-profiler's Issues

Make Profiler_Dump log writing optional

Currently, my gamemode is having some issues with CPU usage after running for 2+ hours, which cause the server to freeze (CPU% = 100%) and the only way to stop it is to force kill its process, which also causes Profiler plugin to write nothing to the profiler file.

The only way I found to properly track down gamemode profiler is setting a Timer which calls Profiler_Dump() every X seconds, the problem is that since this function writes some lines in to the server log and I have to run the gamemode for some hours to get to the freezing point, the log is 90% filled with profiler writing info and hard to read. My request is to create an argument to Profiler_Dump() function to prevent it from writing anything to the log, like Profiler_Dump(bool: verbose = true).

Крэш при старте

Крэшит при старте, вот что показывает crasdetect:
[16:38:41] [profiler] Loaded debug info from 'gamemodes\public.amx'
[16:38:41] [profiler] Attached profiler to 'gamemodes\public.amx' OnGameModeInit
[16:38:41] [debug] Server crashed while executing public.amx
[16:38:41] [debug] AMX backtrace:
[16:38:41] [debug] #0 00008858 in public SSCANF_OnGameModeInit () from public.amx
[16:38:41] [debug] #1 00001920 in public OnGameModeInit () from public.amx
[16:38:42] [debug] Native backtrace:
[16:38:42] [debug] #0 6a9037b4 in ?? () from C:\Users\User\Desktop\PUBLIC\plugins\profiler.DLL
[16:38:42] [debug] #1 6a8fd280 in ?? () from C:\Users\User\Desktop\PUBLIC\plugins\profiler.DLL
[16:38:42] [debug] #2 6a8fda4f in ?? () from C:\Users\User\Desktop\PUBLIC\plugins\profiler.DLL
[16:38:42] [debug] #3 6a8fc888 in ?? () from C:\Users\User\Desktop\PUBLIC\plugins\profiler.DLL
[16:38:42] [debug] #4 6a8f634d in ?? () from C:\Users\User\Desktop\PUBLIC\plugins\profiler.DLL
[16:38:42] [debug] #5 6a9d813b in ?? () from C:\Users\User\Desktop\PUBLIC\plugins\crashdetect.D LL
[16:38:42] [debug] #6 6a9d0091 in ?? () from C:\Users\User\Desktop\PUBLIC\plugins\crashdetect.D LL
[16:38:42] [debug] #7 6a9d610a in ?? () from C:\Users\User\Desktop\PUBLIC\plugins\crashdetect.D LL
[16:38:42] [debug] #8 6a8fca7b in ?? () from C:\Users\User\Desktop\PUBLIC\plugins\profiler.DLL
[16:38:42] [debug] #9 6a8f6664 in ?? () from C:\Users\User\Desktop\PUBLIC\plugins\profiler.DLL
[16:38:42] [debug] #10 0046e194 in ?? () from C:\Users\User\Desktop\PUBLIC\samp-server.exe
[16:38:42] [debug] #11 65646f6d in ?? () from C:\Users\User\Desktop\PUBLIC\samp-server.exe
[16:38:42] [debug] #12 75702f73 in ?? () from C:\Users\User\Desktop\PUBLIC\samp-server.exe
[16:38:42] [debug] #13 63696c62 in ?? () from C:\Users\User\Desktop\PUBLIC\samp-server.exe
[16:38:42] [debug] #14 786d612e in ?? () from C:\Users\User\Desktop\PUBLIC\samp-server.exe

I have this error, I would like to resolve it.

I have this error, I would like to resolve it.


----------
Loaded log file: "server_log.txt".
----------

SA-MP Dedicated Server
----------------------
v0.3.7-R2, (C)2005-2015 SA-MP Team

[22:22:08] language = ""  (string)
[22:22:08] 
[22:22:08] Server Plugins
[22:22:08] --------------
[22:22:08]  Loading plugin: crashdetect.so
[22:22:08]   CrashDetect plugin 4.20
[22:22:08]   Loaded.
[22:22:08]  Loading plugin: sscanf.so
[22:22:08] 

[22:22:08]  ===============================

[22:22:08]       sscanf plugin loaded.     

[22:22:08]         Version:  2.10.2        

[22:22:08]    (c) 2020 Alex "Y_Less" Cole  

[22:22:08]  ===============================

[22:22:08]   Loaded.
[22:22:08]  Loading plugin: streamer.so
[22:22:08] 

*** Streamer Plugin v2.9.4 by Incognito loaded ***

[22:22:08]   Loaded.
[22:22:08]  Loading plugin: mysql.so
[22:22:08]  >> plugin.mysql: R41-4 successfully loaded.
[22:22:08]   Loaded.
[22:22:08]  Loading plugin: log-core.so
[22:22:08]   Plugin does not conform to architecture.
[22:22:08]   Failed.
[22:22:08]  Loading plugin: mapandreas.so
[22:22:08]   Loaded.
[22:22:08]  Loaded 5 plugins.

[22:22:08] 
[22:22:08] Filterscripts
[22:22:08] ---------------
[22:22:08]   Loaded 0 filterscripts.

[22:22:09]   Filterscript '../scriptfiles/callbackfix.amx' loaded.
[22:22:09] [debug] Long callback execution detected (hang or performance issue)
[22:22:09] [debug] AMX backtrace:
[22:22:09] [debug] #0 0001f540 in Opcode:UnrelocateOpcode (Opcode:opcode=-147677621) at C:\Users\Pichau\Desktop\SA-MP\dependencies\.resources\samp-plugin-crashdetect-ff05b5\..\..\amx_assembly\opcode.inc:830
[22:22:09] [debug] #1 000260e8 in CodeScanRunFastPrescan (&proc=@01d1ae50 -5900220, &nextaddr=@01d1ae4c -5904724, searchFuncAddr=131536) at C:\Users\Pichau\Desktop\SA-MP\dependencies\.resources\samp-plugin-crashdetect-ff05b5\..\..\amx_assembly\codescan.inc:827
[22:22:09] [debug] #2 0002655c in bool:CodeScanRunFast (csState[CodeScanner:164]=@01d1b66c, searchFuncAddr=131536) at C:\Users\Pichau\Desktop\SA-MP\dependencies\.resources\samp-plugin-crashdetect-ff05b5\..\..\amx_assembly\codescan.inc:866
[22:22:09] [debug] #3 00028468 in AddressofResolve () at C:\Users\Pichau\Desktop\SA-MP\dependencies\.resources\samp-plugin-crashdetect-ff05b5\..\..\amx_assembly\addressof_jit.inc:130
[22:22:09] [debug] #4 00028aec in public AMX_OnCodeInit () at C:\Users\Pichau\Desktop\SA-MP\dependencies\YSI-Includes\YSI_Data\y_foreach\..\..\YSI_Coding\y_va\..\..\YSI_Core\y_core\y_thirdpartyinclude.inc:367
[22:22:09] [debug] #5 00018d14 in public Debug_OnCodeInit () at C:\Users\Pichau\Desktop\SA-MP\dependencies\YSI-Includes\YSI_Data\y_foreach\..\..\YSI_Core\y_core\y_amx_impl.inc:206
[22:22:09] [debug] #6 00018668 in public ScriptInit_OnCodeInit () at C:\Users\Pichau\Desktop\SA-MP\dependencies\YSI-Includes\YSI_Data\y_foreach\..\..\YSI_Core\y_core\y_debug_impl.inc:644
[22:22:09] [debug] #7 00017f1c in ScriptInit_CallOnCodeInit (bool:jit=false) at C:\Users\Pichau\Desktop\SA-MP\dependencies\YSI-Includes\YSI_Data\y_foreach\..\..\YSI_Core\y_core\y_scriptinit_impl.inc:392
[22:22:09] [debug] #8 000181fc in public SSCANF_OnGameModeInit () at C:\Users\Pichau\Desktop\SA-MP\dependencies\YSI-Includes\YSI_Data\y_foreach\..\..\YSI_Core\y_core\y_scriptinit_impl.inc:588
[22:22:09] [debug] #9 000117a4 in public FIXES_OnGameModeInit ()  at C:\Users\Pichau\Desktop\SA-MP\dependencies\.resources\sscanf-019253\sscanf2.inc:222
[22:22:09] [debug] #10 00004c0c in public OnGameModeInit () at C:\Users\Pichau\Desktop\SA-MP\dependencies\sa-mp-fixes\fixes.inc:6689
[22:22:27] MapFix by Nexius v4.2.1 loaded (include version).
[22:22:27]  
[22:22:27] --------------------------------------
[22:22:27]  Anticheat Nex-AC carregado!
[22:22:27]  Anticheat versão: 1.9.53
[22:22:27]  Autor: Nexius (PT-BR by NicK_)
[22:22:27] --------------------------------------

[22:22:28] << CASAS >>: 501 casas foram carregadas.
[22:22:28] FAMÍLIAS: 0 famílias carregadas!
[22:22:28] [Baús]: 409 caixas de itens foram carregadas...
[22:22:29] [Lixeira]: 20 lixeiras foram carregadas...
[22:22:29] [PORTAO]: 757 portoes foram carregados...
[22:22:29] Musica login: http://www.brasilplaystart.com.br/sounds/musica_login.mp3
[22:22:29] >	Concessionária          : 70 Carros
[22:22:29] > 	Fazendas            	: 14 Carregadas
[22:22:29] Reading File: blank
[22:22:29] Reading File: ArquivosBPS/Props/Empresas/businesses.txt
[22:22:29] Reading File: ArquivosBPS/Props/Empresas/banks.txt
[22:22:29] >	Comércios            	: 84 Carregados
[22:22:29] >	Organizações     		: 35 Carregadas
[22:22:29] >	Pasta Contas     		: ArquivosBPS/Contas/%s.ini
[22:22:29] >	Senha Admin       		: bpsfoda
[22:22:29] [SPRAY]: 99 spray tags foram carregadas...
[22:22:29]  
[22:22:29] >				por: dimmy_scarface e Theus_Crazzy
[22:22:29] -------------------------------------------------------------------------------------------
[22:22:29] 
GameMode Brasil New Start | carregada com sucesso!
[22:22:29] Number of vehicle models: 103
[22:22:29] DETRAN: 77 vagas do pátio foram carregadas

server crash

Aborted
Segmentation fault
samp03svr: /home/q/Zeex-samp-profiler-plugin-b671653/src/amx_profiler/profiler.cpp:84: int amx_profiler::Profiler::amx_Debug(int ()(AMX)): Assertion `call_stack_.GetTop()->function()->type() == "normal"' failed.

Error while excecuting AMX file.

[05:30:37] Successfully initiated the gamemode...
[05:30:37] [debug] Server crashed while executing NGRP.amx
[05:30:37] [debug] AMX backtrace:
[05:30:37] [debug] Native backtrace:
[05:30:37] [debug] #0 701e51e2 in ?? () from plugins\profiler.DLL
[05:30:37] [debug] #1 701e5976 in ?? () from plugins\profiler.DLL
[05:30:37] [debug] #2 701e0116 in ?? () from plugins\profiler.DLL
[05:30:37] [debug] #3 701dab72 in ?? () from plugins\profiler.DLL
[05:30:37] [debug] #4 70972278 in ?? () from plugins\crashdetect.DLL
[05:30:37] [debug] #5 7096a0d7 in ?? () from plugins\crashdetect.DLL
[05:30:37] [debug] #6 7096c74a in ?? () from plugins\crashdetect.DLL
[05:30:37] [debug] #7 70414509 in ?? () from plugins\streamer.DLL
[05:30:37] [debug] #8 701e5a4b in ?? () from plugins\profiler.DLL
[05:30:37] [debug] #9 701e0dcb in ?? () from plugins\profiler.DLL
[05:30:37] [debug] #10 701dabba in ?? () from plugins\profiler.DLL
[05:30:37] [debug] #11 004746be in ?? () from samp-server.exe
[05:30:37] [debug] #12 004010b6 in ?? () from samp-server.exe
[05:30:37] [debug] #13 7096c6fa in ?? () from plugins\crashdetect.DLL
[05:30:37] [debug] #14 701e5965 in ?? () from plugins\profiler.DLL
[05:30:37] [debug] #15 701e0116 in ?? () from plugins\profiler.DLL
[05:30:37] [debug] #16 701dab72 in ?? () from plugins\profiler.DLL
[05:30:37] [debug] #17 70972278 in ?? () from plugins\crashdetect.DLL
[05:30:37] [debug] #18 7096a0d7 in ?? () from plugins\crashdetect.DLL
[05:30:37] [debug] #19 7096c74a in ?? () from plugins\crashdetect.DLL
[05:30:37] [debug] #20 70414509 in ?? () from plugins\streamer.DLL
[05:30:37] [debug] #21 701e5a4b in ?? () from plugins\profiler.DLL
[05:30:37] [debug] #22 701e0dcb in ?? () from plugins\profiler.DLL
[05:30:37] [debug] #23 701dabba in ?? () from plugins\profiler.DLL
[05:30:37] [debug] #24 0046f654 in ?? () from samp-server.exe
[05:30:37] [debug] #25 65646f6d in ?? () from samp-server.exe
[05:30:37] [debug] #26 474e2f73 in ?? () from samp-server.exe
[05:30:37] [debug] #27 612e5052 in ?? () from samp-server.exe

Unsure why I am getting this, any ideas on them codes?

Profiler not outputting any data

I recently updated from a much older version of this plugin to the most recent one and now it won't output any data when the server is closed. The usual gamemode-profile.html file is created, but it only contains the HTML for the column headers.

profiler

The server log shows the plugin attaching to the gamemode, no errors there; It also shows no errors when the server closes, just that the profiler is writing data.

Any idea why this might be happening?

Crash in amxprof::CallGraph::AddCallee()

As reported here:

http://forum.sa-mp.com/showthread.php?p=3194437#post3194437

Stacktrace from crashdetect:

[debug] #0 f740666b in _ZN10StackTraceC1EPv () from plugins/crashdetect.so
[debug] #1 f73ff5bf in _ZN11CrashDetect20PrintNativeBacktraceERSoPv () from plugins/crashdetect.so
[debug] #2 f74008fc in _ZN11CrashDetect20PrintNativeBacktraceEPv () from plugins/crashdetect.so
[debug] #3 f74013e6 in _ZN11CrashDetect11OnExceptionEPv () from plugins/crashdetect.so
[debug] #4 f74062bc in ?? () from plugins/crashdetect.so
[debug] #5 f772b410 in ?? ()
[debug] #6 f61fba1d in _ZN7amxprof9CallGraph9AddCalleeEPNS_18FunctionStatisticsE () from plugins/profiler.so
[debug] #7 f61f7abf in _ZN7amxprof8Profiler8ExecHookEPiiPFiP6tagAMXS1_iE () from plugins/profiler.so
[debug] #8 f61f20eb in _ZN5hooks8amx_ExecEP6tagAMXPii () from plugins/profiler.so
[debug] #9 f62da4e1 in amx_Exec () from plugins/timerfix.so
[debug] #10 f62db84c in _Z12executeTimerP5timer () from plugins/timerfix.so
[debug] #11 f62db8cc in ProcessTick () from plugins/timerfix.so
[debug] #12 080cf9f2 in ?? () from samp03svr

Conflict with gamemode/other plugins

Hi.

Thanks for your creation. However I'm having trouble getting the profiler to work for my gamemode, which is quite extensive when it comes to plugin usage and functionality. Then again, I'm sure I'm not the only one with such gamemode who has tried to use profiler plugin. (I am running it locally on Windows)

The plugins that I use are:

  • Streamer plugin 2.6 (doesn't use gdk for callback hooks)
  • MySQL plugin by BlueG R6-2
  • sscanf (not update 2.5, the one before, no gdk dependency?)
  • GVars 1.3
  • CTime library
  • CSTL

Here's what my server.cfg looks like:
echo Executing Server Config... lanmode 0 port 7777 hostname SFSE announce 1 query 1 weburl www.SF-SE.net maxnpc 10 onfoot_rate 40 incar_rate 40 weapon_rate 40 stream_distance 300.0 stream_rate 1000 maxplayers 24 rcon_password whatthefuckisthisshit gamemode0 SFSE plugins profiler streamer mysql sscanf gvar CTime cstl password testsvr profile_gamemode 1 profile_format html call_graph 1

There are 2 lines in the log associated to the profiler:
`[20:04:32] [profiler] Loaded debug info from 'gamemodes\SFSE.amx'
[20:04:32] [profiler] Attached profiler to 'gamemodes\SFSE.amx'``

It crashes instantly after:
[20:04:32] Number of vehicle models: 113

And here is what crashinfo tells me:


SA-MP Server: 0.3d

Exception At Address: 0x0046BB30

Registers:

EAX: 0x00000000 EBX: 0x0012FB18 ECX: 0x004E522D EDX: 0xFFFFFFFF

ESI: 0x03E7EFA0 EDI: 0x004E522D EBP: 0x00000000 ESP: 0x0012FA8C

EFLAGS: 0x00010286

Stack:

+0000: 0x004E522D 0x00000004 0x00000000 0x0046C0A6

+0010: 0x0012FB18 0x0012FAC0 0x03E7EFA0 0x00000000

+0020: 0xFFFFFFFF 0x004E6220 0x0131B270 0x0012FBD4

+0030: 0x004704F0 0x00000FF2 0x00000007 0xFFFFFFFF

+0040: 0x00000000 0x01856F68 0x0012FB64 0x0012FAF8

+0050: 0x727A0269 0x01930000 0x0365C374 0x036618F0

+0060: 0x01856F68 0x0012FB64 0x0012FB24 0x73004B74

+0070: 0x0012FB34 0x00000000 0x0365C328 0x0365C368

+0080: 0x03657990 0x01848D40 0x0046DCC2 0x004E522D

+0090: 0x00000FFF 0x02EA77DC 0x0131B270 0x02F15938

+00A0: 0x0012FB4C 0x0131B270 0x00028804 0x0131B270

+00B0: 0x02F15938 0x00470523 0x0131B270 0x02F15938

+00C0: 0x00000004 0x0012FB68 0x00000000 0x00000000

+00D0: 0x00000100 0x017BDC90 0x0131B270 0x00000000

+00E0: 0x004010B6 0x0131B270 0x02F15960 0x01848D40

+00F0: 0x73011BA2 0x0131B270 0x0000000A 0x0012FC44

+0100: 0x02F15938 0x6FDAE8D4 0x0131B270 0x02E7EFA0

+0110: 0x02D84684 0x0012FBE8 0x017BDCB0 0x6FDAE8E0

+0120: 0x0131B270 0x02E7EFA0 0x02D84684 0x0193F7B8

+0130: 0x02E7EFA0 0x0189FB08 0x004704F0 0x0012FC10

Unloading another file, profiler dumps different file.

[23:47:27]   Filterscript 'Missions/fat_n_f_2012.amx' loaded.
[23:51:50] [profiler] Dumping profiling statistics for filterscripts/Bans
[23:51:50] [profiler] Total functions logged: 33 (native: 19, public: 4, other: 10)
[23:51:50] [profiler] Total function calls logged: 2463
[23:51:50] [profiler] Writing profile to filterscripts/Bans-profile.html
[23:51:50]   Filterscript 'Missions/fat_n_f_2012.amx' unloaded.
[23:51:50] [profiler] Attached profiler to filterscripts/Bans
[23:51:50] [profiler] Started profiling filterscripts/Bans

Just noticed this and see it's odd.

server crash

hi, i tried to use this plugin but it keep crashing the server after starting a few seconds..
and get this cd log: https://hastebin.com/zokesuguzi.pas

plugins: profiler v2.15, crashdetect v4.18, pawnraknet 1.0.2, streamer 2.9.3, sscanf 2.8.2, pawn-memory
server: centos linux v7.4.1708

Profiler_Dump() crashed

Profiler v2.14
Profiler_Dump() crashed in my PC (Windows 7), i've even tried to run the plugin with grand larceny gamemode and it's crashed too whenever i try to call this function.
But, in the previous version (v2.13), Profiler_Dump() worked fine.

Here is my server_log:

[16:20:07] [profiler] Started profiling gamemodes/grandlarc
[16:20:07] Number of vehicle models: 173
[16:20:18] [profiler] Dumping profiling statistics for gamemodes/grandlarc
and samp_server.exe crashed

not getting any data / crash with profiler plugin

  1. streamer is up to date, so are almost all plugins except the mysql one.

plugins line:

plugins crashdetect MapAndreas streamer mysql profiler TranslationPlugin MathPlugin rwthread socket gvar PlayerDataRecorder KeyVal QIterator nativechecker

Plugin initialization:

v0.3z-R4, (C)2005-2014 SA-MP Team

[22:21:42]
[22:21:42] Server Plugins
[22:21:42] --------------
[22:21:42] Loading plugin: crashdetect
[22:21:42] CrashDetect v4.15 is OK.
[22:21:42] Loaded.
[22:21:42] Loading plugin: MapAndreas
[22:21:42] Loaded.
[22:21:42] Loading plugin: streamer
[22:21:42]

*** Streamer Plugin v2.7.5.2 by Incognito loaded ***

[22:21:42] Loaded.
[22:21:42] Loading plugin: mysql
[22:21:42] >> plugin.mysql: R35 successfully loaded.
[22:21:42] Loaded.
[22:21:42] Loading plugin: profiler
[22:21:42] Profiler v2.12.1 is OK.
[22:21:42] Loaded.
[22:21:42] Loading plugin: TranslationPlugin
[22:21:42] Translations plugin loaded.
[22:21:42] Loaded.
[22:21:42] Loading plugin: MathPlugin
[22:21:42] Math Plugin Loaded.
[22:21:42] Loaded.
[22:21:42] Loading plugin: rwthread
[22:21:42] Threaded Read/Write/Execute plugin loaded.
[22:21:42] Loaded.
[22:21:42] Loading plugin: socket
[22:21:42] Socket plugin v0.2b loaded.
[22:21:42] Loaded.
[22:21:42] Loading plugin: gvar
[22:21:42]

*** GVar Plugin v1.3 by Incognito loaded ***

[22:21:42] Loaded.
[22:21:42] Loading plugin: PlayerDataRecorder
[22:21:42] Player Data Recorder version 1.1.5 loaded. Created 500 player instances.
[22:21:42] Loaded.
[22:21:42] Loading plugin: KeyVal
[22:21:42] KeyVal version 1.2.0 loaded.
[22:21:42] Loaded.
[22:21:42] Loading plugin: QIterator
[22:21:42] QIterator version 1.0.2 loaded.
[22:21:42] Loaded.
[22:21:42] Loading plugin: nativechecker
[22:21:42] Loaded.
[22:21:42] Loaded 14 plugins.

profiler attach = ok:

[22:21:42] [profiler] Attached profiler to gamemodes/PartyGM.amx

crash:

[22:21:50] [debug] #0 6c9191f2 in ?? () from plugins\profiler.DLL
[22:21:50] [debug] #1 6c919a6c in ?? () from plugins\profiler.DLL
[22:21:50] [debug] #2 6c91198e in ?? () from plugins\profiler.DLL
[22:21:50] [debug] #3 6c914e0a in ?? () from plugins\profiler.DLL
[22:21:50] [debug] #4 5f92a650 in ?? () from plugins\mysql.DLL
[22:21:50] [debug] #5 004693c6 in ?? () from samp-server.exe
[22:21:50] [debug] #6 0048816b in ?? () from samp-server.exe
[22:21:50] [debug] #7 00496ca1 in ?? () from samp-server.exe
[22:21:50] [debug] #8 00496cb1 in ?? () from samp-server.exe

With a earlier version of streamer the server did not crash but it also did not output any data (blank files).

i'm also availible on irc as always - nick JernejL_Work

Bad public color on *.gv

Sometimes we have lines like this: "OnFilterScriptInit" [color="nan, nan, 1", shape=octagon];
Something wrong here:
auto time = node->info()->GetSelfTime();
auto ratio = static_cast(time) / static_cast(max_time);
// We encode color in HSB.
auto hsb = std::make_tuple(
(1.0 - ratio) * 0.6, // hue
(ratio * 0.9) + 0.1, // saturation
1.0 // brightness
);

temporary correct to:
auto ratio = 0;
if (max_time != 0)
ratio = static_cast(time) / static_cast(max_time);

because can't understand syntax of
graph.Traverse( [ &max_time, this, &graph ](const std::shared_ptr &node) {

Is it a unusual function call or function declaration? I see such thing at a the first time.

P.S. I have set gv font size from 10.8 to 20 for me, as at my huge gamemode the letters was undereadble.

No output from profiler

Profiler 2.12.1
Linux 3.10.23-xxxx-std-ipv6-64 on x86_64
CentOS Linux 6.6

Gamemode is compiled with -d3 flag.

http://prntscr.com/7mbhki

server.cfg

lanmode 0
rcon_password t287f
maxplayers 200
port 7777
hostname Imperial Roleplay
gamemode0 imperial
filterscripts fix
plugins crashdetect.so sscanf.so mysql.so streamer.so timerfix.so audio.so MapAndreas.so YSF.so bcrypt-samp.so gvar.so imrp_ol.so nativechecker.so profiler.so
announce 1
query 1
weburl www.im-rp.eu
maxnpc 25
onfoot_rate 40
incar_rate 40
weapon_rate 40
stream_distance 300.0
stream_rate 1000
messageholelimit 3000
logtimeformat [%d.%m.%Y %H:%M:%S]
language Eesti keel
profile_gamemode 1

Some plugin version:
GVar Plugin v1.3 by Incognito loaded
plugin.bcrypt v2.2.3 was loaded.
YSF - kurta999 version R12 loaded
Audio Plugin v0.5 R2 by Incognito loaded
plugin.mysql: R39-3 successfully loaded.
Streamer Plugin v2.7.7 by Incognito loaded
CrashDetect v4.15.1 is OK.

[profiler] Attached profiler to gamemodes/imperial.amx

What's the problem?

Not all publics are logged

I've noticed that a lot of my public functions are missing from the profiler dump. I have then discovered that the only functions that are being logged are the ones called with SetTimer(Ex), mysql_tquery and CallLocal/RemoteFunction (+ callbacks).

Any functions that are called from within another function are not logged at all!
Is there any workaround for this, besides converting everything to CallLocalFunction?

compiling instructions

How exactly do i compile this.. windows and linux? i'll try some things in source to figure out why the profiler fails to work on my script / server.

Call graph enabled crashes server when using y_hooks

Summary

When using y_hooks, enabling call graph will crash the server

Server log

----------
Loaded log file: "server_log.txt".
----------

SA-MP Dedicated Server
----------------------
v0.3.7, (C)2005-2015 SA-MP Team

[14:32:12] 
[14:32:12] Server Plugins
[14:32:12] --------------
[14:32:12]  Loading plugin: streamer
[14:32:12] 

*** Streamer Plugin v2.6.1 by Incognito loaded ***

[14:32:12]   Loaded.
[14:32:12]  Loading plugin: sscanf
[14:32:12] 

[14:32:12]  ===============================

[14:32:12]       sscanf plugin loaded.     

[14:32:12]    (c) 2009 Alex "Y_Less" Cole

[14:32:12]    0.3d-R2 500 Players "dnee"

[14:32:12]  ===============================

[14:32:12]   Loaded.
[14:32:12]  Loading plugin: audio
[14:32:12] 

*** Audio Plugin v0.5 R2 by Incognito loaded ***

[14:32:12]   Loaded.
[14:32:12]  Loading plugin: Whirlpool
[14:32:12]  
[14:32:12]  ==================
[14:32:12]  
[14:32:12]   Whirlpool loaded
[14:32:12]  
[14:32:12]  ==================
[14:32:12]  
[14:32:12]   Loaded.
[14:32:12]  Loading plugin: mysql
[14:32:12]  >> plugin.mysql: R39-3 successfully loaded.
[14:32:12]   Loaded.
[14:32:12]  Loading plugin: crashdetect
[14:32:12]   CrashDetect v4.15.1 is OK.
[14:32:12]   Loaded.
[14:32:12]  Loading plugin: profiler
[14:32:12]   Profiler v2.12.1 is OK.
[14:32:12]   Loaded.
[14:32:12]  Loaded 7 plugins.

[14:32:12] 
[14:32:12] Filterscripts
[14:32:12] ---------------
[14:32:12]   Loaded 0 filterscripts.

[14:32:13] [profiler] Attached profiler to gamemodes/ugrp.amx
[14:32:13] Hooks_OnScriptInit called
[14:32:13] AMX_GetPointerPrefix called: 0, 0, 0, 1215913792
[14:32:13] AMX_GetEntryPrefix called: 0, 0, 0, 1215913792
[14:32:13] AMX_GetBaseCount called: 0, 0, 0
[14:32:13] AMX_GetPointerPrefix called: 0, 694, 187584, 1215913792
[14:32:13] AMX_GetEntryPrefix called: 0, 694, 0, 1215913792
[14:32:13] AMX_GetBaseCount called: 0, 0, 0
[14:32:13] AMX_GetPointerPrefix called: 0, 695, 188004, 1215913792
[14:32:13] AMX_GetEntryPrefix called: 0, 695, 0, 1215913792
[14:32:13] AMX_GetBaseCount called: 0, 0, 0
[14:32:13] AMX_GetPointerPrefix called: 0, 696, 187644, 1215913792
[14:32:13] AMX_GetEntryPrefix called: 0, 696, 0, 1215913792
[14:32:13] AMX_GetBaseCount called: 0, 0, 0
[14:32:13] AMX_GetPointerPrefix called: 0, 697, 187764, 1215913792
[14:32:13] AMX_GetEntryPrefix called: 0, 697, 0, 1215913792
[14:32:13] AMX_GetBaseCount called: 0, 0, 0
[14:32:13] AMX_GetPointerPrefix called: 0, 698, 187704, 1215913792
[14:32:13] AMX_GetEntryPrefix called: 0, 698, 0, 1215913792
[14:32:13] AMX_GetBaseCount called: 0, 0, 0
[14:32:13] AMX_GetPointerPrefix called: 0, 699, 187944, 1215913792
[14:32:13] AMX_GetEntryPrefix called: 0, 699, 0, 1215913792
[14:32:13] AMX_GetBaseCount called: 0, 0, 0
[14:32:13] AMX_GetPointerPrefix called: 0, 700, 187824, 1215913792
[14:32:13] AMX_GetEntryPrefix called: 0, 700, 0, 1215913792
[14:32:13] AMX_GetBaseCount called: 0, 0, 0
[14:32:13] AMX_GetPointerPrefix called: 0, 701, 187884, 1215913792
[14:32:13] AMX_GetEntryPrefix called: 0, 701, 0, 1215913792
[14:32:13] AMX_GetBaseCount called: 0, 0, 0
[14:32:13] AMX_GetEntryPrefix called: 0, 0, 0, 1599030080
[14:32:13] AMX_GetBaseCount called: 0, 0, 0
[14:32:13] AMX_GetEntryPrefix called: 0, 0, -8, 1599030080
[14:32:13] AMX_GetBaseCount called: 0, 0, 0
[14:32:13] AMX_GetEntryPrefix called: 0, 2, -3770288, 1599030080
[14:32:13] AMX_GetBaseCount called: 0, 0, 0
[14:32:13] AMX_GetEntryPrefix called: 0, 3, -3770280, 1599030080
[14:32:13] AMX_GetBaseCount called: 0, 0, 0
[14:32:13] AMX_GetEntryPrefix called: 0, 4, -3770272, 1599030080
[14:32:13] AMX_GetBaseCount called: 0, 0, 0
[14:32:13] AMX_Read called: -3770288 -152
[14:32:13] AMX_RawRead called: -3770288
[14:32:13] AMX_Read called: -3770284 -160
[14:32:13] AMX_RawRead called: -3770284
[14:32:13] AMX_Read called: -3770292 -12
[14:32:13] AMX_RawRead called: -3770292
[14:32:13] AMX_Read called: -3770284 -16
[14:32:13] AMX_RawRead called: -3770284
[14:32:13] AMX_Read called: -3754022 -8
[14:32:13] AMX_RawRead called: -3754022
[14:32:13] AMX_Read called: -3754019 -12
[14:32:13] AMX_RawRead called: -3754019
[14:32:13] [debug] Server crashed while executing ugrp.amx
[14:32:13] [debug] AMX backtrace:
[14:32:13] [debug] #0 0002eaf8 in Hooks_GetPreloadLibraries (preloads[][E_PRE_HOOK:17]=@03c39124, &precount=@03c39364 3, size=7) at C:\Work\ugrp\pawno\include\YSI\..\YSI_Coding\y_hooks/impl.inc:320
[14:32:13] [debug] #1 0002f9f4 in Hooks_DoAllHooks () at C:\Work\ugrp\pawno\include\YSI\..\YSI_Coding\y_hooks/impl.inc:589
[14:32:13] [debug] #2 000318a0 in public AMX_OnScriptInit () at C:\Work\ugrp\pawno\include\YSI\..\YSI_Coding\y_hooks/impl.inc:1144
[14:32:13] [debug] #3 00008934 in public Debug_OnScriptInit () at C:\Work\ugrp\pawno\include\YSI\..\YSI_Coding\..\YSI_Core\..\YSI_Storage\y_amx.inc:209
[14:32:13] [debug] #4 00001db8 in public YVers_OnScriptInit () at C:\Work\ugrp\pawno\include\YSI\..\YSI_Coding\..\YSI_Core\..\YSI_Core\y_debug.inc:340
[14:32:13] [debug] #5 0000183c in public ScriptInit_OnScriptInit () at C:\Work\ugrp\pawno\include\YSI\..\YSI_Coding\..\YSI_Core\..\YSI_Internal\y_version.inc:140
[14:32:13] [debug] #6 00001640 in public OnGameModeInit () at C:\Work\ugrp\pawno\include\YSI\..\YSI_Coding\..\YSI_Core\..\YSI_Internal\..\YSI_Server\y_scriptinit.inc:183
[14:32:13] [debug] Native backtrace:
[14:32:13] [debug] #0 66d687d2 in ?? () from plugins\profiler.DLL
[14:32:13] [debug] #1 66d68e9f in ?? () from plugins\profiler.DLL
[14:32:13] [debug] #2 66d60fba in ?? () from plugins\profiler.DLL
[14:32:13] [debug] #3 66ea8c75 in ?? () from plugins\crashdetect.DLL
[14:32:13] [debug] #4 66ea09c7 in ?? () from plugins\crashdetect.DLL
[14:32:13] [debug] #5 66ea631a in ?? () from plugins\crashdetect.DLL
[14:32:13] [debug] #6 66d6903b in ?? () from plugins\profiler.DLL
[14:32:13] [debug] #7 66d6119e in ?? () from plugins\profiler.DLL
[14:32:13] [debug] #8 66d643ba in ?? () from plugins\profiler.DLL
[14:32:13] [debug] #9 0046f504 in ?? () from samp-server.exe
[14:32:13] [debug] #10 65646f6d in ?? () from samp-server.exe
[14:32:13] [debug] #11 67752f73 in ?? () from C:\Windows\system32\MSVCP120.dll
[14:32:13] [debug] #12 612e7072 in ?? () from samp-server.exe

Steps to reproduce

  1. Create bare gamemode file
  2. Include y_hooks
  3. Enable call graph

Environment

  1. Windows 7 x64 Pro with Emet 5 enabled
  2. Samp-server 0.3.7
  3. Profiler 2.12.1 (2.12 crashes as well, so it's not a regression since last crash fix)

Files inside a subfolder [FS]

As noted for game modes I can enter the path to subdirectory, but this doesn't work for filterscripts. I used

Missions/fat_n_f_2012.amx
/Missions/fat_n_f_2012.amx

My folders -> [ServerNameFolder]/filterscripts/Missions/[file_name].amx

Краш при использовании стримера

При использовании стримера от инкогнито (v2.7.4) происходит моментальный краш после запуска сервера. CrashDetect молчит, никаких ошибок в логе нет. ОС Debian, просто выводит "Segmentation fault"

V110 default toolset

Hi, can you recompile this plugin with v100 toolset? MSVCR110.dll generally is Win8 runtime library, but most users running this plugin on Vista/7

More statistics

We're using your plugin to track down some performance issues in our gamemode. Your plugin is very helpful, but in our opinion, there are some missing things. We're experiencing some gamemode freezes, but have a difficult time to pinpoint the source of them. It would be great to be able to see average and worst run times per function - finding missbehaving functions would be a piece of cake with this kind of data.

libstdc

Последняя версия до сих пор выдаёт

Debian Squeeze x86_64

Failed (/usr/lib32/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by plugins/profiler.so))

Создал тему ибо личные сообщения в GitHub не работают о_О

Profiler Crashes After Function Call

When I call the GivePlayerWeaponEx function in my code, the plugin sometimes crashes.

Additionally, when the gamemode exits in any way, the server crashes and no output is produced.

I tried local builds (Debug and Release) but they bore no fruit.

The only version I have managed to get results out of is 2.10.3, which seems to be giving rather anomalous results for the above mentioned function - Apparently it is using up 64.61% of the Total Time, and given that the GivePlayerWeaponEx function does some very straightforward ammo checking (To avoid the GivePlayerWeapon ammo level issue in which you can give somebody one ammo of a different weapon and they will have 1+N, where N is their old ammo level).

I'd love to get this plugin running so that I can better diagnose server issues.

Profiler crashes on server start

The server is crashing on start up when profiler.so is loaded.

Server log

[00:56:25] [debug] Server crashed due to an unknown error
[00:56:25] [debug] Native backtrace:
[00:56:25] [debug] #0 f72d3180 in _Z13GetStackTraceRSt6vectorI10StackFrameSaIS0_EEPv () from plugins/crashdetect.so
[00:56:25] [debug] #1 f72cb064 in _ZN11CrashDetect20PrintNativeBacktraceERSoRKN2os7ContextE () from plugins/crashdetect.so
[00:56:25] [debug] #2 f72cbd64 in _ZN11CrashDetect20PrintNativeBacktraceERKN2os7ContextE () from plugins/crashdetect.so
[00:56:25] [debug] #3 f72cdcdb in _ZN11CrashDetect7OnCrashERKN2os7ContextE () from plugins/crashdetect.so
[00:56:25] [debug] #4 f72d24d5 in ?? () from plugins/crashdetect.so
[00:56:25] [debug] #5 f7782ba0 in __kernel_rt_sigreturn () from linux-gate.so.1
[00:56:25] [debug] #6 f7782bb9 in __kernel_vsyscall () from linux-gate.so.1
[00:56:25] [debug] #7 f747c367 in gsignal () from /lib/i386-linux-gnu/i686/cmov/libc.so.6
[00:56:25] [debug] #8 f747da23 in abort () from /lib/i386-linux-gnu/i686/cmov/libc.so.6
[00:56:25] [debug] #9 f74756c7 in ?? () from /lib/i386-linux-gnu/i686/cmov/libc.so.6
[00:56:25] [debug] #10 f7475777 in ?? () from /lib/i386-linux-gnu/i686/cmov/libc.so.6
[00:56:25] [debug] #11 08098558 in ?? () from ./samp03svr
[00:56:25] [debug] #12 f442e312 in amx_Init () from plugins/profiler.so
[00:56:25] [debug] #13 f442c38c in _ZNK13AmxPathFinder11FindAmxPathEP13tagAMX_HEADER () from plugins/profiler.so
[00:56:25] [debug] #14 f442c9a4 in _ZNK13AmxPathFinder11FindAmxPathEP6tagAMX () from plugins/profiler.so
[00:56:25] [debug] #15 f44314e8 in _ZN8ProfilerC2EP6tagAMX () from plugins/profiler.so
[00:56:25] [debug] #16 f442ee0c in _ZN10AMXServiceI8ProfilerE14CreateInstanceEP6tagAMX () from plugins/profiler.so
[00:56:25] [debug] #17 f442f23b in AmxLoad () from plugins/profiler.so
[00:56:25] [debug] #18 080a1261 in ?? () from ./samp03svr
[00:56:25] [debug] #19 080ab601 in ?? () from ./samp03svr
[00:56:25] [debug] #20 080aba0b in ?? () from ./samp03svr
[00:56:25] [debug] #21 080aa0fd in ?? () from ./samp03svr
[00:56:25] [debug] #22 f7467a63 in __libc_start_main () from /lib/i386-linux-gnu/i686/cmov/libc.so.6
[00:56:25] [debug] Registers:
[00:56:25] [debug] EAX: 00000000 EBX: 000074de ECX: 000074de EDX: 00000006
[00:56:25] [debug] ESI: f710c000 EDI: f75f7000 EBP: ff911118 ESP: ff910d04
[00:56:25] [debug] EIP: f7782bb9 EFLAGS: 00200206
[00:56:25] [debug] Stack:
[00:56:25] [debug] ESP+00000000: ff911118 00000006 000074de f747c367
[00:56:25] [debug] ESP+00000020: ff910d34 00000000 33303850 ff910d70
[00:56:25] [debug] ESP+00000040: 00000000 00000000 00000000 00000000
[00:56:25] [debug] ESP+00000060: 00000000 00000000 00000000 00000000
[00:56:25] [debug] ESP+00000080: 00000000 00000000 00000000 00000000
[00:56:25] [debug] ESP+000000a0: 00000000 00000000 00000000 00000000
[00:56:25] [debug] ESP+000000c0: f75f8144 ffffffff 00000000 00000043
[00:56:25] [debug] ESP+000000e0: ff910e08 ff910e00 08049bfb 00000004
[00:56:25] [debug] ESP+00000100: 08158538 f75f7420 f74bb0fe f75f7960
[00:56:25] [debug] ESP+00000120: f75f7000 f75f7960 00000000 00000003
[00:56:25] [debug] ESP+00000140: f75f7000 08158538 f74756c7 00000000
[00:56:25] [debug] ESP+00000160: 00000000 0815806d f75ad592 08158538
[00:56:25] [debug] ESP+00000180: 00000005 0ac21370 00001000 f75f7000
[00:56:25] [debug] ESP+000001a0: 08158538 0815836d 00000323 0815806d
[00:56:25] [debug] ESP+000001c0: f7475726 007b5e85 08098558 08158538
[00:56:25] [debug] ESP+000001e0: f778beb7 00000006 00000040 00000015
[00:56:25] [debug] ESP+00000200: 00000000 007b5dd4 00000000 007b5dd0
[00:56:25] [debug] ESP+00000220: 00000000 007b5dc4 00000000 007b5dc0
[00:56:25] [debug] ESP+00000240: 00000000 007b5db4 00000000 007b5db0
[00:56:25] [debug] ESP+00000260: 00000000 007b5da4 00000000 007b5da0
[00:56:25] [debug] ESP+00000280: 00000000 007b5d94 00000000 007b5d90
[00:56:25] [debug] ESP+000002a0: 00000000 007b5e84 00000000 007b5e80
[00:56:25] [debug] ESP+000002c0: 00000000 007b5e74 00000000 007b5e70
[00:56:25] [debug] ESP+000002e0: 00000000 007b5e64 00000000 007b5e60
[00:56:25] [debug] ESP+00000300: 00000000 007b5e54 00000000 007b5e50
[00:56:25] [debug] ESP+00000320: 00000000 007b5e44 00000000 007b5e40
[00:56:25] [debug] ESP+00000340: 00000000 007b5e34 00000000 007b5e30
[00:56:25] [debug] ESP+00000360: 00000000 007b5e24 00000000 007b5e20
[00:56:25] [debug] ESP+00000380: 00000000 007b5e14 00000000 007b5e10
[00:56:25] [debug] ESP+000003a0: 00000000 007b5e04 00000000 007b5e00
[00:56:25] [debug] ESP+000003c0: 00000000 007b5df4 00000000 007b5df0
[00:56:25] [debug] ESP+000003e0: 00000000 007b5de4 00000000 007b5de0
[00:56:25] [debug] Loaded modules:
[00:56:25] [debug] 00000000 - 00187dc3 samp03svr
[00:56:25] [debug] f7782000 - f7782d0b linux-gate.so.1
[00:56:25] [debug] f776d000 - f776f81b /lib/i386-linux-gnu/i686/cmov/libdl.so.2
[00:56:25] [debug] f7751000 - f776bd2b /lib/i386-linux-gnu/i686/cmov/libpthread.so.0
[00:56:25] [debug] f765e000 - f7757cda /usr/lib/i386-linux-gnu/libstdc++.so.6
[00:56:25] [debug] f7618000 - f765cb43 /lib/i386-linux-gnu/i686/cmov/libm.so.6
[00:56:25] [debug] f75fb000 - f76173c4 /lib/i386-linux-gnu/libgcc_s.so.1
[00:56:25] [debug] f744e000 - f760322f /lib/i386-linux-gnu/i686/cmov/libc.so.6
[00:56:25] [debug] f7783000 - f77a3d6c /lib/ld-linux.so.2
[00:56:25] [debug] f72f9000 - f7453ee0 plugins/sampcac_server.so
[00:56:25] [debug] f72b5000 - f72f7ac4 plugins/crashdetect.so
[00:56:25] [debug] f720f000 - f72b514c plugins/streamer.so
[00:56:25] [debug] f7773000 - f777a09f /lib/i386-linux-gnu/i686/cmov/librt.so.1
[00:56:25] [debug] f7116000 - f720ee58 plugins/mysqlR32_x64.so
[00:56:25] [debug] f6f20000 - f7109ee4 /usr/lib32/libmysqlclient_r.so.15
[00:56:25] [debug] f6eef000 - f6f1e64f /lib/i386-linux-gnu/i686/cmov/libcrypt.so.1
[00:56:25] [debug] f6ed6000 - f6eee1a7 /lib/i386-linux-gnu/i686/cmov/libnsl.so.1
[00:56:25] [debug] f6eb9000 - f6ed4d4c /lib/i386-linux-gnu/libz.so.1
[00:56:25] [debug] f6eac000 - f6eb73ef /lib/i386-linux-gnu/i686/cmov/libnss_files.so.2
[00:56:25] [debug] f44b5000 - f44fe673 plugins/FCNPC.so
[00:56:25] [debug] f7111000 - f711408c plugins/MapAndreas.so
[00:56:25] [debug] f710d000 - f71102cc plugins/merrandom.so
[00:56:25] [debug] f4458000 - f44b48e8 plugins/CVector.so
[00:56:25] [debug] f3a9a000 - f3afee6e plugins/regex.so
[00:56:25] [debug] f4448000 - f4456f7c plugins/sscanf.so
[00:56:25] [debug] f3852000 - f38ffc5b plugins/YSF.so
[00:56:25] [debug] f441e000 - f4447cbc plugins/profiler.so

Environment

CPU(s)
8 x Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz (1 Socket)
64GB RAM
2x 250GB Samsung SSD
Debian 8 Jessie 64 bit

Ambiguity with amx_assembly's profiler.inc when including profiler plugin's include

When one includes profiler and amx_assembly (YSI includes amx_assembly) under some specific folder structures, it's uncertain what include will the compiler will choose. Folder layout can't be changed sometimes due to usage of dependency helpers like gitmodules or sampctl.

One solution would be to rename the include. @Southclaws also suggested:

An alternative would be to move it into a subdirectory since paths are things checked for uniqueness, not just the name. This would make the include path #include <profiler/profiler>.

Native to force saving of profiling data

Can a native be please added so we can manually force saving of data?

I am having difficulties making server store data, because some plugins are causing a crash during each /gmx and no data is saved.

Missing absolute value

After running I have a
Type Name Calls Self Time Total Time
columns in my gamemode-profile.html.

As i could understand Self Time Total Time are in %.
I have tried to use all formats: txt, html, xml. I could not understand what does Self Time and Total Time means. If it is really percents, that from what value?
How can i watch absolute time in ms?

Profiler only attach to the first filterscript

It appears to only read the first entry of profile_filterscripts.

This is what it looks like:

profile_gamemode 1
profile_filterscripts aa bb cc
profile_format html
call_graph 0
profile_filterscripts aa bb cc
[2015-09-22 11:28:34] Filterscripts
[2015-09-22 11:28:34] ---------------
[2015-09-22 11:28:34]   Loading filterscript 'aa.amx'...
[2015-09-22 11:28:34] [profiler] Attached profiler to filterscripts/aa.amx
[2015-09-22 11:28:34]   Loading filterscript 'bb.amx'...
[2015-09-22 11:28:34]   Loading filterscript 'cc.amx'...
[2015-09-22 11:28:34]   Loaded 3 filterscripts.

[2015-09-22 11:28:34] [profiler] Attached profiler to gamemodes/gamemode.amx

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.