Server verbraucht viel zu viel CPU-Auslastung

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo erstmal,


    ich hab folgendes Problem. In meine Script stimmt einfach irgend etwas nicht, wenn mehr als 30 User auf dem Server sind, fängt der Server übelst zum laggen an, ich weiß echt nicht voran es liegen könnte. Er braucht auch so wenn nicht viele User drauf spielen, einfach zuviel Auslastung. Ich hab schon bisschen rumgesucht, was die Ursache sein könnte, aber ich finde einfach nichts. An den timern denke ich mal kann es nicht liegen, weil timer hab ich echt nicht viele drinne.


    Deshalb wollte ich euch fragen, was die Ursache ist.



    Würde mich über Antworten freuen.



    MfG


    4Link

  • Bei den for-player-Schleifen würde ich statt "MAX_PLAYERS", einfach "GetMaxPlayers()" benutzen.


    Außerdem würde ich auf dcmd bzw. sscanf umsteigen. Verbraucht viel weniger Ressourcen.

    Help dcmd & sscanf to their way to Pawn domination. Read the tutorial below, and use it.
    dcmd & sscanf

  • Bei den for-player-Schleifen würde ich statt "MAX_PLAYERS", einfach "GetMaxPlayers()" benutzen.


    Außerdem würde ich auf dcmd bzw. sscanf umsteigen. Verbraucht viel weniger Ressourcen.


    Zum 1.Nein,das stimmt absolut nicht.Ich find leider den Post nicht mehr wo ich die Datan hatte.
    //Edit: Hab es doch noch gefunden : >> Klick <<
    Das ist vorallem besser es in der Methode #3 zu machen wenn man einen Server hat der nicht 200 Slots haben soll.Wer noch eine bessere Lösung möchte sollte sich das Ende des Posts nochmal angucken ...


    Zum 2.Eindeutig,sehr zu empfehlen.

    Zitat

    25 0er timer, 14 1er timer


    Was sind denn 0er oder 1er timer?


    Es gibt noch viel mehr möglichekeiten den Server zu entlasten.Ein großes Thema ist die deklaration von Variablen.
    Wenn man von vorne rein weiss,das sein Server nicht 200 Slots für Spieler haben soll,kann man etwas ändern.

    // unter #include <a_samp>
    #if defined MAX_PLAYERS
    #undef MAX_PLAYERS
    #define MAX_PLAYERS 80
    #endif

    Das benutzte Ich zB.Da der Server sowieso nur auf 80 Slots gestellt ist,brauch ich keine Variablen mit einer größe von 200 ( = MAX_PLAYERS ) erstellen.Ob es wirklich schonender ist kann ich nicht sagen,wüsste nicht wie man es testen könnte.Es spart jedoch etwas an der *.AMX größe.
    Außerdem ist es besser es so zu benutzten als in der oben gezeigten Methode #3 mit GetMaxPlayers.Es handelt sich nur um einen bruchteil einer ms,aber MAX_PLAYERS auf 80 definiert ist besser als eine Variable im Loop die auf 80 gesetzt ist.


    Code optimisations - updated 03/01/08

    4 Mal editiert, zuletzt von Goldkiller ()