RAM vs CPU

Von: , Frage gestellt am Di, 11. Okt 2005

Hallo,

mir tut sich greade eine Frage auf.

Sollte man den RAM ( evtl mit Virtuellem ) beforzugen und CPU-Zeit sparen.
Oder, eher den RAM schonen und die CPU zum Qualmen bringen.

Das erste wohl eher wenn geschwingikeit gefragt ist und
Zweiteres bei Resurcen-Mangel.

Was Denkt Ihr ???

Inne

7 Antworten zu dieser Frage

  1. Antwort von nach 15 Minuten 0 hilfreich
    Re: RAM vs CPU

    Moien Was Denkt Ihr ???
    Es hängt von der CPU und der RAM-Grösse ab... Reden wir über PC oder über Microcontroller ?

    Aber eines gilt immer: niemals den RAM restlos aufbrauchen. Also niemals den swap bewust nutzen. swap ist böse.

    cu

    • Antwort von nach einer Stunde 1 hilfreich
      Re^2: RAM vs CPU

      Reden wir über PC oder über Microcontroller ?
      über PC...
      Ich benutze auch das erste Beispiel aber es geht mir ums Prinzip,
      Und auch in berücksichtung der Späteren Datei-Größe die ich im ersten (Haupt) Eintrag vergessen habe zu erwähnen.

      Mal ein Code beispiel in Worten:

      1|Zeichenkettenlänge ermitteln und in Var. Speichern (Zum Abfragen bereithalten);
      2|Do-While Schleife
      3|{
      4| ... (Weitere Aktionen) ...
      5| Zeichenkettenlänge aus Var. Abfragen und Verarbeiten;
      6| ... (Weitere Aktionen) ...
      7|}

      Oder:

      1|Do-While Schleife
      2|{
      3| ... (Weitere Aktionen) ...
      4| Zeichenkettenlänge ermitteln und Verarbeiten;
      5| ... (Weitere Aktionen) ...
      6|}

      • Antwort von nach einer Stunde 0 hilfreich
        Re^3: RAM vs CPU

        Hallo Inne, 1|Zeichenkettenlänge ermitteln und in Var. Speichern (Zum
        Abfragen bereithalten);
        2|Do-While Schleife
        3|{
        4| ... (Weitere Aktionen) ...
        5| Zeichenkettenlänge aus Var. Abfragen und Verarbeiten;
        6| ... (Weitere Aktionen) ...
        7|}

        Oder:

        1|Do-While Schleife
        2|{
        3| ... (Weitere Aktionen) ...
        4| Zeichenkettenlänge ermitteln und Verarbeiten;
        5| ... (Weitere Aktionen) ...
        6|}
        "Speicher" "läuft" mit maximal 200 MHz,
        ein moderner Prozessor läuft mit
        mindestens 2000 MHz.

        Ausserdem passieren alle Berechnungen im
        Prozessor, die Daten müssen also erstmal vom
        Speicher über den Bus in den Prozessor.

        Rechne damit, dass bei modernen PC's
        die effektive (resultierende) "Speicher-
        geschwindigkeit" um den Fakor Tausend
        (10^3) niedriger ist als die "Prozessor-
        geschwindigkeit". Als Faustregel.

        Es kann, wenn Du Glück hast, auch
        "nur" um den Faktor 10 oder 100
        langsamer sein. Das kommt ganz
        darauf an.

        Stichworte: 'L1 cache', 'L2 cache',
        'Speicherlatenzzeit', 'Speichertransferrate',
        'Busfrequenz' usw.

        Grüße

        CMБ

      • Antwort von nach 6 Stunden 0 hilfreich
        Re^3: RAM vs CPU

        1|Zeichenkettenlänge ermitteln und in Var. Speichern (Zum
        Abfragen bereithalten);
        2|Do-While Schleife
        3|{
        4| ... (Weitere Aktionen) ...
        5| Zeichenkettenlänge aus Var. Abfragen und Verarbeiten;
        6| ... (Weitere Aktionen) ...
        7|}

        Oder:

        1|Do-While Schleife
        2|{
        3| ... (Weitere Aktionen) ...
        4| Zeichenkettenlänge ermitteln und Verarbeiten;
        5| ... (Weitere Aktionen) ...
        6|}
        Hallo Inne
        Das erste Beispiel ist deutlich besser. Diese geschachtelten Funktionen brauchen länger. Solange die Zeichenkette in der Länge nicht geändert wird, spricht nichts dagegen, die Länge in einer Variablen zu speichern.
        Aber beide Methoden haben nicht viel mit Speicherverbrauch zu tun. Der Hauptspeicherverbrauch liegt mit Sicherheit in der Zeichenkette. Eine Variable für die Stringlänge braucht maximal nur 4-Byte, je nach System.
        MfG
        Matthias

      • Antwort von nach 23 Stunden 0 hilfreich
        Re^3: RAM vs CPU

        Moien über PC...
        Also i.A. über Geräte mit mehr als 256 MB RAM. D.h. auf 4 byte kommt es nicht an. Ich benutze auch das erste Beispiel aber es geht mir ums
        Prinzip,
        Zu deinem Beispiel: man speichert die Länge einer Zeichenkette vor dem verarbeiten immer in einer Variable. Es ist schneller, egal über welche Art von CPU wir reden.

        Versuch nicht solche Details zu optimieren wenn anderswo noch grosse Einsparungen möglich sind. Erst wenn du alles aus dem Rechner rausgeprügelt hast kannst du dir über int-Variablen Sorgen machen. Und auch in berücksichtung der Späteren Datei-Größe die ich im
        ersten (Haupt) Eintrag vergessen habe zu erwähnen.
        Wird die Datei auf einen Schlag eingelesen ? Oder suchst du in dem Ding rum ? Gehts um KB oder MB ?

        cu

        • Antwort von nach 4 Tagen 0 hilfreich
          Re^4: RAM vs CPU

          Gehts um KB oder MB ?
          "egal" es ging um die Größe der compelierten Datei.

  2. Antwort von nach einem Tag 0 hilfreich
    Re: RAM vs CPU

    Hallo Inne,

    Aus deineer anderen ANtwort entnehme ich, dass du PCs sprichst und nicht von MicroControllern. mir tut sich greade eine Frage auf.

    Sollte man den RAM ( evtl mit Virtuellem ) beforzugen und
    CPU-Zeit sparen.
    Oder, eher den RAM schonen und die CPU zum Qualmen bringen.

    Das erste wohl eher wenn geschwingikeit gefragt ist und
    Zweiteres bei Resurcen-Mangel.
    Da gibt es keine Allgemeine Antwort.
    Es kann heutzutage schneller sein, etwas in einer Schleiffe zu programmieren als das selbe linear zu erledigen. "Schuld" daran ist der Cache. Wenn die ganze Schleiffe in den Cache passt wird sie schneller abgearbeitet als ein lineares Programm. Ohne Cache ist das lineare Programm schneller.

    Grundsätzlich ist das RAM schneller als die Festplatte, da liegt schon so ein Faktor 1'000 bis 10'000 drin.

    Allerdings geht aus deiner Frage nicht hervor ob du dich auf das Programm oder die Daten beziehst, aber sowohl als auch kommt es halt darauf an, wie oft darauf zugegriffen wird.

    MfG Peter(TOO)

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!