In "LocalLeastSquaresProblem" (private inner class defined in "o.a.c.m.fitting.leastsquares.LeastSquaresFactory"), the "evaluate" method computes the values of both the model and the Jacobian at creation of the "Evaluation" instance.
Optimizers ("LevenbergMarquardtOptimizer" in particular) may not need both for all of the evaluated points. And this can lead to too many evaluations of the model which in some applications is the costliest part.
In my use-case, the current code in "o.a.c.m.fitting.leastquares" leads to a performance degradation of about 20% w.r.t. the implementation in "o.a.c.m.optim.nonlinear.vector.jacobian".