r/AskComputerScience 13d ago

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

19 comments sorted by

View all comments

1

u/Cool_Homework_7411 13d ago

The machine only understands 0s and 1s. The compiler is the one who takes your language and makes it computer language. If you are translating in Google word by word will you get the same thing as translating a whole sentence? Probably not and you can see why. "Breaking" your code in pieces makes it harder for the compiler to translate effectively what you want to machine language