If you want an intro I would say Structured Computer Organisation by Tannenbaum. Even the latest version is quite dated, but it will give you a basic understanding of what's going on, from there you can read blogs and find books on more specific details.
Hmm, let me see if I understand this correctly! Different code snippets can have different bottlenecks... So one should do microbenchmarks discretely on code snippets to learn/optimize? Therefore, testing your entire program won't give you useful insight into what the actual problem is. It only gives you a somewhat vague number that tells its speed (?) Fantastic talk by the way! The whole hour felt like 1 minute :-)
*Row major traversal* int Tab[n][m]; //n-rows; m-columns; Tab[i][j] == Tab[i*n+j] for (int i=0; i < n; ++i) //row major order! for (int j=0; j < m; ++j) //then columns Tab[i][ j ] += j;
Want fast C++? First, know the hardware... and then use C instead ; ) C++ is evil. Almost as evil as covering the last two slides of a presentation with video thumbs XD
Yeah... that evil structured, not spaghetti code with better performance then C in many many cases(this isn't the early 90s C++ is as fast or faster)... that evil stuff.
The link to the slides do not work.
Why does Meeting C++ block the final summary slide with other video links? That's one of the most important slides.
Moved it, thanks for the feedback.
Do you recommend a book or website in this subject?
If you want an intro I would say Structured Computer Organisation by Tannenbaum. Even the latest version is quite dated, but it will give you a basic understanding of what's going on, from there you can read blogs and find books on more specific details.
one I enjoyed (but regrettably haven't been able to finish yet) is Computer Systems: A Programmer's Perspective (3rd edition 2015)
"What every programmer should know about memory"
Thanks for your response
The man says "don't do microbenchmarks" and then proceeds to present results of many micro-benchmarks. Nonetheless interesting.
Hmm, let me see if I understand this correctly! Different code snippets can have different bottlenecks... So one should do microbenchmarks discretely on code snippets to learn/optimize? Therefore, testing your entire program won't give you useful insight into what the actual problem is. It only gives you a somewhat vague number that tells its speed (?)
Fantastic talk by the way! The whole hour felt like 1 minute :-)
and also the endless first tier of the talk that is all about cache locality :D
Can tons of tiny f()s make a code slower? Well, I have a project with tons of that, and is currently as slow as $@#$%&$&!
Great talk but after 200 th "Umm" I had to stop the video.
So you might have missed very important stuff.
*Row major traversal*
int Tab[n][m]; //n-rows; m-columns; Tab[i][j] == Tab[i*n+j]
for (int i=0; i < n; ++i) //row major order!
for (int j=0; j < m; ++j) //then columns
Tab[i][ j ] += j;
Want fast C++? First, know the hardware... and then use C instead ; )
C++ is evil. Almost as evil as covering the last two slides of a presentation with video thumbs XD
Yeah... that evil structured, not spaghetti code with better performance then C in many many cases(this isn't the early 90s C++ is as fast or faster)... that evil stuff.