Gibt es eine optimale Chunk-Größe für die Verarbeitung großer Dateien? Ich habe einen Upload-Service (WCF), mit dem Datei-Uploads von mehreren hundert Megabyte akzeptiert werden.So berechnen Sie die optimale Chunk-Größe für das Hochladen großer Dateien
Ich habe mit 4KB, 8KB bis 1MB Chunk Größen experimentiert. Größere Chunk-Größen sind gut für die Leistung (schnellere Verarbeitung), aber es geht zu Lasten des Speichers.
Also, gibt es eine Möglichkeit, die optimale Chunk-Größe im Moment des Hochladens von Dateien zu erarbeiten. Wie würde man solche Berechnungen durchführen? Wäre es eine Kombination aus verfügbarem Speicher und der Client-, CPU- und Netzwerkbandbreite, die die optimale Größe bestimmt?
Prost
EDIT: Wahrscheinlich sollte erwähnen, dass die Client-Anwendung in Silverlight ist.
Nun, ich war mehr auf Client-Rechner (die wir haben keine Kontrolle über). Wenn ich die Chunk-Größe auf 1 MB setze, wird der gesamte Speicher auf dem Client-Rechner verbraucht. Aber wenn ich es auf niedrig setze, dann wird es eine lange Zeit dauern, um zu verarbeiten. – Fixer
Oh! mit einer Client-Maschine ist es viel einfacher. Nebenläufigkeit ist fast nicht existent. Solange Sie die Bits nicht im Speicher behalten, nachdem Sie sie erhalten haben, können Sie ziemlich genau die gewünschte Chunk-Größe verwenden. Jeder moderne Client, selbst ein Telefon, hat genug CPU und Speicher, um mit ein paar Dateien fertig zu werden, solange Sie die Bits nach dem Abrufen jedes Chunks in den Speicher streamen. Ich bezweifle, dass Sie einen signifikanten Unterschied in der Leistung auf der Anwendungsebene nur auf der Grundlage der Chunk-Größe sehen würden. Ich würde mit 1024KB für große Dateien gehen und es einen Tag nennen. –