An open API service indexing awesome lists of open source software.

https://github.com/sh1ftd/dma-speedtest-memflow-rs

A Windows command-line tool for benchmarking DMA (Direct Memory Access) read/write speeds using the memflow framework.
https://github.com/sh1ftd/dma-speedtest-memflow-rs

dma firmware fpga memflow speed speedtest test

Last synced: 4 months ago
JSON representation

A Windows command-line tool for benchmarking DMA (Direct Memory Access) read/write speeds using the memflow framework.

Awesome Lists containing this project

README

          

# DMA Speedtest Memflow RS

Windows GUI for benchmarking DMA read performance through the [memflow](https://github.com/memflow/memflow) framework. Targets `explorer.exe`/`ntdll.dll` and reports throughput, read rate, and latency in real time.

## Features

- PCILeech and memflow-native connectors
- Batch testing across configurable read sizes
- Live plots for throughput, reads/s, and latency with per-size summaries
- Embedded console, adjustable UI scale, and resizable plots

## Build from source

```bash
git clone https://github.com/sh1ftd/dma-speedtest-memflow-rs.git
cd dma-speedtest-memflow-rs
cargo build --release
./target/release/dma-speedtest-memflow-rs
```

## Usage

1. Launch the binary.
2. Pick a connector:
- `PCILeech` (requires hardware device identifier)
- `Native` (memflow-native for local testing)
3. Set test duration (1–60 s) and enable desired read sizes.
4. Start the test, observe results.

## UI Overview

- **Configuration:** connector selection, duration slider, read-size grid with bulk actions, UI scale input.
- **Results:** throughput/reads/latency plots, min/avg/max tables, live metrics banner, chunk progress, console toggle.
- **Console:** optional overlay listing size transitions, stats updates, and errors.

## Requirements

- Windows 10/11 64-bit
- Rust toolchain for local builds
- PCILeech-compatible hardware and drivers for physical testing

## Credits

Built with [Rust](https://www.rust-lang.org/), [memflow](https://github.com/memflow/memflow), [tokio](https://github.com/tokio-rs/tokio) and [egui](https://github.com/emilk/).