CPU-/Rechenpower sparen

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

housefreund
******
Beiträge: 603
Registriert: Do, 03.01.2008 23:23

CPU-/Rechenpower sparen

Beitrag von housefreund »

Hallo Zusammen,

Ich habe ein Blatt mit ganz vielen Indirekt-Verweisen und darin eingebauten Summenprodukten.
Ich habe mir eine Formel gebaut, welche berücksichtigt, all diese Formeln nur zu berechnen, wenn in einer anderen speziellen Zelle der Wert "ja" steht.
Ansonsten werden keine Werte berechnet. So ist zumindest meine Annahme.
Ist es überhaupt so? Hilft das überhaupt, um CPU- bzw. Rechenpower zu sparen und die Calc-Datei nicht zu langsam werden zu lassen? Vielleicht ist es nur der Placebo-Eindruck, aber ich habe irgendwie das Gefühl das es hilft... wobei ich halt mal lieber nachfrage, als mir da Schlagenöl in die Datei gepackt zu haben.
Zuletzt geändert von housefreund am Sa, 08.12.2018 12:56, insgesamt 1-mal geändert.
Benutzeravatar
Der Steuerfuzzi
Beiträge: 4
Registriert: Mi, 05.12.2018 08:57
Wohnort: Süden

Re: CPU-/Rechenpower sparen

Beitrag von Der Steuerfuzzi »

Was in Excel Pivot heißt, ist in OO der Datenpilot.
Gruß
Michael
Benutzeravatar
balu
********
Beiträge: 3810
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: CPU-/Rechenpower sparen

Beitrag von balu »

Mahlzeit.
Der Steuerfuzzi hat geschrieben: Was in Excel Pivot heißt, ist in OO der Datenpilot.
Stimmt nicht ganz.
Bis OpenOfice.org 3.3.0 und LibreOffice 4.2.0 wars der Datenpilot.
Und seit ApacheOpenOffice 3.4.1 und LibreOffice 4.2.1 ist es die Pivot.
Das aber nur zur Info.


Gast lupo1 hat geschrieben: "Viele SUMMENPRODUKTe" ist ein Warnzeichen für Optimierungsbedarf über Pivot-Tabellen oder andere Maßnahmen.
Das kann man so nicht pauschal sagen. Gleich noch mehr dazu.


housefreund hat geschrieben: Hilft das überhaupt, um CPU- bzw. Rechenpower zu sparen und die Calc-Datei nicht zu langsam werden zu lassen?
Ab einer "ungewissen" Dateigröße, die nur aus Formeln besteht, also ohne Zugriffe aufs Internett und ohne Bilder und Grafiken, kommt leider der Schwachpunkt von OO (allgemein für AOO und LO) zu tragen.

Da ja der Kern von OO anders aufgebaut ist wie z.B. bei Microsoft-Office (MSO), Schuld ist da wohl die Plattformunabhängigkeit (Win, Mac und Linux), ist OO von Haus aus etwas langsamer als MSO. Bis zu einem bestimmten Grad fällt das nicht wirklich auf. Aber so bald man diesen Punkt überschreitet, den man vorher nicht durch bestimmte Fakten festlegen kann, merkt man das doch sehr.

Auch wenn das schon etwas länger her ist, so hatte ich mal ne Datei in OO.o erstellt, die wirklich lange zum öffnen brauchte. Unter 1,5 minuten ging da gar nix (konnte so zwischendurch Solitär spielen). Das arbeiten mit der Datei selber ging dann allerdings doch recht normal. Wenn da blos nicht das ewige "speichern von Autowiederherstellungsinfo alle ... minuten" wäre. Denn was beim öffnen der Datei Zeit brauchte, brauchte auch dafür widerum fast die gleiche Zeit (also wieder Solitär). Aber aus Sicherheitsgründen sollte man das ja blos nicht abstellen.

Und diese besagte Datei war wirklich und wahrhaftig mit Formeln und bedingte Formatierungen nur so vollgestopft. Und ich sprech da nicht von so ein paar Hundert pro Blatt, sondern von mehreren Tausend. Und so nebenbei auch noch ein paar kleinere Makros.

Ich musste also so einiges ausprobieren um das irgendwie nicht noch mehr zu verlangsamen. Dabei habe ich extrem viel mit "Namen für Formeln" und Hilfsspalten gearbeitet.

