Raised This Month: $12 Target: $400
 3% 

amxmodx profiler


Post New Thread Reply   
 
Thread Tools Display Modes
Infernuz
Member
Join Date: May 2011
Old 02-14-2015 , 16:25   Re: amxmodx profiler
Reply With Quote #111

Arkshine, could you release source files?

Last edited by Infernuz; 02-14-2015 at 16:26.
Infernuz is offline
Send a message via ICQ to Infernuz
Arkshine
AMX Mod X Plugin Approver
Join Date: Oct 2005
Old 02-15-2015 , 09:59   Re: amxmodx profiler
Reply With Quote #112

I don't have them anymore. But what I did is just basically checking difference between original release which contains profiler and another release which doesn't contain it. Nothing specifically hard, just takes some time.

Anyway, when you think about it, except the natives to profile a chunk of code, this is not really worth, because you know when a code is going to be called often so having a table with some times is not going to help much. Also this is not really accurate. You can find some useful answers here: https://bugs.alliedmods.net/show_bug.cgi?id=6096
__________________
Arkshine is offline
Fr33m@n
Veteran Member
Join Date: May 2008
Location: France Marne
Old 02-15-2015 , 10:55   Re: amxmodx profiler
Reply With Quote #113

I think that most of the people who want to use the profiler want it to compare natives between each others basically because there is redundancy in amxmodx.

Imo fakemeta pev are a bit redundant compared to engine entity_g/set_*.
And apparently, they are a bit slower than engine version.

Also, Fakemeta util is stupid.

Sadly what is done is done but the fact that people still want a profiler or debate about transforming plugins to fakemeta only is pretty much the consequence of a wrong scope in older amxmodx dev team.
Fr33m@n is offline
HamletEagle
AMX Mod X Plugin Approver
Join Date: Sep 2013
Location: Romania
Old 02-15-2015 , 14:21   Re: amxmodx profiler
Reply With Quote #114

Quote:
Originally Posted by Fr33m@n View Post
I think that most of the people who want to use the profiler want it to compare natives between each others basically because there is redundancy in amxmodx.

Imo fakemeta pev are a bit redundant compared to engine entity_g/set_*.
And apparently, they are a bit slower than engine version.

Also, Fakemeta util is stupid.

Sadly what is done is done but the fact that people still want a profiler or debate about transforming plugins to fakemeta only is pretty much the consequence of a wrong scope in older amxmodx dev team.
Even if fakemeta pev_ functions are a bit slower I prefer them because it's easier to read them and to use, but this is only my opinion and the difference is trivial. Peoples should use what is easier to use for them.
__________________
HamletEagle is offline
fysiks
Veteran Member
Join Date: Sep 2007
Location: Flatland, USA
Old 02-15-2015 , 14:27   Re: amxmodx profiler
Reply With Quote #115

I was quite sure that there was actually added functionality provided by fakemeta but then again, I came in during the anti-engine movement so I could be wrong.
__________________
fysiks is offline
Krtola
Veteran Member
Join Date: Oct 2013
Location: Serbia
Old 03-25-2015 , 19:58   Re: amxmodx profiler
Reply With Quote #116

I do not understand how can I know which 44 calls are not executed?
Attached Images
File Type: jpg profiles_v3.jpg (80.9 KB, 320 views)

Last edited by Krtola; 03-25-2015 at 20:01.
Krtola is offline
Send a message via Skype™ to Krtola
hornet
AMX Mod X Plugin Approver
Join Date: Mar 2010
Location: Australia
Old 03-25-2015 , 20:20   Re: amxmodx profiler
Reply With Quote #117

Quote:
Originally Posted by Krtola View Post
I do not understand how can I know which 44 calls are not executed?
I don't know a whole lot about the profiler, but however as stated in some posts above your better off having an experienced user just check your code for use of the correct solutions in the correct contexts.
__________________
Quote:
vBulletin Tip #42: Not much would be accomplished by merging this item with itself.
hornet is offline
RaZ_HU
Senior Member
Join Date: May 2015
Location: Hungary
Old 08-17-2015 , 07:53   Re: amxmodx profiler
Reply With Quote #118

Quote:
Originally Posted by Arkshine View Post
Hi,

Ever wanted to use this sawceful tool without having any crashes ?

The following binaries are for you !


- Merged changes on the latest AMXX version (1.8.2-dev, rev24)
- Fixed crash when the natives are used
- Fixed crash when csx module is loaded


Thanks to Joropito for his patience by supporting my boring c/c++ question.

I've tested under windows (7) and linux (compiled with gcc4.5), and it seems to work fine.
Feedback are welcomed, especially using the natives.

- Enjoy.

I have installed it to a Windows standalone server to test the plugins before I install them to the linux hlds. The reason of this is we have 1 core at the server machine that runs currently at 90-95%.
But I don't know how to use it or where to search for the table that many of you posted with the results.

The linux hlds goes laggy if it hits ~500mb memory usage so somehow I want to decrease the memory usage. I have asked the "hosting" about why don't they just add a 2nd cpu core to our server but they are on a holiday trip atm... :/

I have a "basic" scripting knowledge, so I think I can understand if you tell me somehing scripting stuff.

Last edited by RaZ_HU; 08-17-2015 at 07:58.
RaZ_HU is offline
Arkshine
AMX Mod X Plugin Approver
Join Date: Oct 2005
Old 08-17-2015 , 08:54   Re: amxmodx profiler
Reply With Quote #119

Profiler won't help you, you should your own thread, explaining how you start your server, how it's configured, what plugins you're using, etc, etc.
__________________
Arkshine is offline
addons_zz
Veteran Member
Join Date: Aug 2015
Location: Dreams, zz
Old 01-28-2016 , 00:34   Re: amxmodx profiler
Reply With Quote #120

Some benchmarks

Hi folks, I am here sharing some benchmarks.




Dynamic array

I did a benchmark between a static array and a dynamic array and I came here to share the results. It is just to see how big the difference could be. And as the same as tries and static arrays, you should use dynamic arrays, when it makes sense to it, i.e., they fit the well the problem solving.
Code:
date: Thu Jan 28 03:48:10 2016 map: de_dust2
type |                             name |      calls | time / min / max
-------------------------------------------------------------------
   n |                  register_plugin |          1 | 0.000009 / 0.000009 / 0.000009
   n |                  register_srvcmd |          1 | 0.000069 / 0.000069 / 0.000069
   n |                      ArrayCreate |          1 | 0.000002 / 0.000002 / 0.000002
   n |                    ArrayPushCell |         32 | 0.000002 / 0.000000 / 0.000000
   n |                       server_cmd |          1 | 0.000006 / 0.000006 / 0.000006
   n |                     ArrayGetCell |   32000000 | 2.712061 / 0.000000 / 0.009609
   p |                           cmd_go |          1 | 0.220705 / 0.220705 / 0.220705
   p |                      plugin_init |          1 | 0.000005 / 0.000005 / 0.000005
   f |                   UseStaticArray |    1000000 | 0.801795 / 0.000000 / 0.004913
   f |                  UseDynamicArray |    1000000 | 28.758015 / 0.000016 / 0.034018
0 natives, 0 public callbacks, 2 function calls were not executed.
This was the source code used:
Spoiler


is_user_connect

Looks like is better use 'is_user_connect' instead of cache it's value, because the diference seen insignificant.
Code:
date: Fri Jan 29 01:58:47 2016 map: de_dust2
type |                             name |      calls | time / min / max
-------------------------------------------------------------------
   n |                  register_plugin |          1 | 0.000011 / 0.000011 / 0.000011
   n |                  register_srvcmd |          1 | 0.000114 / 0.000114 / 0.000114
   n |                       server_cmd |          1 | 0.000008 / 0.000008 / 0.000008
   n |                is_user_connected |   32000000 | 2.580960 / 0.000000 / 0.014820
   p |                           cmd_go |          1 | 0.266977 / 0.266977 / 0.266977
   p |                      plugin_init |          1 | 0.000003 / 0.000003 / 0.000003
   f |               use_user_connected |    1000000 | 5.494115 / 0.000000 / 0.059881
   f |                 use_cached_value |    1000000 | 1.743552 / 0.000001 / 0.021680
0 natives, 0 public callbacks, 2 function calls were not executed.
This was the source code used:
Spoiler


cs_get_user_team

'cs_get_user_team' vs cached value benchmark.
Code:
date: Fri Jan 29 03:21:04 2016 map: de_dust2
type |                             name |      calls | time / min / max
-------------------------------------------------------------------
   n |                  register_plugin |          1 | 0.000009 / 0.000009 / 0.000009
   n |                  register_srvcmd |          1 | 0.000099 / 0.000099 / 0.000099
   n |                      get_players |          1 | 0.000003 / 0.000003 / 0.000003
   n |                 cs_get_user_team |   31000031 | 7.618567 / 0.000000 / 0.023226
   n |                       server_cmd |          1 | 0.000006 / 0.000006 / 0.000006
   p |                           cmd_go |          1 | 0.208685 / 0.208685 / 0.208685
   p |                      plugin_init |          1 | 0.000002 / 0.000002 / 0.000002
   f |                use_get_user_team |    1000000 | 8.162432 / 0.000000 / 0.016805
   f |                 use_cached_value |    1000000 | 1.997416 / 0.000002 / 0.003139
0 natives, 0 public callbacks, 2 function calls were not executed.
This was the source code used:
Spoiler


is_user_alive

'is_user_alive' vs cached value benchmark.
Code:
date: Fri Jan 29 03:34:38 2016 map: de_dust2
type |                             name |      calls | time / min / max
-------------------------------------------------------------------
   n |                  register_plugin |          1 | 0.000010 / 0.000010 / 0.000010
   n |                  register_srvcmd |          1 | 0.000099 / 0.000099 / 0.000099
   n |                      get_players |          1 | 0.000005 / 0.000005 / 0.000005
   n |                    is_user_alive |   31000031 | 2.379797 / 0.000000 / 0.002604
   n |                       server_cmd |          1 | 0.000007 / 0.000007 / 0.000007
   p |                           cmd_go |          1 | 0.199224 / 0.199224 / 0.199224
   p |                      plugin_init |          1 | 0.000003 / 0.000003 / 0.000003
   f |                   use_user_alive |    1000000 | 4.456642 / 0.000000 / 0.009792
   f |                 use_cached_value |    1000000 | 1.314150 / 0.000001 / 0.002849
0 natives, 0 public callbacks, 2 function calls were not executed.
This was the source code used:
Spoiler
Attached Files
File Type: sma Get Plugin or Get Source (arrays_benchmark.sma - 787 views - 1.3 KB)
__________________
Plugin: Sublime Text - ITE , Galileo
Multi-Mod: Manager / Plugin / Server

Support me on Patreon, Ko-fi, Liberapay or Open Collective

Last edited by addons_zz; 01-29-2016 at 00:36. Reason: spelling fix
addons_zz is offline
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 15:10.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode