Closed CptWesley closed 5 years ago
You are right, current implementation is far from optimal. I didn't really bother with optimizing the code because my solutions use small vectors (less than 100 items), so I didn't notice the problem. I did some benchmarks and I can see difference even with array of 10 items. Performance gain introduced by your commit is huge!
Thanks for contributing :)
Why?
The current combination of aggregations and formatting is rather slow, in fact an array of 80.000 randomly generated doubles took about 40 seconds to be formatted into an octave vector string. This alternative implementation only took 47 milliseconds to create the same string. I initially wanted to test the difference on an array filled with zeroes of size 4.000.000, however after about 20 minutes I decided it was taking too long, while the implementation in this pull request only took 614 milliseconds.
What?
The
.ToOctave()
methods have been implemented with aStringBuilder
loop which is considerably faster/more scalable than the current implementation present in the master branch.