Jump to content

[TUTORIAL] Timp compilare micsorat


Eyser

Recommended Posts

Salutari tuturor, am decis sa fac un mic tutorial ce poate sa fie "mare" pentru o parte dintre scripteri "inzestrat" si cu putine informatii.

Timpul unui GM ce trebuie compilat (update .AMX) este variabil si nu este niciodata fix indiferent de situatie. Acesta creste pe masura ce GameMode-ul devine tot mai complex si cu alte functii noi adaugate.

Ce anume influenteaza timpul de compilare? - In primul rand dimensiunea unui GM dar si variabilele pe care acesta le are, in special array-urile sunt un motiv intemeiat atunci cand timpul de asteptare pentru compilare este prea mare. Spuneam mai devreme ca timpul de compilare nu este fix si asta din cauza faptului ca el este in stransa legatura cu "puterea" de calcul/lucru (cum doriti s-o numiti) a fiecarei unitati PC in parte. Cu siguranta ca cineva cu un procesor potent poate obtine rezultate si pana la 50% mai bune decat unul care duce lipsa de acest aspect si este subapreciat, timpul de asteptare este influentat si de resursele disponibile ale PC-ului in cauza.

O mare parte ce poate influenta un timp prea mare de asteptare este folosirea Array-urile 3D cu "MAX_PLAYERS" si "MAX_VEHICLES". In dotarile standard aceste 2 Define-uri sunt setate la "maxim", mai precis valoarea 2000 pentru Vehicule si 1000 pentru Players. Modificati aceste valori raportate DOAR la ratia de jucatori a serverului in cauza,  este inutil sa folosesti aceste define-uri daca serverul respectiv nu are mai mult de 100/150 de jucatori, se foloseste mult spatiu ce este considerat inutil. (Aceste 2 define-uri cat si altele se pot gasi in "a_samp.inc", mai precis: "pawno/include/a_samp.inc"), desigur ca modificarile se pot accentua,  am prezentat doar 2 exemple firesti. (Ca un mic HINT verificati si "MAX_PICKUPS")

Dar totusi... ce fac sa-mi micsorez timpul de asteptare pentru compilare? - Varianta "pawncc.exe" standard care este folosita si astazi nu a mai fost actualizata din 2006, intre timp tehnologiile au evoluat si se pot face acutalizari masive acestui compilator imbunatatind si alte aspecte nu doar timpul, singura solutie este sa folosim un alt compilator restructurat. Avem aceasta varianta pe care o putem numi "Russian Compilator", un nou compilator ce imbunatateste timpul de compilare cu peste 60%. Au fost diverse discutii pe tema acesta nefiind tocmai "sigur" din terte motive una incluzand chiar "no open-source", care de asemenea... intre timp s-a rezolvat, compilatorul fiind open-source la momentul actual.

Este de precizat faptul ca "#pragma tabsize 0" a fost dezactivat din acest compilator, deci daca GM-ul nu este "aranjat" corespunzator va veti lovi de (avertizarile: loose indentation), la un moment dat creatorul a precizat ca aceasta optiune a fost dezactivata cu buna stiinta unul dintre motivele principale fiind incurajarea scripterilor sa lucreze intr-un mod ordonat. (Folosirea celor 4 spatii spre exemplu)

Precizez ca acestea sunt DOAR avertizari si nu pot afecta GM-ul in niciun fel, multi le confunda cu erorile fiind un mod GRESIT de comparatie!

Am facut un BIG (.pwn) la activ cu ~90.000 linii de test doar pentru a expune diferentele considerabile referitoare la timp, asa ca...:

Compilator Standard - Normal, Editor: Sublime Text 2:

spacer.png

(N-am tinut cont de aseazarea in pagina, de aici cele 1125 avertizari)

--------------------

Compilator Nou - New, Editor: Sublime Text 2:

spacer.png

Link Descarcare: http://gta-samp.com/files/pawncc.exe

Open-Source Link: https://github.com/pawn-lang/compiler

--------------------

Inlocuiti noul "pawncc.exe" cu vechiul "pawncc.exe" din folderul "pawno".

--------------------

 

De la Eyser, o seara faina! ✌️

Edited by Eyser

The best of the best!

Awesome !!!

Link to comment
Share on other sites

  • 4 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.