Optimieren Sie den Speicher, indem Sie mit vielen Daten arbeitenHallo !
Ich führe viele Analysen in einer Schleife durch – etwa Millionen – und muss die Ergebnisse speichern. Bei diesen Ergebnissen handelt es sich um Textwerte und numerische Werte. Bisher habe ich die Ergebnisse in einer Datentabelle gespeichert, aber mit zunehmender Größe der Tabelle nimmt auch der Speicher zu und die Geschwindigkeit der Analysen nimmt tendenziell ab.
Ich suche nach einer Möglichkeit, Zeit und Speicher zu sparen.
Die Tabelle ist bereits privat (wie in einem anderen Thema des Forums vorgeschlagen); Es macht es besser, reicht aber nicht aus.
Ich habe versucht, meine Textvariablen in einer Liste und meine numerischen Variablen in einem Vektor zu speichern (das ist für R ziemlich effizient). Vielleicht habe ich es falsch gemacht, aber es scheint hier die Zeit der Schleife zu verlängern.
Hat jemand eine gute Idee?
Ich verwende Jmp 14, kann aber auf JMP 16 zugreifen.
Automatisierung und SkripterstellungBetreff: Speicher optimieren, wenn mit vielen Daten gearbeitet wirdWelche konkreten Plattformen nutzen Sie? Mit JMP 16 und 17 wurde die Geschwindigkeit vieler Plattformen verbessert.
Außerdem können Sie die HP Time()-Funktion zum Testen von Iterationen verwenden. Einige gute Diskussionen sind Hier Und Hier .
Betreff: Speicher optimieren, wenn mit vielen Daten gearbeitet wirdHinzufügen zu @Jed_Campbell Antwort von: Sie können auch die Profilierungsfunktion im JMP verwenden Debugger um festzustellen, wo die Engpässe liegen.
Betreff: Speicher optimieren, wenn mit vielen Daten gearbeitet wirdWenn Ihnen der Speicher ausgeht, achten Sie auf private Datentabellen, die Sie vergessen haben, zu schließen. (Versuchen Sie, sie unsichtbar statt privat zu machen, um sicherzustellen, dass Sie sie geschlossen haben. „Unsichtbar“ wird immer noch im Startfenster angezeigt.)
Wenn JMP immer langsamer läuft
- Wenn Sie einen Old-School-Desktop mit einer Festplattenbeleuchtung haben, behalten Sie diese im Auge, um zu sehen, ob sie dauerhaft eingeschaltet bleibt. Möglicherweise erstellen Sie wirklich große Matrizen. J(10000) erstellt eine 2D-Matrix (nicht eine 1D-Matrix).
- Wenn Sie einen String oder eine Matrix durch Verkettung bis zum Ende erstellen, wird das sehr langsam, je größer der String oder die Matrix wird. Ordnen Sie der Matrix vorab die richtige Größe zu oder verwenden Sie eine Liste von Zeichenfolgenteilen, gefolgt von „concatitems()“, wenn Sie fertig sind.
Verwenden Sie den Profiler des JSL-Debuggers als @Mark_Bailey schlägt vor.
Wrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoSchraubenschlüssel, Uhr, los
Wenn Sie Glück haben, gibt es einen offensichtlichen Hotspot, der mit den oben genannten Punkten übereinstimmen könnte.
Betreff: Speicher optimieren, wenn mit vielen Daten gearbeitet wirdIch verwende die Kmean-Plattform (und öffne und schließe während des Prozesses Berichte).
Ich bin es gewohnt, tick second () zu verwenden, ich wusste nichts über Hp time() . Scheint es ähnlich zu sein?
Ich schaue mal nach den Diskussionen, die du gesehen hast, danke.
Betreff: Speicher optimieren, wenn mit vielen Daten gearbeitet wirdDanke, Craige, das ist wirklich ein guter Rat. Ich hatte keine Ahnung, ob eine vorherige Größenzuweisung helfen würde!
Ich bin mir ziemlich sicher, dass es nicht um Tabellen geht, die ich vergessen habe zu schließen, weil ich einen Schritt in meinem Skript hatte, bei dem meine Tabellen sichtbar waren.