Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Gdzie lepiej stworzyć menu?


Najlepsza odpowiedź Rivit, 24.05.2020 09:12


Kolejne pytanie.

Jeśli zrobię to menu w plugin_init (albo ogólnie w którymś z forwardów zaraz po uruchomieniu pluginu) to czy wpłynie to jakoś znacząco na obciążenie serwera? Bo tak na chłopski rozum to takie menu plugin musiałby zapisać w pamięci podręcznej serwera czy gdzieś tam żeby w każdym momencie menu_display mogło je wyświetlić.

 

Znikoma rzecz, jeśli menu ma z 30 elementów (jakby miało z 500 to można by rozważać). Tak naprawdę to taka mikrooptymalizacja. Jeśli masz nad czymś spędzić 5h i poprawiać kod, żeby np reużywać zmienne itp itp takie pierdoły to lepiej olać to, bo takie mikrooptymalizacje nie dają dużo. Bardziej na optymalizacje wpływają algorytmy i zmiana na lepszy daje zauważalne efekty. Dajmy na to sortujesz tablice, jak użyjesz jakiegoś bubble sorta (https://pl.wikipedia...wanie_bąbelkowe) to nie będzie to wydajne, lepiej zrobić quick sort (https://pl.wikipedia...towanie_szybkie) i wtedy poczujesz różnice. Oczywiście mowa tu o dużych zbiorach elementów, bo w takim AMXX co możesz chcieć sortować? Tablice 32 elementy? Wtedy czy bubble czy quick sort bez znaczenia. Przy wiekszych liczbach (rozmiarach) daje to już efekty.

 

Jakbyś pisał w C/C++ to tam w ogóle nie ma co sie w to bawić w mikrooptymalizacje, bo kompilator i tak poprzekształca kod tak, że się nawet nie kapniesz, że Ty to pisałeś, a często jest tak, że pisząc coś, tak aby zrobić to super wydajnie, blokujemy niektóre optymalizacje kompilatora, których on nie może zastosować przez właśnie nasz "optymalny kod".

 

 


Załóżmy, że tworzę nowe menu (nową metodą) do wyboru drużyn i z tego powodu to menu będzie bardzo często używane.

Lepiej zrobić tak jak zawsze, czyli dodawać elementy do menu bezpośrednio w danej funkcji przed wyświetleniem go czy może lepszym rozwiązaniem byłoby stworzyć menu w plugin_init (czy w plugin_cfg czy w jakim innym forwardzie najlepiej?) i wyświetlać w funkcji samym menu_display bez tworzenia go i dodawania itemów.

Prosiłbym o poparcie argumentem, który sposób jest lepszy do tak często używanego menu.

 

Jak sie nie myle to menu bedzie miec z max 5 opcji. Bez różnicy, możesz tworzyć na bieżąco. Jeśli jednak konieczine chcesz zcacheować to menu to zrób sobie to np w plugin_init. Widziałem takie rozwiązania nie raz, nie dwa. Tylko pamietaj, żeby nie używać na tym menu funkcji menu_destroy(), bo sam wiesz co się stanie :) Wadą takiego rozwiązania jest to, że jeśli np przy jakimś napisie w menu chciałbyś pokazywać jakąś zmienną informacje (np. liczba graczy) to będziesz musiał używać funkcji typu menu_item_setname itp.

 

 

Podsumowując - nie ma sensu sie bawić w to dla małych menu, chyba że masz zamiar naparzać tym menu w gracza co 0.1 sekundy :)

Przejdź do postu


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
1 odpowiedź w tym temacie

#1 Anonymuss

    Profesjonalista

  • Użytkownik

Reputacja: 55
Pomocny

  • Postów:194
  • Imię:Anonimowy
  • Lokalizacja:Polska
Offline

Napisano 24.05.2020 06:47

Witam.

Załóżmy, że tworzę nowe menu (nową metodą) do wyboru drużyn i z tego powodu to menu będzie bardzo często używane.

Lepiej zrobić tak jak zawsze, czyli dodawać elementy do menu bezpośrednio w danej funkcji przed wyświetleniem go czy może lepszym rozwiązaniem byłoby stworzyć menu w plugin_init (czy w plugin_cfg czy w jakim innym forwardzie najlepiej?) i wyświetlać w funkcji samym menu_display bez tworzenia go i dodawania itemów.

