This document discusses profiling and optimizing software-based network analysis applications. It identifies components involved in network analysis like packet filtering, buffering, and copying. It analyzes the costs of unoptimized and optimized packet processing, showing how optimizations like hardware timestamps and shared buffers can reduce overhead. It also evaluates the performance of software-only packet capture at different network speeds.