Published Sep 3, 2019

SE-Radio Episode 310: Kirk Pepperdine on Performance Optimization

Kirk Pepperdine and Diomidis Spinellis delve into performance optimization, discussing the balance between microservices architecture, efficient coding practices, and the role of AI diagnostics in modern software development, emphasizing simplicity and efficiency in architectural and developmental decision-making.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Starting Investigations

    Kirk Pepperdine shares insights on how developers should begin investigating performance problems in their applications. He emphasizes the importance of understanding the signals from various components and using a performance diagnostic model to make sense of them 1. This model helps in identifying which components are responsible for specific signals, allowing developers to pinpoint the root cause of performance issues.

    The model helps me understand what's going on in the system. It basically allows me to take all of these signals, dump it into the model, and then the model helps me make sense of it.

    ---

    In a practical example, Kirk discusses how garbage collection logs can act as a proxy metric for application efficiency, revealing underlying issues that need addressing 2.

       

    Diagnostic Models

    Diagnostic models play a crucial role in system performance optimization by helping developers understand component interactions and responsibilities. Kirk explains that these models allow for a top-down approach to diagnosing performance issues by identifying which components are responsible for specific signals 1. This method helps in tunneling through complexity to find the root cause of problems.

    By using this particular model, what I can actually do then is take these signals, plug it in, and it helps me to, from a top down point of view, tunneled down, like through the layers of complexity to get to where the root cause is.

    ---

    Additionally, Kirk highlights the potential of AI and numerical analysis techniques in performance diagnosis, which can significantly reduce the time needed to identify performance regressions 3.

       

    Efficient Code

    Writing simple, efficient code is essential for optimal performance, according to Kirk. He advises developers to focus on simplicity and readability, which allows the JVM to optimize code more effectively 4. This approach minimizes the need for developers to worry about the internal workings of the JVM, as long as they adhere to good coding practices.

    Write simple code. That's the best thing you can do. Those three words, write simple code.

    ---

    Kirk also stresses the importance of understanding algorithmic complexity, even if developers are not writing algorithms themselves. This knowledge helps in choosing the right data structures and making efficient use of hardware resources 5.

Related Episodes