Don't blow up on reading NULLs. NULL is a legit value in java. I just wish I could get the plugin to respect that I sent it the -absense- of a value... oh wait. I should just not submit anything... :-p
Don't blow up on reading NULLs. NULL is a legit value in java. I just wish I could get the plugin to respect that I sent it the -absense- of a value... oh wait. I should just not submit anything... :-p
Implemented LeastSquares projection based on weighted analysis of a histogram containing recent collections.

This is a major reorganization of the code from a separation of concerns and implemenation standpoint. There's still a lot of 'polish' to do, but at this point I'm pretty pleased with the results.

The basic premise is:
When the plugin starts up it uses a fibonacci sequence to size the thread pool handling collections. It requires 1/2 the size of the histogram (currently 15) to do a 'projection' where it plots the average durations for each pool size it's executed, and weights the point based on the % of attributes which were not cancelled + % of the collection latency for the read cycle.

Based on my own observations on my own hardware, with hand-tuning things over the last few weeks, the projection is really really close to optimal -- certainly within a thread or two, and sufficient enough for my purposes at this time.

The thing I'm not doing yet is weighting based on workload deviation from the most recent read cycle, which I should (and certainly could) add in.