Das mit "Namen für Formeln" hat ja auch den Vorteil, das man viele Änderungen Zentral an einer Stelle durch führen kann, ohne jede betroffene Spalte oder Zeile mühselig nach der normalen Methode zu editieren.

Damals hatte ich nur eine einfache Einkern-CPU gehabt. Und vor kurzem hatte ich die gleiche Datei mit einer neueren 4 Kern-CPU geöffnet. Das dauerte wohl auch noch irgendwas um die ca. 20 sekunden (oder war es noch weniger? Weiss ich jetzt nicht mehr so genau.), aber immerhin ein extremer Leistungsgewinn gegenüber früher.

Natürlich kann man verschiedene Hebel ansetzen um hier und da etwas zu optimieren, aber in OO gibt es da leider kein Patentrezept. Dazu müsste man schon genaueres über die Datei wissen, oder sie selber sehen um zu wissen was dort wie angewendet wird.

Ich weiss nicht wie das in Excel ist, aber in OO ist das ja mit der Pivot-tabelle so eine sache. Denn sie aktualisiert sich nicht von alleine. Und nicht immer hat man großartig Lust dazu nach mehreren Eintragsänderungen die Pivot händisch zu aktualisieren. Natürlich könnte man da irgendwie etwas mit nem Makro machen, aber das ist ein anderes Thema. Es kommt also darauf an ob einem die Pivot hilfreich ist, oder nicht.



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Benutzeravatar
balu
********
Beiträge: 3810
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: CPU-/Rechenpower sparen

Beitrag von balu »

Gast lupo1 hat geschrieben: In Excel ist Pivot wahnwitzig schnell
Mir gings nicht um die Schnelligkeit, sondern um die Art der Aktualisierung die ich in Excel nicht kenne.

Ich weiss jetzt auch nicht wie das in der 6er Linie von LO aussieht, aber ich kenne das halt nur so, das Formeln sich jedesmal automatisch neu berechnen wenn eine Zelle geändert wurde, während man die Pivot nach so einer Änderung händisch aktualisieren muss. Ist das in Excel anders oder nicht?



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: CPU-/Rechenpower sparen

Beitrag von Stephan »

Ich weiss jetzt auch nicht wie das in der 6er Linie von LO aussieht, aber ich kenne das halt nur so, das Formeln sich jedesmal automatisch neu berechnen wenn eine Zelle geändert wurde, während man die Pivot nach so einer Änderung händisch aktualisieren muss. Ist das in Excel anders oder nicht?
Du kannst Pivottabellen in OO/LO z.B. über das Tabellenereignis "Inhalte geändert" aktualisieren, wenn Du folgendes Makro zuordnest:

Code: Alles auswählen

Sub Main
	pt = ThisComponent.CurrentController.ActiveSheet.DataPilotTables.createEnumeration()
	while pt.hasMoreElements()
		pt.nextElement().refresh()
	wend
End Sub
oder verwende einen Listener in der Tabelle (ich weiß aber nicht ob in OO/LO inzwischen alle relevanten LIstener fehlerfrei funktionieren, Probleme gabs ja früher immer mit XSelectionChangeListener).



Gruß
Stephan
Benutzeravatar
balu
********
Beiträge: 3810
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: CPU-/Rechenpower sparen

Beitrag von balu »

@Gast lupo1
Danke für die Rückmeldung.
Also nicht anders als in OO.


@Stephan
Danke für deine Antwort.
Wenn 'housefreund' dadurch geholfen wird, ist es gut so. *daumen-hoch*



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
housefreund
******
Beiträge: 603
Registriert: Do, 03.01.2008 23:23

Re: CPU-/Rechenpower sparen

Beitrag von housefreund »

Also, zuerst einmal etwas verspätet vielen Dank für diese interessante Diskussion! :)

Ich habe mich nun mit einigen Antworten im Detail auseinandergesetzt und weiß nun nicht, ob die Pivot-Tabelle nützlich sein kann.
Habe ich das richtig verstanden, wenn ich Folgendes beschreibe:
  • Die Pivot-Tabelle ist eher eine Anzeige von Werten.
  • Die Werte, die angezeigt werden, wurden einmalig vorher berechnet.
  • Damit neue oder geänderte Werte berücksichtigt werden, muss man händisch die Pivot-Tabelle aktualisieren. Denn die genutzten Werte zur Berechnet werden nicht "laufend" im Hintergrund berechnet.
Antworten