#pragma dynamic


Započeo PekiBrat, Maj 12, 2018, 14:45:28 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Pozdrav, za sta sluzi #pragma dynamic (neki broj), imam to u GameModu(SA mod)?
Poslednja Izmena: Maj 15, 2018, 13:12:29 POSLE PODNE od Bašovski

Postavlja "velicinu" stacka dinamicno na (neki broj).
Bez toga bi (ukoliko koristis neke nepotrebne arraye (ex. velike stringove), nepotrebne varijable itd.) trebao dobiti debug info:
Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase

Header size:          x bytes
Code size:          x bytes
Data size:         x bytes
Stack/heap size:      x bytes; estimated max. usage: unknown, due to recursion
Total requirements:x bytes


Ovaj output dobijas i sa parametrom '-d(X)' kada kompajlas tako da se ne zbunis nekada je namjerno upaljen debug.
Uglavnom ako dobijes ovu poruku bez '-d' parametra pri kompajlu, potrudi se da smanjis arraye (jer je to najlaksi nacin da spustis memoriju skripte.

Hvala, kad kompajlam imam to, kako da optimiujem to? Moze neki primer za to smanjivanje array-a, vidjao sam neke sitne debugove za array 4 nesti u logu

#Kako koristit Pragmu
Danas ću vam reci par stvari o pragma,kako koristiti #pragma. Koristan je direktiva koja će popraviti širok spektar upozorenja kompajlera.

Upotreba

#pragma je direktiva koja se koristi za promjenu postavki kompajlera. To nije fiksator upozorenja.

Uvijek vidim ljude koji savjetuju druge da koriste #pragmu da uklone upozorenja iz svog kompajla sta vec. Upozorenja su samo utišana - ne magično nestaju.

Umesto toga, naučićete kako da ga izbjegnete. Upozorenja nikada ne bi trebale biti tišine - trebalo bi ih ispraviti na pravi način!

#pragma tabsize
Ovo postavlja veličinu kartice, koja je podrazumevano podešena na 4. Kada ga podesite na nulu, u osnovi dopuštate nečitljivu šifru u vašoj skripti.

Nikada ne bi trebalo da postavljate veličinu tabulatora. Zašto želite da ga postavite? Naučite da pravilno unesete svoj kôd i nećete imati problem.

#pragma dynamic
Ovaj kod:
#pragma dinamička 1000000

Dinamički postavlja veličinu stega. Bez toga možete nešto dobiti uz linije:
Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase

Header size:          19036 bytes
Code size:          1327124 bytes
Data size:         43915204 bytes
Stack/heap size:      16384 bytes; estimated max. usage: unknown, due to recursion
Total requirements:45277748 bytes

Ovo upozorenje je izazvano retkim nizovima , nepotrebnim veličinama žice i korištenjem dosta podataka.

Pitanje: da li stvarno treba da koristite cijeli taj prostor? Zašto je za HouseInfo dodeljeno 2.000 slotova, kada koristite samo 100 slotova? Postoji mnogo načina da se smanji korištenje podataka.
#define MAX_HOUSES 1000 
#define MAX_FURNITURE 100 // Po kući. 

novi FurnitureInfo [MAX_HOUSES] [MAX_FURNITURE] [e_FURNITURE_DATA];

Taj niz je 400 kilobajta velik, ne uključujući podatke popisivača. To nije niÅ¡ta u poreÄ'enju sa danaÅ¡njim standardima, ali je i dalje važno, i postoji način da se to smanji.
Recimo da imamo prosečno 40 komada namještaja po kući. Mi ga lako možemo smanjiti na:
novi FurnitureInfo [MAX_HOUSES * 40] [e_FURNITURE_DATA];

Naravno, svaka kuća neće sadržati 40 komada namještaja. Veličina ovog polja sada iznosi 40 kilobajta, za razliku od 400 kilobajta iz druge.
ZaključakTL; DR - Ne koristite #pragma da biste popravili upozorenja kompajlera.
Druge verzije Pawno-a koriste različite postavke kompajlera. SA-MP koristi svoja podešavanja, tako da je važno da se prilagodite.

TOLIKO OD MENE, MISLIM DA SAM OBJASNIO NEKE STVARI.


Poslednja Izmena: Maj 12, 2018, 15:22:44 POSLE PODNE od Nodze

Gamemod: Spotify Community
Owner: Nodze ( Dzenan Levic )

Citat: Nodze poslato Maj 12, 2018, 15:18:56 POSLE PODNE
#Kako koristit Pragmu
Danas ću vam reci par stvari o pragma,kako koristiti #pragma. Koristan je direktiva koja će popraviti širok spektar upozorenja kompajlera.

Upotreba

#pragma je direktiva koja se koristi za promjenu postavki kompajlera. To nije fiksator upozorenja.

Uvijek vidim ljude koji savjetuju druge da koriste #pragmu da uklone upozorenja iz svog kompajla sta vec. Upozorenja su samo utišana - ne magično nestaju.

Umesto toga, naučićete kako da ga izbjegnete. Upozorenja nikada ne bi trebale biti tišine - trebalo bi ih ispraviti na pravi način!

#pragma tabsize
Ovo postavlja veličinu kartice, koja je podrazumevano podešena na 4. Kada ga podesite na nulu, u osnovi dopuštate nečitljivu šifru u vašoj skripti.

Nikada ne bi trebalo da postavljate veličinu tabulatora. Zašto želite da ga postavite? Naučite da pravilno unesete svoj kôd i nećete imati problem.

#pragma dynamic
Ovaj kod:
#pragma dinamička 1000000

Dinamički postavlja veličinu stega. Bez toga možete nešto dobiti uz linije:
Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase

Header size:          19036 bytes
Code size:          1327124 bytes
Data size:         43915204 bytes
Stack/heap size:      16384 bytes; estimated max. usage: unknown, due to recursion
Total requirements:45277748 bytes

Ovo upozorenje je izazvano retkim nizovima , nepotrebnim veličinama žice i korištenjem dosta podataka.

Pitanje: da li stvarno treba da koristite cijeli taj prostor? Zašto je za HouseInfo dodeljeno 2.000 slotova, kada koristite samo 100 slotova? Postoji mnogo načina da se smanji korištenje podataka.
#define MAX_HOUSES 1000 
#define MAX_FURNITURE 100 // Po kući. 

novi FurnitureInfo [MAX_HOUSES] [MAX_FURNITURE] [e_FURNITURE_DATA];

Taj niz je 400 kilobajta velik, ne uključujući podatke popisivača. To nije niÅ¡ta u poreÄ'enju sa danaÅ¡njim standardima, ali je i dalje važno, i postoji način da se to smanji.
Recimo da imamo prosečno 40 komada namještaja po kući. Mi ga lako možemo smanjiti na:
novi FurnitureInfo [MAX_HOUSES * 40] [e_FURNITURE_DATA];

Naravno, svaka kuća neće sadržati 40 komada namještaja. Veličina ovog polja sada iznosi 40 kilobajta, za razliku od 400 kilobajta iz druge.
ZaključakTL; DR - Ne koristite #pragma da biste popravili upozorenja kompajlera.
Druge verzije Pawno-a koriste različite postavke kompajlera. SA-MP koristi svoja podešavanja, tako da je važno da se prilagodite.

TOLIKO OD MENE, MISLIM DA SAM OBJASNIO NEKE STVARI.
Jos da dodam
#pragma nije napravljen samo da sakrijete upozorenja. TakoÄ'e može biti veoma korisno za druge stvari (kao Å¡to su ctrlchar, pack, codepage ili čak amxram).

Na kraju, debug poruke nisu zapravo upozorenja, ali, kao Å¡to sam rekao, debug poruke. Siguran sam da neću niÅ¡ta naučiti u svom postu - pogotovo ovde - ali možete omogućiti ovakve poruke u svakoj kompilaciji koju obraÄ'ujete kompilacijom -d2 ili -d3 (pomoću pawno-a, kreirajući datoteku pawn.cfg i zapisivanje traženih opcija kompajliranja

Gamemod: Spotify Community
Owner: Nodze ( Dzenan Levic )

Hvala, a sta ce se desiti ako obrisem to iz moda?


Okej, a sta ce se desiti ako obrisem to?

Izbacit Ce ti mnogo errora eto sta Ce bit, optimizmu skriptu kako je @ksunder rekao

Gamemod: Spotify Community
Owner: Nodze ( Dzenan Levic )

Nije izbacio ni jedan error kad sm skinuo