Seite 1 von 1

Geschwindigkeit

Verfasst: So, 04.01.2009 10:13
von ooport
Mein System: OOo 3.00, Vista Ulimate 32b, Core2Duo E6600, 2 GB RAM.
Vorerfahrung: MS Access 2.0, dann 97.

Da MS Access 97 sich nach einer Windows-Neuinstallation nicht mehr bei mir installieren lassen wollte, bin ich auf OO Base umgestiegen. Mit ist klar, dass man bei Freeware mit einer kürzeren Geschichte der Programmentwicklung Abstriche machen muss. Dennoch möchte ich folgende Beobachtungen nennen um herauszufinden, was ich anders machen kann oder wo den OO-Programmierern Vorschläge gemacht werden sollten.

1) OO Base nutzt nur einen CPU-Kern. Kann man beide nutzen?

2) Das Öffnen einer Tabelle dauert etwas länger. Das kann ich zwar tolerieren, aber es erstaunt mich. Selbst mit MS Access 2.0 auf einem Pentium 3 ging es schneller. Es ist also offensichtlich eine Frage der Algorithmen, wie beim Öffnen einer Tabelle auf deren Datensätze zugegriffen wird, um diejenigen auszulesen, die zuerst zu sehen sein sollen. Oder kann ich da selbst etwas tun, um es schneller zu machen?

3) Nach dem Öffnen einer Tabelle: Wenn ich auf den Button >| klicke, um die letzte Datenbankseite anzuzeigen, dauert das deutlich länger (ein paar Sekunden bei CPU-Auslastung ca. 50%, d.i. ein Kern voll ausgelastet, statt sofort) als mit MS Access 2.0 auf einem Pentium 3. Es muss also auch wieder am Algorithmus liegen. Oder was könnte ich selbst unternehmen, bevor ich den Programmierern eine Anregung gebe?

4) Bild hoch, Bild runter, entsprechend klicken oder an den Anfang gehen usw. dauern auch ihre Zeit, statt wie bei MS Access sofort zu funktionieren. Das ist verwandt zu (3), aber die CPU-Nutzung ist nur ca. 30% und es dauert nicht ganz so lange.

Bei der Programmierung könnte Folgendes verbessert werden:
- Nutzung aller CPU-Kerne.
- Vorher-Ausführen im Hintergrund von Standard-GUI-Kommandos, sodass sie beim tatsächlichen Anklicken / Tastaturanschlag schon (weitgehend) ausgeführt sind und das Ergebnis nur noch auf dem Bildschirm angezeigt werden muss.
- Bessere Algorithmen zum schnelleren Auslesen anzuzeigender Datensätze. (*)

(*) Ich weiß nicht, wie eine OO-Datenbankdatei aufgebaut ist. Liegen die Daten quasi in Tabellenform vor oder muss da erst dekomprimiert und umorganisert werden? Wenn sie in Tabellenform gespeichert sind, gibt es keinen Grund, warum sie nicht sofort angezeigt werden könnten: Man muss nur per Zeiger auf z.B. die letzten z (so viele eben auf dem Bildschirm passen) Datensätze auf ihre Datenvariablen zugreifen. Das geht mindestens in der Laufzeit O(n), wobei n die Anzahl der Datensätze in der Tabelle ist. Also sehr schnell. (Man könnte es sogar noch schneller machen, denn Suche eines ersten Datensätzes geht in O(log n). Suche des letzten Datensatzes kann man sogar in O(1) durchführen.) Wieso also dauert es überhaupt länger als Millisekunden? Ist das OO-Datenbankdateiformat auf Speicherplatz statt auf Geschwindigkeit optimiert?

Re: Geschwindigkeit

Verfasst: So, 04.01.2009 20:05
von Stephan
Mit ist klar, dass man bei Freeware
OpenOffice.org ist keine Freeware [1], sondern OpenSource-Software [2] unter LGPL-Lizenz [3]

oder wo den OO-Programmierern Vorschläge gemacht werden sollten
siehe:
viewtopic.php?f=3&t=12975



Gruß
Stephan


[1]
http://de.wikipedia.org/wiki/Freeware

[2]
http://de.wikipedia.org/wiki/Open_Source

[3]
http://de.wikipedia.org/wiki/GNU_Lesser ... ic_License

Re: Geschwindigkeit

Verfasst: So, 04.01.2009 21:48
von ooport
Danke für den Hinweis zum Unterschied von Freeware und OpenSource.

