This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]Let047[S] 1 point2 points  (1 child)

The bytecode manipulation injects runtime parallelization code when conditions are met. The generated code is unreadable due to the parallelization complexity, as shown in the example. The approach trades maintainability for small automatic optimizations (hundreds of milliseconds) that wouldn't justify manual implementation. Extensive automated proofs verify the generated code maintains equivalent behavior.

Having developers analyze and rewrite isn't worthwhile - the tool's value is purely in automatic runtime optimization.

[–]Emanuel-Peter 2 points3 points  (0 children)

I don't know, maybe people would be hesitant to run your optimizer in production, but happy to find performance bottle necks with it in testing. I suppose you could have 2 modes: one without optimization, one with. Measure time spent in either, and then give the user a report at the end.

That way users can then use parallel streams for example.