Performance oriented development allows you to stay on the edge of today’s competition. It is crucial to write applications that can utilize stronger machines or scale out to distributed architectures. At the same time, it can be crucial to archive good performance on client application running on weak hardware. In addition, debugging an application in a production environment can be tricky, as it requires a different set of tools than those found on development machines, and a different state of mind.
During this course, we will focus on many common performance bottlenecks and best practices to solve them, providing a rich toolkit for both analyzing the performance issues and designing your application to avoid them in the first place. In addition, we will learn about tools allowing us to understand and pinpoint the problem without influencing the running application, to set up production and development environments in a way that will make this task easier, and when everything else fails, perform post mortem debugging and application dump analysis on those crashes that are so hard to reproduce.