CPU-/Rechenpower sparen

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

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

CPU-/Rechenpower sparen

Beitrag von housefreund » Mi, 05.12.2018 22:04

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.

Gast lupo1

Re: CPU-/Rechenpower sparen

Beitrag von Gast lupo1 » Do, 06.12.2018 09:23

INDEX()[:INDEX()] anstelle von [INDIREKT oder BEREICH.VERSCHIEBEN/VERSCHIEBUNG] ist nonvolatil. Dann kannst Du auf solche Klimmzüge verzichten.

"Viele SUMMENPRODUKTe" ist ein Warnzeichen für Optimierungsbedarf über Pivot-Tabellen oder andere Maßnahmen.

Benutzeravatar
Der Steuerfuzzi
Beiträge: 4
Registriert: Mi, 05.12.2018 08:57
Wohnort: Süden

Re: CPU-/Rechenpower sparen

Beitrag von Der Steuerfuzzi » Do, 06.12.2018 10:14

Was in Excel Pivot heißt, ist in OO der Datenpilot.
Gruß
Michael

Benutzeravatar
balu
********
Beiträge: 3682
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: CPU-/Rechenpower sparen

Beitrag von balu » Do, 06.12.2018 12:55

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

Gast lupo1

Re: CPU-/Rechenpower sparen

Beitrag von Gast lupo1 » Do, 06.12.2018 15:46

Gute Beschreibung, balu.

In Excel ist Pivot wahnwitzig schnell, weil ein Cache verwaltet wird.

Während SUMMENPRODUKT wie ein Lagermeister ist, der nacheinander mit verschiedenen Eimern zu einem Haufen geht, um den A-Eimer mit allen Artikeln A zu füllen, die im Haufen sind, dann das gleiche mit B usw., bis er dann fertig ist, und dabei auch noch 7 nicht zuordenbare Artikel liegen lässt, weil er nur bestimmte Eimer hat,

kommt Pivot ganz ohne Eimer zum Haufen, erzeugt einzeln neue Eimer, wenn nötig, hält alle Eimer in seiner Hand und wirft ALLE Artikel in den jeweils richtigen Eimer.

Das ist wie mit Collections in VBA.

SUMMENPRODUKT ist langsamer als SUMMEWENN(S), welches dafür andere Nachteile hat. Wäre der Haufen sortiert, käme man mit INDEX VERGLEICH auch bei komplexen Kriterien schnell voran. Das macht aber kaum einer; in den ganzen Jahren habe ich dazu noch nie eine Frage gesehen und das selbst auch noch nie gemacht.

Benutzeravatar
balu
********
Beiträge: 3682
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: CPU-/Rechenpower sparen

Beitrag von balu » Do, 06.12.2018 18:38

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

Gast lupo1

Pivot in Excel

Beitrag von Gast lupo1 » Fr, 07.12.2018 00:45

- Pivottabellen werden manuell aktualisiert
- können wohl automatisch bei Anwahl deren Blattes aktualisiert werden
- können über Ereignisse aktualisiert werden

Stephan
********
Beiträge: 10680
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: CPU-/Rechenpower sparen

Beitrag von Stephan » Fr, 07.12.2018 09:14

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: 3682
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: CPU-/Rechenpower sparen

Beitrag von balu » Fr, 07.12.2018 16:42

@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

Antworten