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

[ROZWIĄZANE] Co bardziej obciąża serwer


  • Zamknięty Temat jest zamknięty
9 odpowiedzi w tym temacie

#1 Sniper Elite

    Master

  • Power User

Reputacja: 176
Profesjonalista

  • Postów:981
  • GG:
  • Imię:Konrad
  • Lokalizacja:Skryptolandia
Offline

Napisano 22.04.2014 13:40

Witam. Piszę sporo objętościowy plugin. Nic skomplikowanego, ale zajmuje trochę miejsca i zastanawiam się czy on + kilka innych nie obciąży za mocno serwera. Dlatego mam pytanie co bardziej obciąża serwer. Zmienne, mam ich naprawdę sporo, jak bardzo obciążają serwer i czy np. optymalniej jest zrobić zmienną globalną, czy sprawdzać warunek za przy śmierci. Proszę o taki ogólny obraz sprawy, czym się kierować aby jak najmniej obciążyć serwer.

 

Dzięki za pomoc.


  • +
  • -
  • 0

Kontakt:

Steam: CSnajper

GG: 4394855

 

Na steam i GG pomagam wyłącznie odpłatnie.


#2 ^Grzyboo

    Wszechobecny

  • Użytkownik

Reputacja: 246
Wszechwidzący

  • Postów:461
  • Imię:Grzyboo
  • Lokalizacja:Tak
Offline

Napisano 22.04.2014 13:53

Dziwne pętle,

sporo kodu w PreThinku, server_frame, bardzo częstych taskach (np < 0.1s),

 

i to w sumie wszystko.

* Należy unikać robienia bardzo wielu rzeczy podczas pojedynczego wydarzenia. np. Top15 nVault (posortuj 3k wpisów w jednym momencie)

* O ile to możliwe unikać właśnie ww wydarzeń. Zamiast w PreThinku coś robić, warto czasem użyć 0.1s task - 10x rzadziej wykonywany jest.

 


  • +
  • -
  • 1

#3 Sniper Elite

    Master

  • Autor tematu
  • Power User

Reputacja: 176
Profesjonalista

  • Postów:981
  • GG:
  • Imię:Konrad
  • Lokalizacja:Skryptolandia
Offline

Napisano 22.04.2014 13:58

Dzięki, będę miał to na uwadze. A co do zmiennych globalnych uważać na to czy raczej nie ma to większego znaczenia tzn. itemki w starym codzie robię sobie pod zmienne, to bardziej ułatwia pracę niż np. sprawdzanie id itemu w funkcjach i przyznawanie bonusów. W sumie mam już ok 60 mocy = 60 zmiennych i chcę dodać więcej. To nie obciąża mocno serwera?


  • +
  • -
  • 0

Kontakt:

Steam: CSnajper

GG: 4394855

 

Na steam i GG pomagam wyłącznie odpłatnie.


#4 Andrzejek

    Ucze się :]

  • Power User

Reputacja: 136
Zaawansowany

  • Postów:1 300
  • Imię:Andrzej
Offline

Napisano 22.04.2014 14:09

Sprawdź czy nie masz error_logów jeżeli masz to napraw pluginy, według mnie obciążać serwer może być źle napisana funkcja odświeżana co 1 sek, może być także za dużo wczytywania danych na początku i końcu rundy, przy odrodzeniu, pętle które cały czas jakieś polecenia wydają, modele, winą może być sam hosting, atak ddos, amxmodx lub metamoda.

 

Pozdrawiam


  • +
  • -
  • 1

Mam do sprzedania pluginy AMXX pod serwery typu, JB, ONLY DD2, ZOMBIE, COD MOD, DR i inne...

 

Jeżeli jesteś zainteresowany(a), napisz na PW lub GG 42384104


#5 Sniper Elite

    Master

  • Autor tematu
  • Power User

Reputacja: 176
Profesjonalista

  • Postów:981
  • GG:
  • Imię:Konrad
  • Lokalizacja:Skryptolandia
Offline

Napisano 22.04.2014 14:50

Ok, ok tylko co z tymi zmiennymi? Jest duża różnica między 100 a 300 zmiennymi globalnymi?


  • +
  • -
  • 0

Kontakt:

Steam: CSnajper

GG: 4394855

 

Na steam i GG pomagam wyłącznie odpłatnie.


#6 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 22.04.2014 15:06

