Programming Practices Performance
What you’ll learn
Role of programming practices and coding standards in delivering high performance
Choosing battles to fix performance issues
Avoiding premature optimization
Writing human readable code that machines execute at optimal performance.
Basic programming knowledge in any programming language.
In this course, you’ll learn about the principles, techniques, and best practices to optimize your code’s performance. We’ll cover everything from Amdahl’s Law to performance engineering and optimization strategies, including measuring, profiling, and code tuning. By the end of the course, you’ll have a solid understanding of how to improve your code’s performance and ensure efficient resource utilization.Note: The content of this course is also published as part of an in-depth course titled “Programming Practices Bootcamp for production ready coding.”Course Outline:Course IntroductionImportance of performance optimization in programmingAmdahl’s Law and its implicationsPerformance Engineering ApproachPremature optimization vs. performance engineeringPrinciples of optimization and performance measurementEstablishing a baseline and picking your battlesTiming and ProfilingAutomated measurements and using profilersIdentifying hotspots and understanding the cost of profilingProfiling with external parametersStrategies for Speed OptimizationAppropriate algorithm selectionCompiler optimizationsCode tuning and targeted changesCode Tuning TechniquesCollecting common sub-expressionsChoosing cheaper alternativesLoop unrolling, caching, and dedicated allocatorsBuffering and handling special cases separatelyPrecomputing results and approximating valuesSpace Efficiency: Memory and StorageUnderstanding the trade-offs between space and performanceChoosing the right data types and complex data structuresBalancing storage and computationStoring data efficientlyBy the end of this course, you’ll have gained the skills and knowledge to analyze and improve the performance of your code. You’ll be able to apply various optimization techniques and strategies to ensure that your programs run efficiently and make the best use of available resources. Enroll now and start optimizing your code for better performance!
Section 1: Introduction
Lecture 1 Introduction
Section 2: Amdahl’s law
Lecture 2 The definition
Lecture 3 Basic premise
Lecture 4 Vertical Scaling: The tried and tested ad-hoc solution in cloud
Lecture 5 The Premature Optimization
Lecture 6 The performance engineering approach (recommended)
Section 3: Performance Overview
Lecture 7 Section introduction
Lecture 8 First principles of optimization
Lecture 9 Question the needs of optimization
Lecture 10 Pick your battles
Section 4: Basic steps of extracting performance
Lecture 11 Keep it simple
Lecture 12 Measure what matters
Lecture 13 Start with compiler options
Lecture 14 Assess Necessary changes first!
Lecture 15 Incremental changes
Lecture 16 Identify a baseline
Section 5: Basic guidelines for performance
Lecture 17 Introduction
Lecture 18 Repeat measurements before assuming the numbers are final
Lecture 19 Emulate processes for Testing
Lecture 20 Good design always pays off in the longer run
Section 6: Timing and profiling when working with performance
Lecture 21 Automate Measurements
Lecture 22 Use a profiler
Lecture 23 Identify hotspots
Lecture 24 Does profiling incur any cost?
Lecture 25 Do external parameters affect profiling?
Section 7: Strategy For Speed
Lecture 26 Does choice of algorithms affect performance?
Lecture 27 Role of compiler optimizations in performance
Lecture 28 Tuning code for performance
Lecture 29 Change only what matters
Section 8: Code Tuning
Lecture 30 Collect Common subexpressions
Lecture 31 Should one use cheaper alternative to sophiticated code?
Lecture 32 Loop unrolling
Lecture 33 Caching to the rescue
Lecture 34 Dedicated allocators
Lecture 35 Buffering for performance?
Lecture 36 Handling special cases
Lecture 37 Precomputing Results
Lecture 38 Does one always need precise values?
Section 9: Space Efficiency
Lecture 39 Memory and Storage scarcity?
Lecture 40 Role of appropriate Data type
Lecture 41 Storage compute tradeoff
Lecture 42 Complex data types
Lecture 43 Storing data efficiently
Section 10: Estimation
Lecture 44 Language model
Lecture 45 Operations like IO
Section 11: Conclusion
Lecture 46 [Bonus Lecture]
Beginner programmers,Early stage software professionals,Computer science students,Anyone who has recently learned a programming language
Udemy | English | 0h 52m | 254.24 MB
Created by: RougeNeuron Academy