Pozdrav, za sta sluzi #pragma dynamic (neki broj), imam to u GameModu(SA mod)?
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:
[pawn]
#pragma dinamiÄka 1000000
[/pawn]
DinamiÄki postavlja veliÄinu stega. Bez toga možete neÅ¡to dobiti uz linije:
[pawn]
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
[/pawn]
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.
[pawn]
#define MAX_HOUSES 1000
#define MAX_FURNITURE 100 // Po kući.
novi FurnitureInfo [MAX_HOUSES] [MAX_FURNITURE] [e_FURNITURE_DATA];
[/pawn]
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:
[pawn]
novi FurnitureInfo [MAX_HOUSES * 40] [e_FURNITURE_DATA];
[/pawn]
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.
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:
[pawn]
#pragma dinamiÄka 1000000
[/pawn]
DinamiÄki postavlja veliÄinu stega. Bez toga možete neÅ¡to dobiti uz linije:
[pawn]
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
[/pawn]
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.
[pawn]
#define MAX_HOUSES 1000
#define MAX_FURNITURE 100 // Po kući.
novi FurnitureInfo [MAX_HOUSES] [MAX_FURNITURE] [e_FURNITURE_DATA];
[/pawn]
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:
[pawn]
novi FurnitureInfo [MAX_HOUSES * 40] [e_FURNITURE_DATA];
[/pawn]
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
Hvala, a sta ce se desiti ako obrisem to iz moda?
Vrv je stavleno zbog stack size jer je pojeban, optimizuj skriptu...
Okej, a sta ce se desiti ako obrisem to?
Izbacit Ce ti mnogo errora eto sta Ce bit, optimizmu skriptu kako je @ksunder rekao
Nije izbacio ni jedan error kad sm skinuo
Bump, zna neko?
Onda nemas problema sa stack/heap sizeom
Hvala puno, lock