Speed Testing with H2testw: Tips for Accurate MeasurementsH2testw is a small, free utility originally developed by Harald Bögeholz to verify the actual capacity and integrity of USB flash drives, SD cards, and other removable storage. Although its primary design is to detect counterfeit or misreported storage capacity by writing and reading test data, many people also use H2testw as a simple speed-check tool. This article explains how H2testw measures speed, what its results mean, common pitfalls, and practical tips to get accurate and useful measurements.
How H2testw works (brief technical overview)
H2testw performs two main operations:
- It writes a series of test files that collectively fill the chosen portion of the drive with known data patterns.
- It then reads those files back and verifies the data against the original patterns.
Because the program writes then reads the same blocks sequentially, the measured write and read times reflect sequential performance across the area tested. H2testw reports total time taken for write and read phases and computes throughput as bytes per second, typically displayed in MB/s.
What H2testw speed numbers represent
- Sequential write speed: Measured while the program writes large contiguous test files. This approximates maximum sustained sequential write performance on the tested portion of the device.
- Sequential read speed: Measured during the verification (read) pass and approximates sustained sequential read performance.
- H2testw does not measure random I/O performance (small random reads/writes), so its results are not representative of tasks that rely on many small file operations.
- Results depend on tested capacity size. Testing the entire device versus a small portion can yield different average speeds because of controller behavior, caching, and wear leveling.
Common pitfalls that skew results
- Drive caching: Many devices and host systems use write caching. If caching isn’t bypassed or the device reports write completion before data is physically stored, measured write speeds can be artificially high.
- Small test sizes: Testing a tiny amount of data may only benchmark cache or fast SLC cache regions on the drive, not sustained performance.
- Fragmentation and prior data: Pre-existing files, partitions, or filesystem fragmentation can influence where H2testw writes and how the controller responds.
- Host limitations: USB port version (USB 2.0 vs USB 3.x), cable quality, adapter chips, and the computer’s storage bus all affect throughput.
- Filesystem overhead: Testing on FAT32, exFAT, or NTFS can produce slightly different results due to block sizes, metadata updates, and allocation behavior.
- Thermal throttling: Flash devices can slow down when overheated; prolonged testing may push a device into throttling mode.
- Fake capacity or errors: If H2testw finds mismatches or bad regions, read/write times and reported throughput become secondary to data integrity issues.
Preparation: how to set up for the most accurate test
- Use the correct interface:
- Connect the device to a native high-speed port (e.g., USB 3.0/3.⁄3.2) on your computer. Avoid unpowered hubs and cheap adapters; use a direct motherboard port or a trusted adapter.
- Use a suitable test size:
- Test with a file size large enough to exceed the device’s internal caches. For small flash drives, test at least 50–75% of the device capacity; for larger SSD-like USB sticks or high-end SD cards, test 10–25% to see sustained speeds without wasting time.
- Choose the right filesystem:
- Format the drive in the filesystem you intend to use (exFAT for large cross-platform transfers, NTFS if Windows-only). Alternatively, run H2testw on an unformatted device by selecting its free space; consistent filesystem state helps repeatable results.
- Ensure idle device and host:
- Close background apps that might access the drive. Disable antivirus or real-time scanning temporarily for the duration of the test (re-enable afterward).
- Stabilize temperature:
- If possible, run a short warm-up transfer (e.g., copying a large file) first to reach steady-state thermal conditions before measuring sustained speed.
- Remove other partitions/devices:
- Disconnect other external drives and devices that can compete for bus bandwidth, and avoid using the same controller for simultaneous transfers.
Running H2testw correctly
- Start H2testw as Administrator (Windows) to reduce permission-related interference.
- Select the target drive and choose “All available space” or a specific size. For speed testing, avoid using only a tiny fraction.
- Leave the “Verify” option checked — verification is how read speed is measured and also ensures data correctness.
- Be patient: testing large portions of a drive can take hours; rushing by using a tiny test will only show cache speeds.
- Record both write and read MB/s, plus any reported mismatches or errors.
Interpreting results
- Compare write vs read: Many flash-based devices write much slower than they read. If your write speed is significantly lower than the manufacturer’s claimed sequential write, test again with a larger allocation and different ports.
- Watch for huge discrepancies between multiple runs: If speeds drop drastically on subsequent runs, the device likely has a small fast buffer (SLC cache) that fills, then slows to a much lower background pace.
- If verification reports errors or mismatches, treat the device as unreliable regardless of speed.
- Use H2testw results together with other tools (see alternatives) to get a fuller picture — random IOPS, latency, and small-file performance require different utilities.
Practical examples and recommended test sizes
- 16 GB low-end USB stick: test 10–12 GB (≈ 60–75% capacity) to flush caches and expose sustained write speed.
- 64–256 GB mainstream microSD card: test 8–32 GB (≈ 10–30%) to measure sustained throughput without running hours.
- High-capacity USB SSDs (1 TB+): test 50–200 GB depending on time available to see steady-state performance.
Alternatives and complementary tools
- CrystalDiskMark — for sequential and random read/write metrics with configurable block sizes and queue depths.
- ATTO Disk Benchmark — good for profiling throughput across multiple transfer sizes.
- fio (cross-platform) — highly configurable for detailed synthetic tests (random vs sequential, multiple threads, queue depths).
- Quick format + Windows copy tests — simple real-world transfer checks using large files.
Compare core differences:
Tool | Best for | Measures |
---|---|---|
H2testw | Capacity verification + basic sequential speeds | Sequential write/read, data integrity |
CrystalDiskMark | Quick sequential and random metrics | Seq/Rnd throughput, customizable sizes |
fio | Deep technical benchmarking | Random IOPS, latency, queue behavior |
ATTO | Transfer size profiling | Throughput vs transfer size |
Troubleshooting low or inconsistent results
- Try a different USB port/cable or another host machine to isolate bottlenecks.
- Reformat the drive using the intended filesystem and retest.
- Update USB controller drivers and firmware for host adapters if available.
- If speeds are low but the drive is new and claimed faster, check for counterfeit capacity (run full H2testw capacity test).
- Replace the adapter or SD card reader — cheap card readers often limit speed.
Final checklist for accurate H2testw speed testing
- Use a direct, correct-speed port and quality cable/reader.
- Test a large enough portion to exceed caches but reasonable for time available.
- Run tests with the drive in the steady thermal state.
- Disable background scans or transfers that could interfere.
- Record both write and read numbers, repeat tests, and compare with other benchmarking tools.
H2testw is best thought of first as an integrity and counterfeit-check tool that also provides simple sequential speed figures. For reliable, repeatable speed benchmarking, use H2testw with the preparation steps above and corroborate results with specialized benchmarking tools when needed.
Leave a Reply