Ich habe 10 verschiedene Methoden mit dem gleichen Rückgabetyp "Liste". Ich füge alle Methoden zu einer Aufgabe hinzu. Iterieren Sie die Aufgabenliste und führen Sie sie aus. Ich muss wissen, welches für die Leistungssteigerung am besten ist. Task.whenAny oder Parallel.invoke?C# Liste der Aufgaben und mit task.whenAny Leistung
Schätzen Sie Ihre Antworten.
Es hängt ganz davon ab, was Ihre Aufgaben tun. Es gibt möglicherweise keine Leistungssteigerung, indem sie parallel ausgeführt werden, und in der Tat können sich einige Dinge verschlechtern (z. B. wenn zwei Aufgaben gleichzeitig versuchen, auf verschiedene Bereiche der gleichen physischen Festplatte zuzugreifen). –
Es könnte von der Anzahl der CPUs in Ihrem Computer und der Menge an Speicher in Ihrem Computer abhängen. Die Leistung kann erheblich verlangsamt werden, wenn zwischen dem Speicher und dem Auslagerungsspeicher (auf der Festplatte) viel Seitenaustausch stattfindet. Wenn Sie also die Anzahl der parallelen Prozesse erhöhen, kann die Anzahl der Swaps erhöht werden, wenn Sie nicht genügend Arbeitsspeicher zur Unterstützung der parallelen Tasks haben. Normalerweise hat jede CPU ihren eigenen dedizierten RAM, so dass eine Erhöhung von CPUs den RAM erhöht und gewöhnlich den Austausch reduziert. – jdweng