The console build of presentmon is controlled entirely by flags, the short text switches you add to the command when you launch it. At first glance the list looks intimidating, but in practice you will use the same handful of flags for ninety percent of your captures. This guide explains each important flag in plain language, shows you ready-to-use command lines for common jobs, and helps you avoid the combinations that produce empty or confusing files.
Once these click, you will be able to script captures exactly the way professional benchmarkers do.
The Flags You Will Use Every Day
Start with these four. Together they cover a normal, targeted capture with saved results.
-process_name <game.exe>targets one application by its process name. Without it, presentmon records every process that presents frames, including your browser and desktop, which makes files messy. Always pair this with your game’s exact exe name from Task Manager.-output_file <file.csv>saves the captured frame data to a CSV file with the name you give. Pick descriptive names, like the game plus the settings you tested, so future you can tell captures apart.-timed <seconds>stops the capture automatically after the set number of seconds. Fixed lengths make comparisons fair, and auto-stopping means you never have to alt-tab out mid-test.-delay <seconds>waits before capturing begins. Use it when you launch the command first and need a few seconds to get back into the game and into position.
A typical everyday command combines all four:
PresentMon.exe -process_name yourgame.exe -output_file run1.csv -delay 5 -timed 60
Output and Display Flags
By default, the console window shows live statistics while a capture runs: average FPS, frame time percentiles and CPU and GPU timing. A few flags change how results are presented:
-output_stdoutprints the frame data directly to the console instead of (or as well as) a file. It is mainly useful when piping output into another tool or script, since a busy game floods the window fast.-simpletrims the output down. The CSV keeps a reduced set of essential columns, which is handy if you import into spreadsheets that struggle with very wide files, or if you only care about frame times.-scroll_togglelets you pause the scrolling of the console output with the Scroll Lock key, so you can read live figures without them racing past.
For most people the defaults are right: a full CSV file plus the live console summary. Reach for these flags when the default output gets in your way.
Targeting and Excluding Processes
Sometimes one flag is not enough. If a game launches through a launcher, or you want data from everything except a known noisy app, these options help:
-exclude <process>leaves a named process out of the capture. Useful when an overlay host or a second app keeps presenting frames and polluting your file.-stop_existingends any PresentMon capture session that is already running before starting yours. Scripts and batch files love this one, because a leftover session from an earlier test can otherwise fight your new capture.-etl_fileworks with a saved ETW trace file instead of a live capture. Advanced users record a trace with other tools, then process it through presentmon to extract frame data on their own schedule.
Process names must match exactly, including the.exe ending. If your capture comes back empty, a wrong process name is the second most likely cause, right behind forgetting to run as administrator.
The Capture Hotkey and Manual Control
Not every test fits a timer. When you want to capture a specific boss fight or one exact cutscene, manual control works better. In classic builds, the F11 key acts as the capture hotkey: press it once to start recording and again to stop. Combined with -output_file, you get a file containing just the segment you care about.
A practical manual setup looks like this:
PresentMon.exe -process_name yourgame.exe -output_file bossfight.csv
Launch it before the fight, tap F11 as the fight starts, and tap it again at the end. Your CSV now holds only that encounter, which makes before-and-after comparisons (a patch, a new driver, different settings) much cleaner than carving up one giant capture.
Putting It Together: Three Recipes
The fair benchmark: PresentMon.exe -process_name game.exe -output_file bench.csv -delay 5 -timed 60. Fixed length, clean start, perfect for comparing settings or hardware.
The quick smoothness check: PresentMon.exe -process_name game.exe -timed 30. No file at all, just 30 seconds of live console stats including the 99th percentile frame time. Great for a fast “did that fix the stutter” answer.
The scripted session: PresentMon.exe -stop_existing -process_name game.exe -output_file session.csv -simple. Kills leftovers, captures a trimmed file, and slots neatly into a batch script that runs several tests back to back.
Flag Combinations to Use and to Avoid
Flags interact with each other, and a few combinations regularly confuse new users. Knowing them in advance saves you a round of head-scratching.
Pair -timed with -delay freely; that is the standard benchmark recipe, a pause to get positioned followed by a fixed-length run. But avoid mixing a timed capture with the F11 hotkey in the same session. If the timer ends the capture while you think the hotkey is in control, you will go looking for data that was never recorded. Pick one stopping method per run and stick to it.
Be careful with -output_stdout during real gameplay. Printing every frame to the console is a firehose of text, and the scrolling itself can eat the very performance you are measuring on a weaker PC. Use it for short tests, debugging, or when piping output into another program that consumes it quietly. For normal captures, -output_file is the right choice because the file waits patiently until you are done playing.
If you capture the same game several times in a row, vary the output file name on each run. Reusing one name overwrites your previous result, and the classic home-benchmark heartbreak is realizing your “before” data vanished because the “after” run saved on top of it. A simple pattern works: game name, settings, then a run number.
And when a command produces nothing at all, resist the urge to add more flags. Strip the command back to the basics (administrator mode, correct process name, one output file) and confirm a plain capture works. Then add flags one at a time. Nine times out of ten, the stripped-down version works, and the flag you added last was the problem.
One last habit separates casual users from efficient ones: keep a small text file of your proven command lines in the same folder as the exe. Paste in the three or four commands you actually use, with your games’ process names already filled in. On test day you copy, paste and run instead of retyping flags from memory and fat-fingering one. Benchmarkers who test weekly swear by this, because the fastest command is the one you do not have to reconstruct. Over time your little cheat sheet becomes a personal library: one line per game, per scenario, each one known to work.
Conclusion
You do not need to memorize every presentmon flag. Target with -process_name, save with -output_file, control length with -timed and -delay, and keep -exclude, -stop_existing and the F11 hotkey in your back pocket for special cases. With those, you can run everything from a quick stutter check to a fully scripted benchmark suite, and your captures will come out clean and comparable every time.
Read next:

Pingback: How to Read PresentMon CSV Files and Frame Time Data
Pingback: PresentMon Not Working? Fixes That Solve It Fast