This talk covers the classic profiler features. What is a hotspot? What is the difference between sampling and instrumentation from the profiler perspective? What are the problems with those methods?
Jerry Yoakum discusses how code profiling tools and techniques can be used to evaluate code for constructions and errors that are likely to cause problems, highlight places in need of refactoring.
Peter Lawrey discusses data-driven reactive systems, profiling latency distribution in such an environment, finding rare bugs, implementing resilience and monitoring.
The authors introduce Alembic, a new static analysis tool that frees programmers from having to manually move computation to exploit locality in PGAS programs.
Adam Tornhill teaches how to predict bugs, detect architectural decay and find the code that is most expensive to maintain, how to evaluate knowledge drain in a codebase, and much more.
Bjorn Freeman-Benson suggests “listening” to the code, refactoring it based on various factors such as the defect rate or underperforming services, providing strategies and tools.
Patrick Smacchia shares code analysis-related practices - structuring code, measuring code quality, automated tests, code contracts, reporting progress, trending- based on his experience with NDepend.
Panos Astithas presents some of the debugging, profiling and tracing tools available to web developers today.
Daniel Spiewak and Aaron Bedra take a look at code verifying starting with Tony Hoare’s paper on testing(1969), type theory, and language-integrated proof systems.
William Pugh explains how to use FindBugs, a Java static code analysis tool, to discover bugs. The talk covers general issues regarding code bugs with advice on how to make sure you get rid of them.
Erik Dörnenburg shares techniques for estimating code quality by collecting and analyzing data using the toxicity chart, metrics tree maps, size&complexity pyramid, complexity view, code city, etc.
Michael Feathers analyzes real code bases concluding that code is not nearly as beautiful as designers aspire to, discussing the everyday decisions that alter the code bit by bit.