Limit für Schleifen?

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
  • Moinsen!


    Bei dem jetzigen System das ich schreibe nutze ich viele Schleifen und dies auf einem DM Server die dann jedes mal genutzt wenn der Spieler Schaden bekommt. Jetzt frage ich mich wie viele Schleifen sind für einen durchschnittlichen SAMP Server mal zu viel? Diese fragen sich dann immer mindestens 250 Slots durch.

  • Zuviel ist, wenn der Server anfängt zu laggen.
    Wenn du irgendeinen User suchst, kannst du die Schleife abbrechen, damit diese nicht sinnlos weiterläuft. Daher sollte das kein Problem darstellen.


    /edit Du musst dich natürlich immer fragen, wie man das noch ressourcenschonender lösen könnte. Nicht überall sind Schleife notwendig.

  • Leider suche ich mit diesen Schleifen mehrere Spieler und dann noch abzufragen wv würde die Funktion noch größer werden lassen. Klar kann ich hier und da noch einspare aber bevor ich weitermache wollte ich halt mal wissen was zu viel ist.


    Klar wenns laggt ist es zu viel^^
    Aber wann laggt es auf einen durchschnittlichen Server? Sagen wir 10 Schleifen die durch 250 Slots gehen jede Sekunde? Ist das zu viel?

  • Aber wann laggt es auf einen durchschnittlichen Server? Sagen wir 10 Schleifen die durch 250 Slots gehen jede Sekunde? Ist das zu viel?

    Dafür gibt es keine ungefähre/festgelegte Grenze. Jeder Server hat unterschiedlich viel "Power" (genug für zahlreiche Schleifen) zur Verfügung.
    Solang die Schleifen sinnvoll eingesetzt sind, kannst du unendlich viele benutzen ;)

  • Ganz einfach: Das Limit setzt die CPU des Servers. Pauschal kann man das nicht sagen. Solange alles flüssig läuft und keine Laggs auftreten musst du dir keine Sorgen machen.
    Du kannst dir die Laufzeit einer solchen Schleife auch mal ausgeben lassen (GetTickCount()), dann weißt du wie lange die läuft. Wahrscheinlich wird das im Bereich 1-5ms sein, was absolut kein Problem ist.

  • Es kommt in erster Linie drauf an was du alles während der normalen Serverlaufzeit ausführen lässt, wie viele Spieler aktuell drauf sind und wie viel Code pro Spieler regelmäßig ausgeführt wird. Es kann sogar passieren das ein simpler Loop um einen Spieler zu finden den Server zum laggen bringen kann. Am besten schaust du dir mal an wie ein SA:MP Server funktioniert, dann kannst du dir das denke ich mal besser vorstellen und weißt wie du den Code am besten verteilst.

  • Hm.. schade, dachte es gibt dafür eine durchschnittliche Anzahl oder so. Dann werde ich einfach mal rumprobieren müssen. Danke euch

    Man kann immer eine Schätzung abgeben, aber diese sind eigentlich immer auf eigenen Erfahrungen aufgebaut und man weiß nie wie Ressourcenlastig der Hilfesuchende seinen Code schreibt. Es gibt Scripts die eine simple Spieler suche zum laggen bringen obwohl gerade mal 10 Spieler drauf sind, aber es gibt dann wieder Scripts die mit 500 Spielern noch Locker solche Loops schaffen ohne einen spürbaren Lagg zu verursachen. Hab dir mal einen Link dazu rausgesucht, musst dich leider mit dem Englischen zufriedenstellen, der deutsche ist offline: http://forum.sa-mp.com/showpost.php?p=876854

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