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.
This is helpful. I’ll try to corroborate the same on my end w.r.t cpu utilisation.
Could you please share the output data you used for the plot? I’d like to do a side-by-side manual analysis and look if there are patterns.
Also, as you already have seen, I’m using my local-built HTM jar in my pom.xml (and not the maven one!). Did you use the maven HTM dependency (v. 0.6.2) while you ran these experiments?