YOUR FIRST BEFORE / AFTER TEST

Record one scene.
Keep a result you can revisit.

Capture your game on Windows, import the compatible CSVs here, then compare repeated runs before and after one change.

FrameLedger does not measure your PC in the browser. It summarizes measurements you provide; CSV files are processed locally.

01 / SET UP A REPEATABLE RUN

Choose the scene before changing a setting.

  1. Pick a repeatable segment. Use a built-in benchmark or a fixed replay. Choose a duration you can repeat; the example below records 60 seconds. Avoid menus, loading screens and switching applications during the recorded segment.
  2. Write down the setup. Keep the game version, Windows build, driver, resolution, graphics quality, frame cap and capture tool in your notebook. Keep frame-generation and upscaling settings unchanged.
  3. Plan five runs per condition. Warm up the game first. Use the same warm-up, start point and duration for five baseline runs and five runs after one change. Keep every raw capture and recheck the baseline later for drift.

You do not need to buy or install Radiant Optimizer to use the notebook. The workflow also works for a game setting, driver change or another tool, provided you can record the exact change and how to reverse it.

02 / CREATE A COMPATIBLE CSV

Use PresentMon's console export.

The example uses the standalone PresentMon 2.3.1 console release and its documented options. This is a specific documented version, not a claim that it is the newest. Select the console executable named PresentMon-2.3.1-x64.exe from the official release assets for an x64 Windows PC.

  1. Put the console executable in a writable folder. Open PowerShell in that folder. Keep its exact filename; this example is for the console executable, not the graphical capture app.
  2. Start your game and identify its process. In Task Manager's Details view, find the running game's executable and PID. Use that number below instead of 1234. Do not select the launcher. A restart may change the PID.
  3. Prepare the scene, then run this command. Return to the game. At the same starting point each time, press Alt + Shift + F11 to begin the 60-second capture.

PowerShell example

& ".\PresentMon-2.3.1-x64.exe" --process_id 1234 --v1_metrics --hotkey "ALT+SHIFT+F11" --timed 60 --terminate_after_timed --output_file ".\before-01.csv"

Replace the PID. The command records legacy metrics, stops after 60 seconds and exits. Hotkey captures add a numeric suffix to the output filename. Keep the generated file beginning with before-01.

Repeat with output names before-02.csv through before-05.csv. After one documented change, repeat with after-01.csv through after-05.csv. If you choose a different duration, use it for every run.

Keep the command's export settings unchanged. Do not add --qpc_time, --date_time or --exclude_dropped: this importer needs the legacy time column and the complete present stream. Other CSV formats require a different analysis path.

03 / SAVE THE BASELINE, THEN THE COMPARISON

Bring the files back to your notebook.

  1. Import the baseline. Open Your tests, complete the setup fields and choose Add before CSV captures. Select your five separate baseline files, then Save baseline & continue.
  2. Record one change and its recovery path. Capture the after runs with the same process, scene, duration and settings apart from that change. Use Add after CSV captures in the second step.
  3. Compare and save. Confirm the matching conditions, choose Compare runs, then save the comparison with a keep, revert, retest or undecided conclusion. Export a notebook backup and retain the raw CSVs separately.

Each CSV supplies one mean present rate. FrameLedger compares repeated captures and shows their spread, plus present-interval details. Those intervals describe application Present calls; they do not establish displayed FPS, input latency, a stutter diagnosis or a causal benefit from the change. A small difference amid wide variation is a reason to retest.

The notebook accepts 3–20 captures per condition; five or more is preferred. Each file may be up to 8 MB, with a 24 MB limit per selection. Use smaller selections to add a large set. A file needs at least 30 positive intervals and no more than 200,000 data rows.

Files stay on your device. Saved records contain filenames and calculated summaries; the original CSVs are not uploaded or included in the notebook backup. Local records do not sync between browsers or devices.

Open your test notebook

04 / WHEN AN IMPORT STOPS

Fix the capture, then try again.

Unsupported CSV format or missing columns

Use the console's --v1_metrics output. The header must contain Application, ProcessID, SwapChainAddress, TimeInSeconds and MsBetweenPresents. A modern default CSV, CapFrameX JSON or summary spreadsheet is not compatible. Do not rename columns to make a different metric look compatible.

Multiple processes or swap chains

Recheck the PID and capture only the intended game during the fixed scene. One PID can still contain multiple swap chains; this importer cannot choose one for you. If the error remains, use the capture tool's own analysis and the manual-entry path. Do not combine streams or delete unwanted rows merely to pass validation.

Warning: swap-chain address is 0

The importer accepts a consistent legacy address of 0 with a warning. Some legacy OpenGL/Vulkan captures do not identify individual swap chains, so the address cannot confirm a single stream. Use the capture tool’s analysis to check the workload and keep this limitation with your result.

Empty file, too few intervals or access denied

Check that the game was running, the PID was current and the hotkey started recording. For a trace-session permission error, follow PresentMon's access instructions. If the game or capture tool cannot record this workload, use manual results from a supported measurement tool.

File too large or a duplicate capture

For the 24 MB selection limit, add fewer files at a time. For an 8 MB file or 200,000-row limit, collect shorter, equal-length runs for both conditions. A duplicate file cannot stand in for a new run; make a fresh capture. Avoid editing or trimming data merely to pass an import.

One condition uses CSV and the other uses manual values

Use compatible CSVs for both conditions. To switch to manual entry, choose the relevant Clear before CSV runs and Clear after CSV runs buttons, then enter run averages for both sides from the same tool and metric.

ALTERNATIVE / NO COMPATIBLE CSV

Enter repeated run averages.

If your game's benchmark or existing measurement tool reports average FPS, record that value after each complete run. Enter five separate baseline averages, then five after-change averages in the notebook, separated by commas or new lines. Use the same tool, metric, scene and duration for both conditions.

Keep screenshots or original reports with your raw evidence. Do not mix displayed FPS with present rate, treat several moments from one run as separate runs, or enter illustrative example numbers as your own measurement. Manual comparisons summarize only the averages you supply; they cannot reconstruct frame-time details.

Sources and verification scope

Checked October 11, 2026: official console release, console parameters and legacy CSV column definitions. Capture commands are documentation-checked examples. FrameLedger has not run the Windows capture, tested a particular game or produced an original Radiant benchmark. Notebook limits and steps describe this site's current implementation.

NEXT / PURCHASE DECISION

Check which features you need.

Compare free and paid →
NEXT / THE EVIDENCE

Understand the limits of our review.

Read the source review →