A basic profiling session is showing 87% idle CPU, indicating that the process overall doesn’t appear to be terribly CPU bound.
Of the 13% remainder:
- 8% is spent almost entirely here, checking if the permanence of synapses is above the threshold (i.e. the core learning part)
- 5% is spent almost entirely here, applying these changes.
The profiler I’m using is called YourKit (14 day trial), and integrates nicely with Eclipse if that’s what you use. Even on basic settings it automatically drills into lambdas, so I’d suggest you give it a try and see what it comes back with. Even though performance hasn’t been hugely consistent, I don’t think I’ve been able to reproduce quite what you’re experiencing.