Frage zu DIM
-
- Beiträge: 68
- Registriert: 26.10.2008 09:21
- Computerausstattung: P4, 2600, 1,5GB Ram, XP SP3
- Wohnort: Wien
Frage zu DIM
Hallo
Sind grosse Arrays üblich, bez wo sind die Grenzen
bez verwendet man etwas anderes bei grossen Datenmengen?
Brauche ein Array 1000x400 Strings.
Dim Liste.s (1000, 400)
Was meinen die Profis ???
Walter
(PB4.20)
Sind grosse Arrays üblich, bez wo sind die Grenzen
bez verwendet man etwas anderes bei grossen Datenmengen?
Brauche ein Array 1000x400 Strings.
Dim Liste.s (1000, 400)
Was meinen die Profis ???
Walter
(PB4.20)
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
die obergrenze für ein Array ist die grenze des speichers.
also, das bedeutet du kannst ca. 1 bis 1.6 Gigabyte für ein Array verbraten.
ob das sinnvoll ist, ist die andere Frage.
für 1000x400 strings brauchst du 800.000 byte für die pointer, und dann eben den speicher für die strings selber,
also wenn deine strings im schnitt 20 zeichen lang sind, sind das noch mal 400.000x 20 +1 byte (im ANSI modus)
damit wärst du grad mal bei ca. 9 MB das ist also schon vernachlässigbar wenig.
also, das bedeutet du kannst ca. 1 bis 1.6 Gigabyte für ein Array verbraten.
ob das sinnvoll ist, ist die andere Frage.
für 1000x400 strings brauchst du 800.000 byte für die pointer, und dann eben den speicher für die strings selber,
also wenn deine strings im schnitt 20 zeichen lang sind, sind das noch mal 400.000x 20 +1 byte (im ANSI modus)
damit wärst du grad mal bei ca. 9 MB das ist also schon vernachlässigbar wenig.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- HeX0R
- Beiträge: 3042
- Registriert: 10.09.2004 09:59
- Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3 - Kontaktdaten:
[klugscheiss]Kaeru Gaman hat geschrieben: für 1000x400 strings brauchst du 800.000 byte für die pointer, und dann eben den speicher für die strings selber,
Eigentlich sollten es 1.600.000 Bytes (bzw. 3.200.000 Bytes bei PB x64) sein für die Pointer, oder wurstelst du noch mit 16Bit rum?

[/klugscheiss]
{Home}.:|:.{Codes}.:|:.{Downloads}.:|:.{History Viewer Online}.:|:.{Bier spendieren}
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
-
- Beiträge: 68
- Registriert: 26.10.2008 09:21
- Computerausstattung: P4, 2600, 1,5GB Ram, XP SP3
- Wohnort: Wien
+++und wenn das alles zu langsam wird, ist guter Rat teuer +++
Was könnte das bedeuten?
Welche Zugriffszeiten sind zu erwarten?
Es sollte eine Protokolldatei eingelesen werden.
Diese wird regelmässig von einem anderen Programm erstellt.
Ich würde nur einige Zeilen im Array a 400 Strings bearbeiten.
Dann vergehen einige Minuten und es sollten wieder einige
Zeilen a 400 Strings aktualisiert werden. Und das den ganzen Tag lang.
Ist eine Zeile im Array abgeschlossen, so werden die Daten dieser Array-Zeile abgespeichert und diese Arrayzeile gelöscht.
Was könnte das bedeuten?
Welche Zugriffszeiten sind zu erwarten?
Es sollte eine Protokolldatei eingelesen werden.
Diese wird regelmässig von einem anderen Programm erstellt.
Ich würde nur einige Zeilen im Array a 400 Strings bearbeiten.
Dann vergehen einige Minuten und es sollten wieder einige
Zeilen a 400 Strings aktualisiert werden. Und das den ganzen Tag lang.
Ist eine Zeile im Array abgeschlossen, so werden die Daten dieser Array-Zeile abgespeichert und diese Arrayzeile gelöscht.
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
> einige Zeilen im Array a 400 Strings
> wieder einige Zeilen a 400 Strings aktualisiert
... wie lang sind denn deine strings?
eventuell würde sich ein ganz anderes format empfehlen.
bei
> Zeilen a 400 Strings ... den ganzen Tag lang
> diese Arrayzeile gelöscht
würde ich eher an einen Datensatz mit 400 Feldern denken,
und das ganze in einer Liste ...
> wieder einige Zeilen a 400 Strings aktualisiert
... wie lang sind denn deine strings?
eventuell würde sich ein ganz anderes format empfehlen.
bei
> Zeilen a 400 Strings ... den ganzen Tag lang
> diese Arrayzeile gelöscht
würde ich eher an einen Datensatz mit 400 Feldern denken,
und das ganze in einer Liste ...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
-
- Beiträge: 68
- Registriert: 26.10.2008 09:21
- Computerausstattung: P4, 2600, 1,5GB Ram, XP SP3
- Wohnort: Wien
Es handelt sich um Produktionsdatein einer Maschine.
Für jedes Produkt kann es bis zu 400 Werte geben.
Die Werte bestehen aus Texten max 25 Zeichen und aus Zahlen bis 8 Stellen ohne Komma, und bis zu 4 stellige Zahlen mit 2 Kommastellen.
Ich brauche Platz für ca 1000 Produktdaten im Speicher, da ich sie zum
Auswerten teilweise miteinander verknüpfen muss.
Die einzelene Produktdaten sollten in einigen ListViewGadgets angezeigt werden.
Ein Produkt besteht aus mehreren kleinen Teilen. Somit kann ich ein Produkt unterbrechen und es erst zB 3 Tage später fertig machen. Dazwischen kann ich viele andere Produkte machen.
Darum auch Speicher für 1000 Produkte.
Ich könnte natürlich auch 1000 Dateien anlegen und diese vollschreiben.
Für jedes Produkt kann es bis zu 400 Werte geben.
Die Werte bestehen aus Texten max 25 Zeichen und aus Zahlen bis 8 Stellen ohne Komma, und bis zu 4 stellige Zahlen mit 2 Kommastellen.
Ich brauche Platz für ca 1000 Produktdaten im Speicher, da ich sie zum
Auswerten teilweise miteinander verknüpfen muss.
Die einzelene Produktdaten sollten in einigen ListViewGadgets angezeigt werden.
Ein Produkt besteht aus mehreren kleinen Teilen. Somit kann ich ein Produkt unterbrechen und es erst zB 3 Tage später fertig machen. Dazwischen kann ich viele andere Produkte machen.
Darum auch Speicher für 1000 Produkte.
Ich könnte natürlich auch 1000 Dateien anlegen und diese vollschreiben.