Über multithreading download Nachteile
Ich habe eine Frage zu multithreading herunterladen, wie Sie wissen, das herunterladen mit mehreren threads, die Verbesserung der Leistung der Anwendung, es gibt jedoch einige Maßnahmen zu beachten: wie die Anzahl der threads, die verfügbare Bandbreite und einige mehr, aber ich weiß nicht wirklich verstehen, warum die Leistung der Anwendung möglicherweise abgebaut werden, durch die Verwendung vieler threads zum Beispiel, oder wie kann die Bandbreite,die Qualität der server beeinflussen die Leistung von Multithread-Anwendung? , was sind die Fälle, in denen monothread download ist schneller als multithread?
Vielen Dank für Ihre Antworten.
InformationsquelleAutor Safa | 2014-06-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich nehme an, Sie meinen jetzt download-Manager.
Erstmal, ich bin skeptisch, wie viel "Leistung" nutzen einen download-manager bietet sich wirklich an. Aber noch wichtiger ist, jeder nutzen, den Sie bieten ist nicht durch multi-threading. Die performance-Einschränkung von einem download ist der Bandbreite der Verbindung. Und dies ist der Grund, warum ich skeptisch bin von den Vorteilen:
Den wirklichen nutzen von einem download-manager automatisch neu gestartet, downloads effizient (d.h. nicht wieder von vorne anfangen, wenn möglich).
Also, was ist der Punkt, der multi-threading?
Lassen Sie uns zunächst vertreiben ein Mythos: Multi-threading - nicht Geschwindigkeit nichts nach. Wenn eine routine erfordert X clock-Zyklen zu laufen: es wird X-clock-Zyklen; ob auf 1 thread oder viele threads.
Was multi-threading wird nicht: es ermöglicht Aufgaben zu gleichzeitig (zur gleichen Zeit).
Die Fähigkeit, verschiedene Dinge gleichzeitig bedeutet:
Wann ist die single-Thread schneller als multi-threaded?
Gut, so ziemlich immer in Fällen, in denen die CPU ist nicht der Flaschenhals. Im Fall von download: Wie bereits erwähnt, der Flaschenhals ist die Bandbreite zwischen den beiden Endpunkten der Verbindung. Viele threads, die eigentlich bedeutet, Sie haben mehr Arbeit zu tun (die Verwaltung und Koordination der verschiedenen threads).
Den effizientesten Ansatz für den download ist 2 threads: einen für die UI, und die andere für den download, so dass eventuelle Pausen/dealys nicht stall der Benutzeroberfläche.
Jedoch mehr im Allgemeinen, auch wenn Sie CPU-intensive arbeiten, könnte theoretisch profitieren Sie von mehreren threads verschiedene arbeiten gleichzeitig, es ist sehr einfach, Fehler zu machen in der Umsetzung, dass tatsächlich verlangsamen Ihre Anwendung.
Diese Antwort ist sehr viel falsch im Kern behaupten. Downloads mehr als oft nicht, werden nicht begrenzt durch die downloader die Verbindung. Verbindungsgeschwindigkeiten von mehr als 10megabit wurden Häufig für ein Jahrzehnt oder mehr. Doch die meisten downloads sind begrenzt auf ~2 Mbit / s-auf der SERVER-Seite. Dies geschieht durch die Datei hosts, um die Bandbreite zu schonen. Download-Manager können möglicherweise nutzen dies durch die multi-threading-download und herunterladen verschiedene Teile derselben Datei gleichzeitig von einem oder mehreren hosts, und dann kombinieren Sie diese am Ende. Fünf 2-mbit-download-streams gibt 10-mbit-Gesamt-DL-rate.
ja, das ist die genaue Darstellung von, was falsch mit der Welt. Wenn jemand in der Lage zu gewinnen, eine Diskussion über einen Punkt - dieser Punkt wird Wahrheit. Unabhängig davon, ob es tatsächliche Wahrheit. Er ist komplett falsch für so viele Gründe.. Doch seine akzeptiert die Antwort und der Kerl hat 12k Punkte..
InformationsquelleAutor Disillusioned