Reddit-learnprogramming – är hacket känt som” Duff's Device ” som används i verkliga applikationer?

Duffs enhet är (nästan) alltid ett exempel på vad vi skulle kalla en “mikrooptimering.”Det klassiska exemplet på en mikrooptimering är en som komplicerade och försvårar kodbasen utan att ge någon märkbar förbättring av programmets prestanda.

de flesta knep som Duffs enhet som optimerar en enda slinga, en enda liten funktion, etc, är mikrooptimeringar. CPU: er är bara så freakin’ snabba idag, att du vanligtvis inte får någon mätbar förbättring genom att använda dessa knep. Du definitivt gör det storleksordningar svårare att förstå och behålla din kod men. Förutom CPU-hastighet är kompilatorer riktigt smarta idag. De kan göra trick som detta bakom kulisserna för att optimera ditt kompilerade program, utan att du behöver bastardisera din källkod.

de flesta prestanda “problem” dessa dagar är faktiskt på en högre nivå än enskilda slingor. Tänker i termer av hur din datamodell representeras i disk och i minnet, hur du kan begränsa byte mellan disk och RAM, hur man optimerar mängden data som serialiseras, skickas och deserialiseras över nätverket etc. Därifrån kommer du in i algoritmerna på högre nivå och tillvägagångssätt du tar för att lösa ett verkligt CPU-bundet problem. Att komma till punkten att optimera en enda slinga med något som Duffs enhet är idag nästan alltid fel sak att göra.

Lämna ett svar

Din e-postadress kommer inte publiceras.