moov-io / ach

ACH implements a reader, writer, and validator for Automated Clearing House (ACH) files. The HTTP server is available in a Docker image and the Go package is available.
https://moov-io.github.io/ach/
Apache License 2.0
455 stars 154 forks source link

Performance Benchmarks #166

Closed wadearnold closed 5 years ago

wadearnold commented 6 years ago

Benchmarks need to be added to the project so that we can gauge the effectiveness of changes as they relate to file processing. A static file created for Reading and Writing a file by running a large file (~9,999) of Entries through the library. Utilizing a mock data file performance benchmarks should be reproducible and dependable. Performance benchmarks are key to future development decisions such as validation and parallel processing of batches.

adamdecaf commented 5 years ago

For reference, NACHA states there are about ~4 million ACH files processed each day by the entire economy, so that should be our upper bound. We likely don't need to optimize further if we can process 4mil files in an hour. Maybe even as low as 100k or 1mil per hour.

Source: https://www.nacha.org/news/nacha-reports-strong-ach-volume-growth-nearly-7-percent-q3-2018

adamdecaf commented 5 years ago

I was getting 13-15k/sec Reader.Read() calls on my mac with a bunch of stuff running.

For reference: 13000*60*60*24 = 1,123,200,000 per day

@wadearnold Are you cool if we close this? For specific performance problems we can open a new issue.

bkmoovio commented 5 years ago

I think we can close this. @wadearnold ?

wadearnold commented 5 years ago

I agree

On Thu, Nov 29, 2018, 4:43 PM Brooke Kline <notifications@github.com wrote:

I think we can close this. @wadearnold https://github.com/wadearnold ?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/moov-io/ach/issues/166#issuecomment-443035994, or mute the thread https://github.com/notifications/unsubscribe-auth/AACA3Sc4cMkYXQBIpjCtoVeCscU6LwAFks5u0HE2gaJpZM4TRIrK .