Once the oplog entries are fetches from the upstream source the same fields, "ns", "op", "ts" and others are repeatedly read from the same entry causing lots of extra parsing/work.
One possible solution is to create a simple struct to wrap the BSONObj which caches the well-known fields:
- o (optional)
- o2 (optional)
- o/o2._id (optional)