MobilityData / gtfs-realtime-validator

Java-based tool that validates General Transit Feed Specification (GTFS)-realtime feeds
Other
41 stars 10 forks source link

Performance: Use get() and put() instead of computeIfAbsent() for HashMaps #82

Open isabelle-dr opened 2 years ago

isabelle-dr commented 2 years ago

Issue by barbeau Dec 09, 2020 Originally opened as https://github.com/CUTR-at-USF/gtfs-realtime-validator/issues/392


Summary:

Benchmarks when working on gtfs-validator show that computeIfAbsent() is about 20% more expensive than calling get() and put().: https://github.com/MobilityData/gtfs-validator/pull/546/files#diff-ab042c46ddc495ec40e8c9a80fdd5ea27dfbac6582dc76a973e523dd34c7b0f9R57

We should optimize the RT validator as necessary.

Steps to reproduce:

Run the validator

Expected behavior:

Have ideal performance when adding to HashMap

Observed behavior:

Benchmarks in context of static GTFS show we're using a slower method