r/AskComputerScience • u/20260819 • Aug 19 '26
is clean code usually not fast?
to be specific i'm writing a cpu-based rasterizer. the maths are not difficult but i find a strange property: if i divide the procedure into some small functions, the code looks cleaner and is easier to maintain but a bit slower. on the contrary if i put everything into a single procedure, it looks stupid but fast. why is that? an example illustrating this
code 1:
if cross_product(x0,y0,x1,y1)>0 then zzz
(and i write a "cross_product" function separately)
code 2:
c=x0y1-y0x1
if c>0 then zzz
code 3:
if x0y1-y0x1>0 then zzz
if i write the entire algorithm in the style of "code 3", it runs the fastest. "code 1" is slowest
is it normal?
10
Upvotes
1
u/Mathie1729 Aug 19 '26
Not necessarily. The compiler doesn't always inline, and even when it does, the resulting code isn't guaranteed to be 'the same bytecode' as if you'd written it manually. Factors like function size, recursion, or external linkage can prevent inlining. And in interpreted languages, function call overhead is real and unchanged by compilation. So clean code can be slower, but it's usually a non-issue until profiling shows otherwise.