Autor
|
Thema: Speicherbedarf von Integer minimieren (571 mal gelesen)
|
Opa Mitglied Selbständiger Simulationsexperte
Beiträge: 62 Registriert: 16.06.2005 eM-Plant 7.6 / 8.2 Development License
|
erstellt am: 08. Nov. 2010 20:14 <-- editieren / zitieren --> Unities abgeben:
Hallo! Mein Modell enthält sehr viele Tabellen mit sehr vielen Integer-Werten: genau 1.624.860 Einträge. Dadurch benötigt es auf der Festplatte >12 MB, ohne diese Daten sind es nur gut 6 MB - die Speicherplatztreiber sind also diese Integers. Zum Datenaustausch über eMail mit meinem Kunden sollen es aber nicht mehr als 8 MB sein. Da die Zahlen max. 4 Stellen haben, würden 2 Byte/Wert genügen - solche Möglichkeiten gibt's ja in anderen Systemen. Habe schon probiert, die Zahlen als String zu verwalten, bringt aber nichts. Da viele Zahlen mehrfach vorkommen wäre auch ein Verweis in eine Tabelle denkbar, aber der hat ja dann auch wieder mindestens Integer- oder Stringgröße. Also meine Frage: hat jemand eine Idee, wie man bei so kurzen Zahlen Speicherplatz sparen kann? Bin für jeden Tipp dankbar. Gruß Opa [Diese Nachricht wurde von Opa am 08. Nov. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Opa Mitglied Selbständiger Simulationsexperte
Beiträge: 62 Registriert: 16.06.2005 eM-Plant 7.6 / 8.2 Development License
|
erstellt am: 09. Nov. 2010 12:07 <-- editieren / zitieren --> Unities abgeben:
Hallo liebe Mitglieder, ich versteh' Plant nicht! Nachdem es wohl keine Beschränkung für den Integer-Speicherplatz gibt habe ich aus meinen 5310 Tabellen 1 Spalte entfernt. Vorher war für eine Tabelle memUsage 10925, danach noch 6641 - so weit so schön, müsste also ca. 22.748.040 Byte sparen (im Modell, auf der Platte wg. packen natürlich weniger, aber trotzdem noch viel)! Beim Speichern wird aber nahezu derselbe Speicherplatz gebraucht (nur 200 KB weniger) Kann mir das einer erklären? Lieg ich völlig daneben? Danke und Gruß Opa Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tsx Mitglied
Beiträge: 103 Registriert: 06.03.2010
|
erstellt am: 09. Nov. 2010 19:06 <-- editieren / zitieren --> Unities abgeben: Nur für Opa
Das Plant Simulation Modell wird beim speichern komprimiert (7-zip sagt Compound), deswegen wirkt sich die Änderung nur mit 200kb aus. Wenn du wissen willst, wie groß das ursprünglich Modell ist, kannst du die spp-Datei (und die darin entstehende CoreData) mal mit 7-zip entpacken. Du wirst feststellen, dass es unkomprimierte Simulationsmodell rund 10x größer ist als die spp-Datei. Wie kannst du dein Modell verkleinern? Du kannst das Modell nochmals packen (z.B. mit WinRar oder dem quelloffenen 7-Zip). Auf diese Weise lässt sich die spp-Datei nochmals verkleinern (funktioniert aber auch nicht bei allen Modellen). ------------------ Grüße, tsx Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Opa Mitglied Selbständiger Simulationsexperte
Beiträge: 62 Registriert: 16.06.2005 eM-Plant 7.6 / 8.2 Development License
|
erstellt am: 09. Nov. 2010 20:26 <-- editieren / zitieren --> Unities abgeben:
Hallo tsx, danke für Deine Antwort. Dass die Modelle gepackt werden war mir schon klar, aber trotzdem müsste doch bei Einsparung von 1/3 der Daten etwas mehr rauskommen als nur 200 KB. Ich muss mir was anderes ausdenken, schon doof, dass der Kunde diese Beschränkung hat Nochmal Danke und Gruß Opa Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
planty Mitglied Dipl.-Ing.
Beiträge: 139 Registriert: 18.09.2006
|
erstellt am: 10. Nov. 2010 10:41 <-- editieren / zitieren --> Unities abgeben: Nur für Opa
Moin, ein vierstelliger Integer in einer Tabelle belegt in der Modelldatei 10 Byte(Zeichen), bei einstelligem Spaltenindex, ein String sogar 12. 10 * 1.624.860 / 1024 / 3 (Kompressionsrate für Text) das entspricht bummelig 5.3 MB, deckt sich mit Deinen Beobachtungen. Eine Textdatei mit entsprechenden Einträgen hat 9.3 MB, gepackt 3 MB. Kleiner wirst Du nicht werden, wenn Du die Einträge nicht binär ablegst. Aber ich finde wer das Geld hat sich eine PS Simulation erstellen zu lassen kann heutzutage auch einen Weg finden eine 12MB Datei zu übertragen. Gruß P.
------------------ Two hours of trial and error can save ten minutes of manual reading! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Opa Mitglied Selbständiger Simulationsexperte
Beiträge: 62 Registriert: 16.06.2005 eM-Plant 7.6 / 8.2 Development License
|
erstellt am: 10. Nov. 2010 11:04 <-- editieren / zitieren --> Unities abgeben:
Hallo planty, danke für die Info über die Speicherbelegung, seehr nützlich. Ich habe es jetzt so gemacht: die Zahlen (<64000) als strings abgelegt (binär), uns zwar: Highbyte:=zahl//255 Lowbyte :=zahl-Highbyte*255 dann string abgespeichert als chr(Lowbyte)+chr(Highbyte) Lässt sich nachher rückwärts wieder auspacken und spart 2,3 MB! Gruß Opa Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |