5 ms·
> there is normally much lower-hanging fruit Yeap, usually it's more about properly profiling your application on the CPU and memory dimensions, occasionally i
by a1o 3y ago
> there is normally much lower-hanging fruit
Yeap, usually it's more about properly profiling your application on the CPU and memory dimensions, occasionally instrumenting if necessary, experimenting different measurements and tools to have a good picture of your software bottlenecks and where there are gains.
Knowing the full picture and where the issues are you can then proceed to these specifics of optimizing your code for performance in these spots, or using a specific library that solves better that problem or what is usually an approach that gives better gain, rethinking knowing the limitations and finding a better design for the problem that part of the code is trying to solve.
- explaininjs 3y agoI do not know why this thread is dismissive of the course when that is precisely what the first few lectures of the course teach, and every subsequent assignment treats “profile and instrument the code” as the (sometimes inferred) step 0. But it’s an 18 unit course, it’d be a disservice to the students (and the world at-large, considering the potential impact of performance engineering) if we stopped there. (I TA’d this class)
- jstanley 3y agoI haven't taken the course, I was just going off the lecture titles. The first 3 lectures are entitled: Introduction and Matrix Multiplication Bentley Rules for Optimizing Work Bit Hacks
- deleted 3y ago[deleted]
- explaininjs 3y ago“Measurement and Timing” is lecture 10. We started with small independent programs and worked up to systems, in much the same way you would not teach an individual to paint by telling them the Sistine Chapel needs a patch fixed. But yes, I do agree profiling is step 0 to performance engineering.