Die Notwendigkeit zur formalen Einreichung von Verbesserungsvorschlägen ist mir wohlbekannt. Ich werde es auch tun, wenn es denn ein Problem ist, dass nicht nur auf meinem PC existiert. Kann jemand bestätigen, dass er ähnliche Geschwindigkeitsprobleme und -merkmale hat?

Re: Geschwindigkeit

Verfasst: So, 04.01.2009 22:44
von hol.sten
ooport hat geschrieben:- Bessere Algorithmen zum schnelleren Auslesen anzuzeigender Datensätze. (*)

(*) Ich weiß nicht, wie eine OO-Datenbankdatei aufgebaut ist.
Die in OOo integrierte Datenbank ist HSQLDB (siehe http://hsqldb.org/ und http://hsqldb.org/web/openoffice.html). Unter http://hsqldb.org/web/hsqlFAQ.html#FAQ gibt es u. a. folgendes zu lesen:
HSQLDB FAQ - Reliability, Performance and Deployment hat geschrieben:Can HSQLDB handle multithreading?

The core engine is currently not multithreaded (*), but it is multithreading-safe. The Server is multithreading and responds to requests while any database core is busy. Application that are multithreading can use the database, but all requests are executed one after the other per database, this means only one at a time. This model contributes to speed, reliability, and completely avoids issues such as deadlocks (*). There is a separate timer thread for flushing and synching the transaction log to disk. Server modes also use threads to respond to connection request.
Das liest sich für mich so, dass HSQLDB daran "Schuld" ist, dass nur einer deiner Kerne verwendet wird.

OOo Base bietet dir aber immerhin die Möglichkeit, auch auf andere Datenbanken, wie z. B. MySQL, PostgreSQL usw. zuzugreifen. OOo Base spricht dabei über einen JDBC-Treiber (http://de.wikipedia.org/wiki/JDBC-Treiber) die Datenbank an und dient "nur" noch als GUI. Versuch das mal mit Access ;-)

Re: Geschwindigkeit

Verfasst: So, 11.01.2009 00:29
von agrupe
Hi,

ich benutze OO 3.0 unter Opensuse 11.0 auf einem Quad-Core Rechner. Das Ding rennt wie verrückt und wenn Performance gebraucht wird, sehe ich in meinem CPU-Fenster, dass alle 4 Kerne hochgetaktet werden.

Suchen eines Datensatzes in 5.000 Datensätzen geht quasi in Nullzeit. Blättern vom 1. zum letzen Datensatz in einer stark verschachtelten Struktur (Ausgehend von der Rechnungsnummer muss die Tabelle der Rechnungen, dort der Kunden, der Artikel und noch 5 weitere geöffnet werden) ist supi flott.

Gruß

Andreas

Re: Geschwindigkeit

Verfasst: Mo, 16.02.2009 17:43
von steffn
Auch bei mir wird von zwei Kernen nur einer für Open Office genutzt.
Vor kurzem habe ich dazu passende Werbung bekommen, habe aber keine Ahnung, was das bringt.
Hallo Ashampoo Kunde,

nahezu alle modernen Computer verfügen über mindestens zwei Prozessoren, die im Allgemeinen als „Cores“ bezeichnet werden. Manche Computer haben sogar vier Prozessoren. Leider verwaltet Windows Ihre zusätzlichen Prozessoren nicht besonders gut und deshalb bekommen Sie eigentlich nicht die gesamte Leistung, für die Sie bezahlt haben.

Der Ashampoo® Core Tuner ermöglicht es Ihnen, die gesamte Leistung aller Ihrer Prozessoren zu nutzen. Für sofortige Ergebnisse steht eine automatische Optimierung für alle laufenden Prozesse zur Verfügung. Alternativ können Sie zusätzlich einzelne Prozesse manuell über die sog. Boost-Funktion optimieren, um die Leistung eines einzigen Programms zu erhöhen.
Ob das was ändert?
Und gibt es eventuell sogar ähnliche, kostenlose Nachhilfe?

Re: Geschwindigkeit

Verfasst: Mo, 16.02.2009 19:17
von hol.sten
steffn hat geschrieben:
Ashampoo hat geschrieben:...Core Tuner ermöglicht es Ihnen, die gesamte Leistung aller Ihrer Prozessoren zu nutzen...
Ob das was ändert?
Klingt so viel versprechend wie damals diese RAM-Optimierer.