Hallo,
wir setzen ein DataTable ein, welches zur Laufzeit aus einem JSon String gefüllt wird.
Bei ca. 4000 DS dauert dies ca. 7 Sekunden.
Wie kann ich das am besten optimieren?
Nicht für das Leben, für die Arbeit lernen wir ...
Windows ist Klasse, ich nehme es um Linux zu downloaden ....
Hallo Toem99
Performanceoptimierungen ohne den Code zu sehen, sind recht schwierig. Vllt ist es auch nicht so günstig eine DataTable zu benutzen.. Kommt natürlich darauf an, was Du nachher noch mit den Daten machst.
Beim Strings bearbeiten kann man meist auch noch einiges herausholen, wenn man weiß wie.
Grüße
Die Frage kam auch grad in mir hoch :
Braucht man wirklich 4000 Datensätze auf einmal in einem Grid ? Möglicherweise gibt es an anderer Stelle noch Optimierungsansätze , z.B. Paging o.ä.
Ich würde einfach mal testen, wie lange die einzelnen Steps dauern (Im Schnitt)
DateTime readLineStart = DateTime.Now;
- lese Zeile aus Json
DateTime readLineEnd = DateTime.Now;
//usw...
- lege Zeile an
- schreibe Zeile
Dann siehst du, wo der Bottleneck ist. Ich vermute stark beim Einlesen der Daten. 4000 Zeilen in ein DataTable zu adden sollten recht fix gehen (Flass du da keine Blobs oder sonstige großen Datenmengen reinschreibst).
Oh, wieder was gelernt. Scheint eine höhere Edit -> Resolution zu haben. Laut MSDN hat DateTime ca. 16ms. Wie hoch ist denn die von StopWatch?
Oh, wieder was gelernt. Scheint eine höhere Edit -> Resolution zu haben. Laut MSDN hat DateTime ca. 16ms. Wie hoch ist denn die von StopWatch?
das kommt ganz daruf an, was die hardware und das OS so bietet. im optimalfall verwendet es intern den performancecounter ansonsten weicht es auf den system timer aus.
wie ungefähr genau er ist, kann man mit den propertys Frequency und IsHighResolution herausfinden.
Du kannst die Datenbindung unterbrechen (abstöpseln), die DataTable befüllen und dann wieder anstöpseln.
Was auch sehr langsam ist, ist, wenn eine DGV-Spalte auf AutoSizeMode.AllCells steht.
Der frühe Apfel fängt den Wurm.