Ressourcenschonend?

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
  • Hi,
    habe mal eine Frage: Wie halte ich den RAM vom Server flach, worauf muss ich achten?


    Denn ich habe folgendes Problem:
    Mein Script soll laut Hoster wohl ordentlich viel RAM verbrauchen, so, das hätte ich eigtl. nicht gedacht ... folgendes:
    Ich lade bei OnGameModeInit 4 Dinge:

    • Fraktionsautos
    • Tankstellen
    • Autohäuser
    • Industrien

    Bspw bei Industrien sind es 7x10 Queries, ist das eine hohe Serverauslastung?


    So, die laden wie folgt (Beispiel):
    stock LoadFraktionsautos()
    {
    new string[15],
    vehicleid = 1;
    while(vehicleid < MAX_KNOWING_VEHICLES)
    {
    format(string, sizeof(string), "%d", vehicleid);
    FVehicle[vehicleid][Tank] = mysql_GetInt("Fraktionsautos", "Tankmenge", "ID", string);
    format(FVehicle[vehicleid][Kennzeichen], MAX_KZ_LENGH, mysql_GetString("Fraktionsautos", "Kennzeichen", "ID", string));
    FVehicle[vehicleid][Color1] = mysql_GetInt("Fraktionsautos", "Color1", "ID", string);
    FVehicle[vehicleid][Color2] = mysql_GetInt("Fraktionsautos", "Color2", "ID", string);
    FVehicle[vehicleid][vehX] = mysql_GetFloat("Fraktionsautos", "x", "ID", string);
    FVehicle[vehicleid][vehY] = mysql_GetFloat("Fraktionsautos", "y", "ID", string);
    FVehicle[vehicleid][vehZ] = mysql_GetFloat("Fraktionsautos", "z", "ID", string);
    FVehicle[vehicleid][vehA] = mysql_GetFloat("Fraktionsautos", "a", "ID", string);
    FVehicle[vehicleid][Modell] = mysql_GetInt("Fraktionsautos", "VehicleModel", "ID", string);
    FVehicle[vehicleid][Fraktion] = mysql_GetInt("Fraktionsautos", "FraktionID", "ID", string);
    SetVehicleNumberPlate(CreateVehicle(FVehicle[vehicleid][Modell],FVehicle[vehicleid][vehX],FVehicle[vehicleid][vehY],FVehicle[vehicleid][vehZ],FVehicle[vehicleid][vehA],FVehicle[vehicleid][Color1],FVehicle[vehicleid][Color2], -1), FVehicle[vehicleid][Kennzeichen]);
    printf("Fraktionsauto %d/%d geladen (Modell: %d, Fraktion: %d)", vehicleid, MAX_KNOWING_VEHICLES, FVehicle[vehicleid][Modell], FVehicle[vehicleid][Fraktion], FVehicle[vehicleid][Kennzeichen]);
    vehicleid++;
    }
    return 1;
    }
    MAX_KNOWING_VEHICLES entsteht wie folgt:
    stock FraktionsautosCount()
    {
    new Get[128],
    count;
    mysql_query("SELECT MAX(`ID`) FROM Fraktionsautos");
    mysql_store_result();
    mysql_fetch_row(Get);
    count = strval(Get);
    MAX_KNOWING_VEHICLES = count;
    printf("%d count",count);
    mysql_free_result();
    return 1;
    }


    Ist das "normal" oder wie lade ich am besten?

    Einmal editiert, zuletzt von TutNichts ()

  • Das laden von dingen hat eigentlich kaum auswirkung auf den RAM nur kurzzeitig,


    was aer RAM ziehst sind überdimensionierte variablen wie z.B.: new string[256];

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

    Margarete Stokowski

  • Ja wobei ich nicht verstehe, warum du eine while schleife nutzt und format statt strval

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

    Margarete Stokowski