Prosiłbym o poparcie argumentem, który sposób jest lepszy do tak często używanego menu.

 

Kolejne pytanie.

Jeśli zrobię to menu w plugin_init (albo ogólnie w którymś z forwardów zaraz po uruchomieniu pluginu) to czy wpłynie to jakoś znacząco na obciążenie serwera? Bo tak na chłopski rozum to takie menu plugin musiałby zapisać w pamięci podręcznej serwera czy gdzieś tam żeby w każdym momencie menu_display mogło je wyświetlić.


  • +
  • -
  • 0

#2 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 24.05.2020 09:12   Najlepsza odpowiedź


Kolejne pytanie.

Jeśli zrobię to menu w plugin_init (albo ogólnie w którymś z forwardów zaraz po uruchomieniu pluginu) to czy wpłynie to jakoś znacząco na obciążenie serwera? Bo tak na chłopski rozum to takie menu plugin musiałby zapisać w pamięci podręcznej serwera czy gdzieś tam żeby w każdym momencie menu_display mogło je wyświetlić.

 

Znikoma rzecz, jeśli menu ma z 30 elementów (jakby miało z 500 to można by rozważać). Tak naprawdę to taka mikrooptymalizacja. Jeśli masz nad czymś spędzić 5h i poprawiać kod, żeby np reużywać zmienne itp itp takie pierdoły to lepiej olać to, bo takie mikrooptymalizacje nie dają dużo. Bardziej na optymalizacje wpływają algorytmy i zmiana na lepszy daje zauważalne efekty. Dajmy na to sortujesz tablice, jak użyjesz jakiegoś bubble sorta (https://pl.wikipedia...wanie_bąbelkowe) to nie będzie to wydajne, lepiej zrobić quick sort (https://pl.wikipedia...towanie_szybkie) i wtedy poczujesz różnice. Oczywiście mowa tu o dużych zbiorach elementów, bo w takim AMXX co możesz chcieć sortować? Tablice 32 elementy? Wtedy czy bubble czy quick sort bez znaczenia. Przy wiekszych liczbach (rozmiarach) daje to już efekty.

 

Jakbyś pisał w C/C++ to tam w ogóle nie ma co sie w to bawić w mikrooptymalizacje, bo kompilator i tak poprzekształca kod tak, że się nawet nie kapniesz, że Ty to pisałeś, a często jest tak, że pisząc coś, tak aby zrobić to super wydajnie, blokujemy niektóre optymalizacje kompilatora, których on nie może zastosować przez właśnie nasz "optymalny kod".

 

 


Załóżmy, że tworzę nowe menu (nową metodą) do wyboru drużyn i z tego powodu to menu będzie bardzo często używane.

Lepiej zrobić tak jak zawsze, czyli dodawać elementy do menu bezpośrednio w danej funkcji przed wyświetleniem go czy może lepszym rozwiązaniem byłoby stworzyć menu w plugin_init (czy w plugin_cfg czy w jakim innym forwardzie najlepiej?) i wyświetlać w funkcji samym menu_display bez tworzenia go i dodawania itemów.

Prosiłbym o poparcie argumentem, który sposób jest lepszy do tak często używanego menu.

 

Jak sie nie myle to menu bedzie miec z max 5 opcji. Bez różnicy, możesz tworzyć na bieżąco. Jeśli jednak konieczine chcesz zcacheować to menu to zrób sobie to np w plugin_init. Widziałem takie rozwiązania nie raz, nie dwa. Tylko pamietaj, żeby nie używać na tym menu funkcji menu_destroy(), bo sam wiesz co się stanie :) Wadą takiego rozwiązania jest to, że jeśli np przy jakimś napisie w menu chciałbyś pokazywać jakąś zmienną informacje (np. liczba graczy) to będziesz musiał używać funkcji typu menu_item_setname itp.

 

 

Podsumowując - nie ma sensu sie bawić w to dla małych menu, chyba że masz zamiar naparzać tym menu w gracza co 0.1 sekundy :)


  • +
  • -
  • 1




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych