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.
- Host: GitHub
- URL: https://github.com/sh1ftd/dma-speedtest-memflow-rs
- Owner: sh1ftd
- License: agpl-3.0
- Created: 2025-03-11T01:38:03.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-12-13T23:21:42.000Z (6 months ago)
- Last Synced: 2025-12-15T19:19:49.692Z (6 months ago)
- Topics: dma, firmware, fpga, memflow, speed, speedtest, test
- Language: Rust
- Homepage:
- Size: 2.89 MB
- Stars: 8
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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/).