Szerző Téma: Performance profiler  (Megtekintve 2295 alkalommal)

Performance profiler
« Dátum: 2011. Július 23. - 14:33:42 »
0
Zeex meglepte a samp közönséget egy újabb pluginnal ami szintén azoknak nyújt újabb segítséget akik szeretnék módjukat, scripjüket minél jobban optimálisabbá tenni.
 


Profiler plugin 2.0a2
 

Leírás:
A plugin számolja hogy egyes funkciók hányszor lettek meghívva, és mennyi idõt vesz igénybe végrehajtásuk.
Ezt az információt elmenti HTML táblázatként melyet megnézhetünk bármelyik modern böngészõvel.
Profilozásról több információ: http://en.wikipedia.org/wiki/Profili...programming%29
Használat:
Ha azt szeretnéd hogy a profilozza a szkripted, másold a teljes nevét  <server>/plugins/profiler.cfg, pl.:
 

gamemodes/grandlarc.amx
filterscripts/fsdebug.amx
...

 
Ha a script szerepel ezen a listán akkor betöltésre kerül és automatikusan profilozásra kerül.
A profilozó adatokat gyûjt míg a szkript véget nem ér, vagy be nem zárod a szervert vagy /gmx vagy /unloadfs parancsot nem használod.
Amikor ez megtörténik, minden adat mentésre kerül HTML fájlként oda ahol a profilozott szkript található, vagyis azonos könyvtárba.
Ha filterscript van profilozva akkor az adatokat a <server>/filterscripts mappába menti ha gamemode akkor a <server>/gamemodes mappába menti.
A kimeneti fájl neve megegyezik a betöltött fájl nevével, csak kap egy .prof kiterjesztést (pl.: lvdm.amx.prof), melyet megnézhetünk kedvenc böngészõnkkel.
Példa a kimenetre:
http://cloud.github.com/downloads/Zeex/profiler/grandlarc.amx.prof
Letöltés:
https://github.com/Zeex/profiler/archives/master\'>https://github.com/Zeex/profiler/archives/master
Forráskód:
https://github.com/Zeex/profiler
Hát én személy szerint bánom hogy eltüntette ebben a kiadásban a nativ funkciókat de azért így is remek plugin.
Hivatalos oldal: http://forum.sa-mp.com/showthread.php?t=271129
 
Profiler plugin 1.5 és 1.4 verzió
 
