frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

Open in hackernews

Show HN: High-performance Perforce file integrity verification

https://github.com/fechols/P4Sweep
2•fechols•4h ago
While working remotely for a company making games with the Unreal engine, I ran into an issue with verifying builds on my home workstation: running "p4 clean" to verify the local copy of the repo was taking hours.

If my workstation blue-screened, or if there was any other reason to believe the files on disk might be corrupted or modified, I had to wait hours for the Perforce client to verify 400 GB of data each time.

So I created a tool called P4Sweep that does the same thing as "p4 clean" but 10x faster. And here's why:

* It downloads all of the MD5 hashes for all files at once, rather than one-at-a-time like "p4 clean". * It computes the MD5 hashes of all local files in parallel, based on the number of CPU cores available.

By eliminating the round-trip-latency of requesting the MD5 hash for each file over a VPN connection, plus the increased performance from hashing all files in parallel, we got a 10x performance improvement.

The result: P4Sweep verifies a 400 GB workspace in less than 3 minutes on a 16-core workstation!

So you can be sure you have a 1:1 bit-for-bit copy of what's on the Perforce server in the time it takes to get a cup of coffee!