Prestatiemeting en profiling

Bij een programma dat grote hoeveelheden gegevens verwerkt: welke verbetering levert waarschijnlijk de grootste versnelling op?

  1. ADe namen van variabelen korter maken
  2. BEen algoritme met rekencomplexiteit n² vervangen door een algoritme met n log n
  3. CCommentaar verwijderen
Antwoord en toelichting tonen

Antwoord: B. Een algoritme met rekencomplexiteit n² vervangen door een algoritme met n log n

Bij n = 1 miljoen gegevens is n² gelijk aan 1 biljoen en n log n ongeveer 20 miljoen, een verschil van een factor 50.000. Vergeleken met het effect van enkele malen door fijne optimalisatie van instructies of hardwareverbeteringen kan een algoritmeverbetering een effect van een andere orde van grootte hebben. Bij prestatieverbetering wordt eerst nagegaan of geen algoritme met hoge rekencomplexiteit wordt gebruikt, waarna verbeteringen als cachegebruik en parallellisatie worden toegevoegd.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Prestatiemeting en profiling

  1. Wat is het juiste doel van het bij elke wijziging automatisch uitvoeren en vastleggen van benchmarks bij softwareontwikkeling?
  2. Bij het meten van benchmarks op een laptop varieerde het resultaat voor hetzelfde programma elke keer sterk. Welke combinatie van mogelijke oorzaak aan de CPU-kant en tegenmaatregel is juist?
  3. Waarom worden bij het meten van prestaties op multicore- en NUMA-systemen threads soms aan een bepaalde core vastgezet (affiniteit instellen)?
  4. Wat is het meest geschikt om als eerste te controleren bij het analyseren van de prestaties van een programma dat de GPU gebruikt?
  5. Welk punt hoeft bij de keuze van servers voor een datacenter niet te worden overwogen naast de piekprestaties?