A plugin nevébõl eredõen ez egy teljesítmény profilozó kimutató kiegészítõ,
mely futás közben elemez egy adott kódsorozatot (pl.: OnPlayerConnect alatt mindent) melyben elhelyezzük az utasításait, majd mentést készít az eredményrõl fájlként.
Részletesebb információ:
A plugin a Profiler_Start(); funkciótól kezdve számolja és méri hogy a kódsorozatban a függvények (pl.: SendClientMessage | GetPlayerName | GetPlayerPos | stb)  hányszor kerülnek meghívásra és a végrehajtás feladata mennyi idõt vesz igénybe.
Egészen addig míg a Profiler_Stop(); utasítást meg nem kapja.
Ezután ki írathatjuk az eredményt egy eljárás egyszeri meghívásának idõszükséglete szerint sorba rendezve a következõ
[pawn]
Profiler_PrintStats(\"profiler1_5.html\", PROFILER_ORDER_BY_TIME);
[/pawn]
utasítással, ami létrehoz egy profiler1_5.html fájlt, melyet bármelyik böngészõ segítségével megtekinthetünk.
Majd ajánlott az eredmények nullázása közvetlenül a
[pawn]
native Profiler_ResetStats();
[/pawn]
utasítással, de ezt leleményesebb scripterek kitudják használni hogy többszöri ellenõrzés eredményének össze vonása legyen kiíratva akár mindig más fájlba.( jelenleg felülírásra kerül a fájlban az eredmény )
Hivatalos oldal: http://forum.sa-mp.com/showthread.php?t=271129
Innen tölthetõ le minden egyes részlete: https://github.com/Zeex/profiler/archives/master\'>https://github.com/Zeex/profiler/archives/master
Eljárások:
[pawn]
// Mérési eredmény rendezésének típusai
enum ProfilerStatsOrder {
    PROFILER_ORDER_NONE, // Nincs rendezés (talán meghívási sorrendben írja ki)
    PROFILER_ORDER_BY_CALLS,  // Eljárások meghívás számával rendezi (hány szor lett meghívva míg az idõszükséglet mérés történik)
    PROFILER_ORDER_BY_TIME, // Eljárások idõ igénye szerint rendezi
    PROFILER_ORDER_BY_TIME_PER_CALL // Összesített idõ szerint rendezi sorba
};
// Ahhoz hogy a profilozó megtudja vizsgálni amx fájlunkat meg kell adni számára a nevüket.
// pl.: \"gamemodes/mygamemode.amx\"  vagy filterscripts/myfilterscript.amx\"
native Profiler_Init(const path_to_amx[]);
// Elemzés kezdete.
native Profiler_Start();
// Elemzés vége.
native Profiler_Stop();
// Eredmények mentése fájlként.
// Megjegyzés: addig ne készítsünk mentést míg az elemzés folyik!
// Röviden a pawn kódunkban ne helyezzük a Profiler_Start() és a Profiler_Stop() utasítás közé csak a végére helyezhetjük el, ezt az utasítás!
native Profiler_PrintStats(const filename[], ProfilerStatsOrder:order);
// Statisztika törlése mellyel megszabhatjuk egy kis logika szerint hány ismétlõdés után törölje az eredményeket, ez eddig automatikus volt minden egyes Profiler_Start meghívásakor.
native Profiler_ResetStats();
[/pawn]
Használat:
Töltsük le a plugint csomagoljuk ki tartalmát  pawno/include mappába profiler.inc-t, a plugins mappába op rendszernek megfelelõen profiler.dll (Windows) profiler.so (Linux).
Majd illesszük be OnGameModeInit vagy OnFilterscritpInit alá annak az amx fájlnak a nevét melyet elemezni kívánunk, a következõ módon:
[pawn]
#include <a_samp>
#include <profiler>
public OnGameModeInit()
{
    Profiler_Init(\"gamemodes/mygamemode.amx\");
    return 1;
}
public OnPlayerConnect(playerid)
{
    Profiler_Start(); // Elemzés kezdete
    SendClientMessage(playerid, -1, \"Hello\");
    printf(\"teszt script\");
    Profiler_Stop(); // Elemzés vége
    Profiler_PrintStats(\"profiler.html\"); // Eredmények mentése profiler.html fájlba
    Profiler_ResetStats();
    return 1;
}
[/pawn]
Legjobb ha mindent abba a .pwn-be illesztünk amiben szeretnénk elemezni egy adott funkciót.
Képet lehet találni a hivatalos fórumon milyen eredményt kaphatunk módunkról, melyben a vizsgálat idõtartama alatt kapott eredményben kiírásra kerülnek:
 
Function |   Calls | Time per call | Overall time | Overall time, %[/quote]
meghívott eljárások nevei | ismétlõdések száma | egy meghívás ideje | összesített idõ | összesített idõ százalékos eredménye.
A leírás 1.4-es verziójú plugin kiadásakor készült!
A leírás kiegészítve az 1.5-es verzió pluginhoz.
Az ismertetõ kiegészítve plugin 2.0a2 verzióval.
« Utoljára szerkesztve: 2011. November 13. - 13:18:23 írta Jethro »

Nem elérhető jana4

  • 5929
  • Ex Staff
    • Profil megtekintése
Performance profiler
« Válasz #1 Dátum: 2011. Július 23. - 14:47:21 »
0
Köszönjük, hogy áthoztad.

Egyébként a plugint úgy is fordíthatjuk, hogy erõforrás kimutató/mérõ. ;)

Nem elérhető kurta999

  • 2759
  • Éllő fédisznó
    • Profil megtekintése
Performance profiler
« Válasz #2 Dátum: 2011. Július 24. - 10:21:57 »
0
Ez tetszik, kösz hogy lefordítottad, mert ebbõl nemsokat értettem.
És a MySQL query bizonyul a leglassúbbnak :D

Performance profiler
« Válasz #3 Dátum: 2011. Július 26. - 13:26:38 »
0
A plugin leírása kiegészítve a a profiler 2.0a2 verzió számú pluginnal.
Melyben el lettek távolítva a native funkciók, gondolom azért mert sokan össze vissza használták. És emiatt összeomlott a szerver. :D
Így könnyebb lett legalább a használata.

Nem elérhető Csabesz

  • 7827
    • Profil megtekintése
Performance profiler
« Válasz #4 Dátum: 2011. Július 26. - 13:29:57 »
0
Nemjó a letöltési link.  :(

Performance profiler
« Válasz #5 Dátum: 2011. Július 26. - 13:38:36 »
0
Idézetet írta: Ronii date=1311679797\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"9794\" data-ipsquote-contentclass=\"forums_Topic
Nemjó a letöltési link.  :(
 
Nem próbáltam ki a linkeket innen de szerintem az automatikus link felismerés cseszi el megpróbálom url tagek közé tenni.
Hát úgyse ment a direkt link majd késõbb próbálkozok vele.   :-\\
« Utoljára szerkesztve: 2011. Július 26. - 13:41:31 írta Zsolesszka »

Performance profiler
« Válasz #6 Dátum: 2012. Június 11. - 21:38:54 »
0
windows szerón megy rendesen viszont hoston ezt irja a linuxhoz: Failed (plugins/profiler.so: ELF file OS ABI invalid)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal