Windows Performance Samples

Explore a collection of code samples designed to help you understand and optimize performance in Windows applications. These samples cover various aspects of performance tuning, from low-level system interactions to high-level application design.

Key Performance Areas

Delve into specific areas of Windows performance with targeted examples:

  • CPU Utilization: Samples demonstrating how to monitor and reduce CPU usage.
  • Memory Management: Techniques for efficient memory allocation and deallocation, detecting leaks.
  • I/O Operations: Optimizing disk and network throughput.
  • Graphics Performance: Improving rendering speed and responsiveness.
  • Multithreading: Effective use of threads for parallel processing.
  • Power Management: Creating energy-efficient applications.

CPU Usage Monitoring Utility

This sample provides a C++ application that uses the Windows Performance API (PerfLib) to retrieve real-time CPU usage statistics for different processes and the overall system. It includes source code and explanations on how to interpret the performance counters.

// Example snippet (simplified) #include <windows.h> #include <pdh.h> // ... initialize Pdh system ... // ... query CPU total processor time ... // ... calculate percentage usage ...

Download Source Code (ZIP)

Memory Profiler Example

Learn how to detect and diagnose memory leaks with this C# sample. It demonstrates techniques for tracking object allocations and identifying areas where memory is not being properly released, often using the .NET Memory Profiler API.

// Example snippet (simplified C#) using System.Diagnostics; // ... track object allocations ... // ... analyze heap snapshots ... // ... identify potential leaks ... GC.Collect(); GC.WaitForPendingFinalizers();

Download Source Code (ZIP)

Disk I/O Throughput Test

This C++ sample allows you to benchmark the read and write performance of your storage devices. It implements various I/O patterns (sequential, random) and uses Win32 API functions to measure throughput in MB/s.

// Example snippet (simplified C++) #include <windows.h> #include <iostream> HANDLE hFile = CreateFile(L"test.dat", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); // ... write data in chunks ... CloseHandle(hFile);

Download Source Code (ZIP)

Network Performance Analyzer

Evaluate your network's capabilities with this C# sample. It includes TCP and UDP clients/servers to measure raw bandwidth and latency, helping you identify potential bottlenecks.

// Example snippet (simplified C#) using System.Net.Sockets; using System.Text; TcpClient client = new TcpClient("server_ip", port); // ... send/receive data and measure time ... client.Close();

Download Source Code (ZIP)

DirectX Graphics Performance Tuning

Optimize your DirectX applications for smoother frame rates. This sample demonstrates techniques like efficient resource management, batching draw calls, and reducing overdraw in Direct3D 11.

// Example snippet (simplified C++) // ... setup Direct3D device and context ... // ... render objects with optimized shaders ... // ... present frame ...

Download Source Code (ZIP)

Parallelism with Task Parallel Library (TPL)

Leverage modern multi-core processors effectively. This C# sample showcases the Task Parallel Library (TPL) and PLINQ for parallelizing computationally intensive tasks, providing clear performance gains.

// Example snippet (simplified C#) using System.Threading.Tasks; Parallel.For(0, data.Length, i => { // ... perform parallel computation ... });

Download Source Code (ZIP)

Power Management Best Practices

Write applications that are kind to users' batteries. This sample explores Windows power management APIs and techniques to reduce power consumption during idle periods or when system resources are not critical.

// Example snippet (simplified C++) // ... use power management APIs ... // ... enter low-power states when idle ... // ... manage device power states appropriately ...

Download Source Code (ZIP)