Autor Beitrag
colaka
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 200
Erhaltene Danke: 4

Win XP, W7
Delphi 2005 Prof.
BeitragVerfasst: Mo 24.05.10 12:31 
Hallo,

ich habe für mein Geschäft ein Programm geschrieben, mit dem ich in meiner Warenwirtschaft die Artikel (Preis und Verfügbarkeit) von 6 verschiedenen Lieferanten mit einem Download aktualisieren kann. Um immer uptodate zu sein, wird der Download täglich einmal durchgeführt. Inzwischen befinden sich in meiner Artikeltabelle ca. 150.000 Artikel. Auf meinem alten Desktop-PC mit einem Athlon 2800, 1 GB Arbeitsspeicher und Windows XP dauert der ganze Vorgang ca. 4,5 Minuten. Jetzt habe ich mir ein neues Notebook angeschafft mit einem Intel Core-2-Duo-Prozessor, 3 GB Arbeitsspeicher und Windows 7, auf dem der gleiche Download-und Aktualisierungsvorgang ca. 12 Minuten dauert.

Das Programm lädt über das Internet mithilfe der Indys von jedem der 6 Lieferanten eine CSV-Datei und aktualisiert dann in der Artikeltabelle die Preise. Eigentlich hatte ich gedacht, daß das auf dem neuen Rechner um einiges schneller abläuft, doch jetzt dauert es fast 3mal so lang.

Hat hier vielleicht jemand eine Idee, woran das liegen könnte?

Danke Ebi
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 24.05.10 13:29 
Du darfst aber nicht vergessen, dass du jetzt einen Dual-Core PC hast und dementsprechend weniger Leistung für dein Programm zur Verfügung steht. ;-)
Je nachdem welcher Prozessor das genau ist, muss dein Programm also nicht unbedingt wesentlich schneller laufen, da du nur einen Core nutzen kannst (vermute ich mal).

Zusätzlich kommt es auf die Optimierung des Imports an, denn für 150.000 Artikel hört sich das schon ziemlich lang an. Vielleicht hilft dir die Verwendung von MMFs oder direkt die Arbeit mit MemoryStreams statt einer Datei.

Zudem gibt es Profiler, die dir sagen wo du die Zeit verlierst.

Viel mehr lässt sich aber ohne ein paar Codeschnipsel nicht sagen. :gruebel:
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Mo 24.05.10 15:49 
Außerdem wäre es noch interessant, was du genau mit den Daten machst.
"Artikeltabelle" klingt nach Datenbank. Entsteht hier viel Festplattenlast? Notebookfestplatten sind z.B. häufig langsamer, da die meisten nur mit 5400 U/Min arbeiten, Desktopfestplatten jedoch mit 7200.

Kommt eben etwas drauf an, wie diese Weiterverarbeitung aussieht..
Kannst dir ja mal diverse Logausgaben einbauen, um abzuspeichern, welcher vorgang (Download, Verarbeitung, Abspeichern, usw.) wie lange dauert, und dann vergleichen.

_________________
PROGRAMMER: A device for converting coffee into software.
Chemiker
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 194
Erhaltene Danke: 14

XP, Vista 32 Bit, Vista 64 Bit, Win 7 64 Bit
D7, BDS 2006, RAD Studio 2009+C++, Delphi XE2, XE3, VS 2010 Prof.
BeitragVerfasst: Mo 24.05.10 18:00 
Hallo,

@jaenike: Er holt sich die Daten aus dem Internet, da wird der Prozessor wohl nicht die große Bremse sein.

@Xentar: Hier gilt das gleiche die Geschwindigkeit der Festplatte ist zu vernachlässigen wenn man Daten über das Internet bezieht.

Hast Du den alten PC mit einem Netzwerkkabel verbunden und holst Du Dir die Daten beim Laptop über WLan?

Bis bald Chemiker
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 24.05.10 18:18 
Ich glaube nicht, dass der Download das Problem ist. Das hätte sich ja sehr schnell feststellen lassen, wenn der Download einfach nur länger dauert.

Bei 150.000 Artikeln dauert es aber durchaus etwas bis die Preise alle aktualisiert aus den gedownloadeten Dateien in der Tabelle aktualisiert sind. Je nachdem wie gut die Verarbeitung abläuft. Deshalb sind CPU und HDD durchaus wichtige Faktoren.