Jest duża różnica między 100 a 300 zmiennymi globalnymi?

300 - 100 = 200 i to chyba jedyna różnica.
  • +
  • -
  • 2

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#7 Engi

    [EKSiD] playaz44

  • Power User

Reputacja: 315
Wszechpomocny

  • Postów:1 071
  • GG:
  • Imię:Seba
  • Lokalizacja:Praga
Offline

Napisano 22.04.2014 15:08

Kiedyś jak było jeszcze FAQ amxx czy jak to tam się zwało, Benio napisał fajny artykuł o operacjach bitowych, nie mam już całości ale mam kod z pluginu, zamiast tworzyć zmienne players[33]; lepiej użyć bitów (zajmują mniej pamięci), wrzucę to na przykładzie ma_perk z coda:
 
 

#define SetBit(%1,%2)    (%1|=(1<<(%2)))
#define ClearBit(%1,%2)    (%1&=~(1<<(%2)))
#define CheckBit(%1,%2)    (%1&(1<<(%2)))
 
new ma_perk;
 
...
cod_class_enabled:
SetBit(ma_perk, id); // ustawia bit na true
 
cod_class_disabled:
ClearBit(ma_perk, id); // ustawia bit na false
 
 
//sprawdzenie bitu:
if(CheckBit(ma_perk, id))
    set_task(); // lub cokolwiek innego

@edit @notatka: to było jakoś tak 32 przy "players[33];" vs 4 "players;" data size przy kompilacji z tego co Benio pisał, więc różnica jest...
 


sebul (22.04.2014 15:22):
Czy lepiej? To zależy. Zresztą to nie ma większego wpływu na obciążenie serwera.

  • +
  • -
  • 1
Użytkowniku! Zanim napiszesz wiadomość wiedz, że:

W odpowiedzi na ten status, przejrzałem kilka ostatnich Twoich postów i dodałem Ci kolejne 3 punkty ostrzeżeń. Mam nadzieję, że pomogłem.

1:0 dla Benia :D
Nie pomagam za darmo na pw.

#8 Sniper Elite

    Master

  • Autor tematu
  • Power User

Reputacja: 176
Profesjonalista

  • Postów:981
  • GG:
  • Imię:Konrad
  • Lokalizacja:Skryptolandia
Offline

Napisano 22.04.2014 15:50

Czytałem że z define czasami są problemy, nie koniecznie w pawnie ale tak ogólnie jak się coś spiepszy to czasami ciężko błąd znaleźć i lepiej się nie przyzwyczajać do nich.

 

Dzięki za pomoc, już wszystko wiem. Można zamknąć.


  • +
  • -
  • 0

Kontakt:

Steam: CSnajper

GG: 4394855

 

Na steam i GG pomagam wyłącznie odpłatnie.


#9 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 22.04.2014 16:01

@edit @notatka: to było jakoś tak 32 przy "players[33];" vs 4 "players;" data size przy kompilacji z tego co Benio pisał, więc różnica jest...

1. Różnica jest, nie napisałem, że nie, ale to jest ostatnia rzecz na jaką można zwrócić uwagę przy optymalizacji pluginu. Ilość zmiennych ma najmniej do gadania przy obciążeniu serwera.
2. Przy 32 slotach, żeby tym sposobem sprawdzać, czy dany gracz ma coś włączone, to trzeba od id odejmować 1, bo 1<<32 przekracza już zakres inta (ze znakiem), a jak jeszcze chcemy, aby istniało id = 0, to przy 32 slotach możemy ten sposób całkowicie sobie darować, no chyba, że mamy serwer postawiony na 64 bitowym systemie (nie wiem czy istnieją takie serwery i nie wiem czy amxmodx obsługuje te 64 bity).
3. No i oczywiście coś takiego możesz zastosować tylko gdy chcesz zapisywać dane 0/1, innej wartości tam nie wpiszesz.
sebul (22.04.2014 16:55):
I jeszcze jedno, stosując tylko jedną zmienną dla każdego gracza, to w przypadku gdy napiszemy coś źle i id przekroczy zakres (0 > id lub id > 32) to nie dowiemy się tego z logów, a jeśli damy tablicę, to wtedy wywali nam błąd, że indeks dla jakiejś tam wartości nie istnieje.

  • +
  • -
  • 2

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#10 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 22.04.2014 16:02

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, report.png raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo





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

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