With nested records, Parser.pushProduction() gets called multiple times (once per record nesting). Since we do not have any events for beginning and end of records, it enhances the performance if we flatten the grammar, wherever possible.
The forthcoming patch does just that.
Try org.apache.avro.io.Perf -N
On my machine (HP laptop with Cygwin) the improvement is about 20%.