Speicherverbrauch senken.



  • svenja schrieb:

    Du hast die Member der STruktur sicherlich mit Accessors (Gettern/Settern) gekapselt und die Datenmember sind private.

    Private??. Ich dachte in einer Struktur kann man keine Zugriffskontrolle mit private / public oder protected deklarieren?

    Doch, klar?? Das geht?
    Wußtest Du das nicht!!
    ~Wirre Zeichensetzung kopiert; damit Du mich besser verstehst:~



  • @Martin Richter

    Dein Beitrag ist etwas irreführend. Du schreibst struct sei das gleiche wie

    class myclass
    {
    public:
    ...
    };

    Was willst du mir nun sagen struct ist gleich wie eine Klasse mit der Zugriffskontrolle und zwar alles public: Dann stimmst du mir ja zu dass eine strucht nicht private: kann. Oder willst du mir sagen dass struct genau das selbe ist wie class.

    Wenn zweites, was ist dann der Unterschied zwischen class und struct. Und wann benutze ich dann struct und wann class.



  • Bei struct ist wenn man nix anderes einstellt von automatisch private? Bei class public?



  • Bei struct ist wenn man nix anderes einstellt von automatisch private? Bei class public?

    Das kann ja beim besten Willen nicht sein. Bisher habe ich noch bei keiner meiner structs ein Zugriffsspezifizierer eingesetzt. Dann müssten meine structs ja alle private sein. Wieso kann ich dann auf alle von aussen zugreifen?



  • svenja schrieb:

    Bei struct ist wenn man nix anderes einstellt von automatisch private? Bei class public?

    Das kann ja beim besten Willen nicht sein. Bisher habe ich noch bei keiner meiner structs ein Zugriffsspezifizierer eingesetzt. Dann müssten meine structs ja alle private sein. Wieso kann ich dann auf alle von aussen zugreifen?

    Umgekehrt...



  • Umgekehrt...

    Ok so bin ich einig. Und das ist der einzigste Unterschied. Wegen so was macht man 2 verschiedene Konstrukte.



  • Martin Richter schrieb:

    Ist der Inhalt der Strings wiederkehrend gleich? Dann könnte sich hier ein Cache anbieten.

    Nein sind sie nicht!

    Martin Richter schrieb:

    Wie lang sid die Strings, was steht drin?

    Name:
    Variert meistens zwischen 15 zeichen 50 wobei auch weniger und mehr Zeichen vorkommen können

    ShortName:
    Durschnitt ca 15-20 Zeichen

    Kommentar:
    Variert stark

    Also man kann sagen alles sehr unterschiedlich.



  • svenja schrieb:

    Vielleicht solltest Du dir mehr Gedanken ums Design machen.

    Was hat das Design damit zu tun. Ich habe die Daten und die brauchen Soeicherplatz. Und wenn du meinst ich muss das Design meiner Speicherung ändern. Das war ja anfänglich meine Frage.

    Vielleicht braucht es ja Dein Programm aber Grundsätzlich bringt es nichts alles einzulesen wo es vielleicht in dem Moment sowieso nicht gebraucht wird.

    Es wird alles benötigt. Ob ihr mir das nun glaubt oder nicht.

    Vielleicht hilft auch eine Datenbank.

    Klar würde die helfen. Ich habe aber keine zur Verfügung. Und hierüber brauchen wir auch gar nicht diskutieren. Geht nicht.

    Ohne das Du mehr rausläßt kann man da nicht viel sagen. Viele Daten brauchen nunmal Speicher. Wenn Du so ein Geheimnis daraus machst was soll ich da noch antworten.
    Du hast die Daten aber die müssen ja nicht unbedingt im Speicher stehen oder?
    Mit Design meinte ich ob alle Daten im Speicher vorliegen müssen.
    Wenn Du keine DB zur Verfügung hast dann erstelle Dir eine. MSSQL Compact wäre was.
    Wenn Du aber nicht über alternativen diskutieren willst dann bitte.



  • svenja schrieb:

    std::string bringt mir übrigens + 100MB.

    Das wären bei 500k Nodes ja ~210 Bytes mehr Overhead pro String gegenüber CString. Kaum zu glauben.
    Woher hast du die Zahlen über den Speicherverbrauch? Und was ist der Index-Typ der map?



  • Unix-Tom schrieb:

    Ohne das Du mehr rausläßt kann man da nicht viel sagen. Wenn Du so ein Geheimnis daraus machst was soll ich da noch antworten.

    Was willst du denn noch mehr wissen. Ich habe die Struktur bekannt gegeben. Diese kommt 500.000 mal vor. Soll ich die meine paar tausend Zeilen Code posten?

    Unix-Tom schrieb:

    Viele Daten brauchen nunmal Speicher.

    Klar. Kein Thema meine Frage war ja nur ob man optimieren kann.

    Wenn Du keine DB zur Verfügung hast dann erstelle Dir eine. MSSQL Compact wäre was.
    

    Eigentllich habe ich gesagt darüber brauchen wir gar nicht zu diskutieren. Ich weiß dass es da möglichkeiten gibt. Aber das Programm läuft nun mal auf einer Maschine und dort ist es nicht erlaubt eine Datenbank zu installieren. Wir können jetzt auch noch einen Thread aufmachen darüber.

    Unix-Tom schrieb:

    Wenn Du aber nicht über alternativen diskutieren willst dann bitte.

    Nicht aber über Dinge die ich genau weiß das ich das nicht einsetzen kann.

    Registrierter Troll schrieb:

    Woher hast du die Zahlen über den Speicherverbrauch?

    Systinternals - Processexplorer

    Und was ist der Index-Typ der map?
    CString. Ja ich weiß braucht Platz, kann ich aber nichts machen brauch ich halt.



  • So wir können die Disskusion gerne beenden. Ich weiß dass viele Daten viel Platz benötigen ist ja auch ok. Wollte ja nur wissen ob es möglich ist zu optimieren wenns nicht geht dann halt nicht.



  • svenja schrieb:

    Ich weiß dass viele Daten viel Platz benötigen ist ja auch ok. Wollte ja nur wissen ob es möglich ist zu optimieren wenns nicht geht dann halt nicht.

    Vermeide Redundanzen. Benutze die richtigen Datentypen. Lade nur so viel in den Speicher, wie benötigt wird. Viel mehr kann man auf diesem Level eigentlich nicht sagen.
    Als allgemeiner Tipp: sei weniger störrisch und weniger aggressiv, wenn du Hilfe willst.



  • Vermeide Redundanzen. Benutze die richtigen Datentypen. Lade nur so viel in den Speicher, wie benötigt wird. Viel mehr kann man auf diesem Level eigentlich nicht sagen.

    Habe ich alles gemacht. Dann ist ja ok dann braucht es halt so viel speicher!

    Als allgemeiner Tipp: sei weniger störrisch und weniger aggressiv, wenn du Hilfe willst.

    Ich bin störrisch und aggresiv. Ok habe eigentlich nur versucht auf jede Anregung eine passende Antwort zu geben.

    Ok nun ist aber gut. Der Thread geht nun schon über 5 Seiten und ich dachte ich hätte eine Frage mit einfacher Lösung 😉


Anmelden zum Antworten