Wednesday, 5 February 2020

Performance Driven Development

 What is PDD and Need of PDD


PDD is just TDD applied to Performance Testing.
Measure and log performance metrics
Fail or Pass the test run based on thresholds
Kick of the process in the early stages of Development
Take the qualitative decision.
Integrate with CICD

Dimensions of PDD

       A system’s performance can be analysed along three dimensions
Is it fast? (enough) —  Latency and Throughput within limits
Does it scale?  Vertical & Horizontal scaling
Is it reliable? (enough)— Load and degrade point.
Performance can be measured with Disk IO, Network IO, Memory and CPU time.


Core Performance Principles

            Memory is faster than disk - much faster - and memory is cheap.
Object allocation and garbage collection is slow.
Data formats and data structures make a big difference in speed.
Asynchronous IO scales better than synchronous IO.
Single threaded performance is a prerequisite for multithreaded performance.
Shared memory (or disk) concurrency is bad because it usually leads to lots of contention when the system gets busy.
Keep low memory footprint.

JConsole & JVisualVM
Basic monitoring CPU, Memory, Classes and Threads
Remote JVM Monitoring
JMX Support
Deep Visual Representation in the form of Graphs
Heap Dump, Thread Dump.
Other Tools
   •SoapUI
   •Artillery 


No comments: