... but that's exactly the cognitive dissonance I'm talking about. Fine-grained parallellism doesn't appear, to me, to be capable of giving you more than a roughly 10x to 60x speedup for the very long foreseeable future, and that's being extremely generous here (and I'm comparing to taking the opportunity to parallelize in-the-large where-ever the opportunity arises, not a strict 'use only one core and the rest might as well not exist' model).
Using non-algorithmic optimizations such as reducing object creation (obviously refer to your profiler report, any object creation that hotspot escape analysis can eliminate or which don't cause a measurable performance hit shouldn't be touched) can do something on the scale of 2x to 40x. Clearly the same order of magnitude. Both require massive changes to your code layout, both require a lot of knowledge on finicky topics, and both strongly prefer the use of profilers and other tooling to ensure you're actually making progress, speed-wise, because its very easy to get either an optimization wrong (because your code gets hotspotted into something you didn't expect), or a parallelized operation wrong (because you're accidentally causing a long long someplace by accident, both impossible to test without proper profiling). With a lot of work we can probably reduce the rate at which programmers screw up the performance benefits of parallelizing their code, but performance is difficult to unit test, no matter how focussed-on-multicore your language and libraries are. (neither java nor scala is ready for multi-core right now. For example, java has no closures, and scala still has the fundamentally impossible to parallelize foldLeft and foldRight defined as operators out-of-the-box - that's the kind of work I'm talking about). The similarities seem rather obvious when its put that way. So, why is one (non-algorithmic optimizing) so bad that its equated to being "the root of all evil" in a rather famous quite, whereas the other is almost universally espoused as what a proper programmer at the pinnacle of his craft is working on? -- You received this message because you are subscribed to the Google Groups "The Java Posse" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.
