←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

[ROZWIĄZANE] optymalizacje by Benio w siln...


Best Answer GwynBleidD 03.12.2013 19:14

Jeśli posiadamy kilka pól typu boolean (prawda/fałsz) dla jednego gracza, albo pól wielokrotnego wyboru (np gdy mamy 2 zmienne, jedna ma 8 możliwości, a druga 4, możemy to zmieścić na 5 bitach jednej zmiennej), to lepiej nadal posiadać tablicę 33 elementową dla wszystkich graczy, ale wszystkie te pola trzymać w osobnych bitach tej samej zmiennej (tablicy). Go to the full post
Locked

  • +
  • -
Rivit's Photo Rivit 01.12.2013

witam.
Mam takie pytanie.
Jak zoptymalizowac silnik cod moda (new) uzywajac techniki z polami bitowymi.
Wiem ze daje define ale co potem?
Quote

  • +
  • -
MAGNET's Photo MAGNET 01.12.2013

new zmienna;
SetBit(zmienna, index)
Tak samo CheckBit i tamto 3. Tylko podmieniasz tam gdzie sa zmienne logiczne
Quote

  • +
  • -
sebul's Photo sebul 02.12.2013

Nie szukaj optymalizacji tam gdzie jej nie ma. To że będziesz używał o te 32 (a nawet nie tyle, bo nie wszystkie zmienne są dla każdego gracza oddzielnie) razy mniej zmiennych, to nie ma większego znaczenia.
Chcesz optymalizacji? Zredukuj chociażby ilość wywoływania tych samych forwardów/funkcji/eventów w kilku pluginach. Jak? Najlepiej rejestrując je w silniku, a następnie wysyłając odpowiednie forwardy do innych pluginów.
 

new zmienna;
SetBit(zmienna, index)
Tak samo CheckBit i tamto 3. Tylko podmieniasz tam gdzie sa zmienne logiczne

index-1

A tak ogólnie, skoro od indexu trzeba odejmować 1, to zamiana zwykłych zmiennych na te pola bitowe, wcale nie musi być czymś bardziej optymalnym.
Quote

  • +
  • -
Best Answer GwynBleidD's Photo GwynBleidD 03.12.2013

Jeśli posiadamy kilka pól typu boolean (prawda/fałsz) dla jednego gracza, albo pól wielokrotnego wyboru (np gdy mamy 2 zmienne, jedna ma 8 możliwości, a druga 4, możemy to zmieścić na 5 bitach jednej zmiennej), to lepiej nadal posiadać tablicę 33 elementową dla wszystkich graczy, ale wszystkie te pola trzymać w osobnych bitach tej samej zmiennej (tablicy).
Quote

  • +
  • -
Rivit's Photo Rivit 04.12.2013

aha
czyli te #define ... sa do bool.
A jakis kawalek kodu dla przykladu...
Quote
Locked