samp-server.exe beansprucht nach ~5 min 100% CPU

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
  • Hallöschen,


    Ich habe derzeit ein Selfmade...
    Seit einiger Zeit ist mir aufgefallen das nach ~5-10 Minuten mein Gesamter PC anfängt zu laggen, der Grund ist das die samp-server.exe die CPU Auslastung auf 100% zieht.
    Sobald ich "samp-server.exe" über den Task Manager beende, läuft alles wieder flüssig.


    Ich habe weder Errors noch irgendwelche meldungen im Compiler oder in der Konsole, garnichts.
    Hat vielleicht jemand eine Idee was der Grund sein könnte?

  • ich schätze jetzt einfach mal das du vill. zuviel in onplayerupdate drin hast das 50x in der sekunde oder so aufgerufen wird.
    Könnte ich mir zumindest vorstellen das es daran liegt.


    //edit
    solltest du wirklich OnPlayerUpdate nutzen, versuch es so wenig wie möglich bis garnicht zu nutzen.
    Dieser public wird wie gesagt 50x iner sekunde aufgerufen oder so und das zieht schon ziemlich viel ressourcen.

    >> sPa.M << go, go,Bann me, Bann me

    Einmal editiert, zuletzt von eronor ()

  • Zitat

    Irgendwelche Timer, die sich addieren und jeder einzelne weiterläuft?


    Oder irgendeine Endlosschleife?

    Die einzigen Schleifen sind die, die alle Spieler, Fahrzeuge oder Häuser/Biz durch gehen, die sind aber eig. nicht Endlos
    und Timer die sich addieren sind nur im Tutorial, werden aber nich endlos addiert und nur im Tutorial aufgerufen.



    ich schätze jetzt einfach mal das du vill. zuviel in onplayerupdate drin hast das 50x in der sekunde oder so aufgerufen wird.
    Könnte ich mir zumindest vorstellen das es daran liegt.

    OnPlayerUpdate ist komplett unberührt.

  • Die einzigen Schleifen sind die, die alle Spieler, Fahrzeuge oder Häuser/Biz durch gehen, die sind aber eig. nicht Endlos
    und Timer die sich addieren sind nur im Tutorial, werden aber nich endlos addiert und nur im Tutorial aufgerufen.



    OnPlayerUpdate ist komplett unberührt.

    Heist das du hats kein OnPlayerUpdate or what?

  • Mal son kleiner gedanke was mir mal passiert war. Als ich dann ne hohe CPU Auslastung bekam.
    schau mal deine Timer durch, ob im Public den der Timer aufruft. Der Timer vill. nochmal aufgerufen wird.


    beispiel: du hast ein timer auf auf false der im public auf nochmal aktiviert wird aber dann auf true.
    dann wiederholt sich der timer immerwieder und jedesmal wenn er im public ist verdoppeln sich die timer die gleichzeitig laufen.


    1. Timer ---> ruft public auf ---> 2.timer
    1. und 2. timer laufen ---> rufen public auf ---> 3. und 4. timer laufen 1. timer ruft 3. auf und 2. timer ruft 4. auf
    1. 2. 3. und 4. timer laufen --> rufen public auf ---> 5. 6. 7. 8. timer laufen


    dann laufen schon 8 timer, ich hoffe du weißt was ich meine und ich konnte dir helfen.
    mfg. eronor

    >> sPa.M << go, go,Bann me, Bann me

  • Dieser public wird wie gesagt 50x iner sekunde aufgerufen oder so und das zieht schon ziemlich viel ressourcen.


    Was für ein Schwachsinn.


    Das mag vielleicht stimmen wenn er lokal ~30 Leute hat und die sich bewegen.
    OnPlayerUpdate wird aufgerufen wenn der Server die anderen Clienten Updaten muss.
    Das kommt nicht sehr häufig vor.
    Ich weiß nicht woher ihr diesen Schwachsinn eigentlich habt, es stimmt nämlich hinten und vorne nicht.


    Selbst wenn es häufig aufgerufen werden sollte wird das keine CPU last von 100 % erzeugen.
    Das schaffen nur Timer oder Schleifen die Endlos laufen

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Es ist aber besser als ihm keine Antwort zu geben...
    Denn so würde er das Problem niemals gelöst haben.
    Außerdem wird es auch 50~ aufgerufen wenn nur 1 Spieler auf den Server ist der sich bewegt.
    Und das ist ja wohl auf jedem Server der fall weil die Leute spielen.
    einfach mal SendClientMessage(playerid,FARBE,"Text"); in OnPlayerUpdate schreiben dann siehst du das es oft genug aufgerufen wird.
    Dass es so eine hohe CPU Auslastung nicht bewirkt mag wohl stimmen das weiß ich nicht.
    Aber es war eine Idee weshalb es sein könnte, man brauch nicht auf Antworten rumhaken nur weil man helfen will... :thumbdown:

    >> sPa.M << go, go,Bann me, Bann me

  • Compile dein Skript im Debugmodus und alle anderen Filterscripts auch.
    Dann füge das Profiler Plugin hinzu (http://forum.sa-mp.com/showthread.php?t=271129) und du solltest das Problem finden, wie BlackAce sagte kann es an vielen liegen meistens Endlosschleifen.


    @ALL:
    Zu OnPlayerUpdate.. Ich habe in meinen aktuellen Scripts auch "1000" Zeilen in OnPlayerUpdate aber das OnPlayerUpdate Ressourcen "frisst" Stimmt nicht sondern der Code der darin ist solang man denkt während man in OnPlayerUpdate irgendetwas macht ist es relativ EGAL.


    Und OnPlayerUpdate ist von "onfoot_rate", "incar_rate", "weapon_rate" abhängig.
    Das heißt (Zu Fuß bei vollen Touren) (Onfoot Rate 25) 25xSekunde (+/-).

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen