Ich hab mal ne kleine Frage zu Enums undzwar verwende ich für wirklich VIELES Enums, z.B. um Zeilen zu sparen, aber: Können Enums dem Server iwie schaden? Ich achte sehr drauf, dass ich immer Resourcensparend schreibe, aber kann ein Enum dazu führen, dass bspw der CPU überlastet wird (bzw die CPU auslastung extrem steigt) ?
Frage zu enums
- Exod_Martinez
- Geschlossen
- Erledigt
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
-
-
Man sagt enums sind schneller als PVars
Man sieht enums Sparen Recourcen: Statt 100 mal ein new name new password new lp nur PlayerInfoDazu solltest du die Arraygrösse nur so einstellen das diese nicht übersteht.
-
Jedoch um so mehr enums man verwendet desto größer wird die .amx, habe ich irgendwo mal gehört..
-
Jedoch um so mehr enums man verwendet desto größer wird die .amx, habe ich irgendwo mal gehört..
Ich hab momentan 14 Enums in meinem Script und es ist immernoch ziemlich "klein" (bezogen auf die norm bei der Zeilenanzahl) -
Ich selbr bin mir da auch nicht mehr sicher..
Sollte sich evt. mal @BlackAce anschauen -
Sollte sich evt. mal @BlackAce anschauen
@BlackAce: Bitte mal anschauen & AntwortenKann auch sein, dass ich mich verzählt habe, bin krank und hab die Nacht nicht geschlagen
Es sollte aber keine "Negative" Auswirkungen auf mein Script haben? -
Was soll an Enums Recourcenfressend sein
Teste es doch:
Erstell ein Script so:
enum wiss
{
Nico,
Wiss,
Weiss,
Nicht,
Egal
}
new Wiss[MAX_PLAYERS][wiss];//Und bei OnGameModeInit mal alle Werte auf 1 setzen!
Nun ein 2. Script
new Nico[MAX_PLAYERS];
new Wiss[MAX_PLAYERS];
.... -
So benutz ich es ja auch, aber ich dachte mir, dass es vllt bei fast 20 Enums "etwas" Resourcenfressend sein könnte
-
Enum ist immer sparender wie wenn man alles einzeln macht auserdem hast du mit enum nehr und einfachere möglichkeiten
-
ob ihr
new pHouse[MAX_PLAYERS];
new pKills[MAX_PLAYERS];oder
enum pInfo {
pHouse,
pKills
};
new g_pInfo[MAX_PLAYERS][pInfo];
schreibt
nimmt sich "gar nichts"beides wird gleich viel Ram verwenden Beide male müssen 2 x MAX_PLAYERS *Speicherblöcke* reserviert werden. Und auch bei beiden wird die .amx größer
-
-
Enum ist immer sparender wie wenn man alles einzeln macht auserdem hast du mit enum nehr und einfachere möglichkeiten
ENum und sparender?
Ich glaub du weißt nicht wo von du sprichstMan sagt enums sind schneller als PVars
Man sieht enums Sparen Recourcen: Statt 100 mal ein new name new password new lp nur PlayerInfo
Enum ist eine Struktur und keine Form von Variablen, somit hast du automatisch unrecht.Dazu solltest du die Arraygrösse nur so einstellen das diese nicht übersteht.
Und was machen enums?Wie schon von mir erwähnt stellen sie eine Struktur dar.
ich versuchs mal einfach zu erklären, vielleicht schreib ich nachher mal ein tutorial darüber.
enum Struk
{
Nico,
Wiss,
Weiss,
Es[5],
Nicht
}// Das ist jetzt keine Anspielung o.ä. ich hab das einfach nur kopiert :D
So jetzt haben wir unsere Struktur, die im Grunde auch als Präprozessor, genauer Konstante, dient.
Diese hat einen Wert von 9 bzw. "Struk" hat den Wert 9.
Somit können wir sie mit 0 - 8 ansprechen wie wir lustig sind ohne die Namen nutzen zu "müssen".Gut kommen wir erstmal dazu, warum es überhaupt einen Wert von 9 hat, obwohl da 5 Variablen/Namen stehen.
Der Array "Es[5]" wird auch mit gezählt und hat 5 Werte.
Nico = 0
Wiss = 1
Weiss = 2
Es = 3 - 7
Nicht = 8Wenn wir jetzt die dazugehörige Variable Initialisieren, erstellen wir automatisch einen Array.
I.d.R. wird er 2 Dimensional gehandelt.
Ich mach hier nur einen ein Dimensionalen
new Var[Struk];
Die Deklaration kann überall stattfinden, ob in einer Funktion/Callback oder außerhalb von Funktionen.In der Theorie steht hier aber new Var[9];
Grundsätzlich falsch, aber eigentlich auch nicht
Denn wir können den Array via
Var[2] = 6;
nicht ansprechen.
Man würde einen Tag Mismatch bekommen.Nun kommt der Strukturen-/Enumname zum einsatz
Var[Struk:2] = 6; ist also möglich.Was ich euch damit sagen will, ist:
Enums sind KEINE Variablen, sie sind Auflistungen von Konstanten -
@Blackace: Du willst jetzt sagen deine Struktur ist langsamer als wenn du alles mit Variablen regelst?
Kapier ich nicht! Wieso ist mein Enum Strukturscript kleiner als mein Script mit 10 Variablen?
-
Du willst jetzt sagen deine Struktur ist langsamer als wenn du alles mit Variablen regelst?
Das hab ich nie gesagt, die Geschwindigkeit ändert sich dadurch sicherlich nicht -
Achso ich dachte wir reden über Speichergrössen
Sorry
-
breadfish.de
Hat das Thema geschlossen.