Leistungsbewertung und Profiling
Welche Verbesserung hat bei einem Programm zur Verarbeitung großer Datenmengen am ehesten das Potenzial für den größten Speedup?
- AVariablennamen kürzen
- BEinen Algorithmus mit Komplexität n² durch einen mit n log n ersetzen
- CKommentare löschen
Antwort und Erläuterung anzeigen
Antwort: B. Einen Algorithmus mit Komplexität n² durch einen mit n log n ersetzen
Bei einer Datenzahl n von 1 Million ist n² gleich 1 Billion und n log n etwa 20 Millionen, ein Unterschied um das 50.000-Fache. Verglichen mit dem Effekt von einigen Faktoren durch feine Befehlsoptimierung oder Hardwareverbesserung kann die Verbesserung des Algorithmus Größenordnungen bringen. Bei der Leistungsverbesserung wird zuerst geprüft, ob ein Algorithmus mit hoher Komplexität verwendet wird, und danach werden Verbesserungen bei Cache-Nutzung und Parallelisierung aufgesetzt.