You probably won’t like my answer, but buying faster devices or developing faster agents for the devices might help
On the other hand, you can try to get the information from the devices in a much more efficient way. For example, using GETBULK to get whole sub-trees is the most inefficient way in most cases.
BTW, your application will not work with SNMPv3 authentication because you do not persistently safe the engineBoots counter!
See SNMP4J 2.8.6- TCP traps coming from different ips are lost