5 ms·
Interesting, I'd never heard of the technique of searching all possible instruction sequences to find one with desired characteristics. It's the Infinite Monke
by haberman 12y ago
Interesting, I'd never heard of the technique of searching all possible instruction sequences to find one with desired characteristics. It's the Infinite Monkey Theorem for code.
- molyss 12y agoHere's the original paper on super optimization by Alexia Massalin : http://courses.cs.washington.edu/courses/cse501/15sp/papers/massalin.pdf http://courses.cs.washington.edu/courses/cse501/15sp/papers/... I ran into it a couple years ago, after hearing from other research from her. Her papers are really impressive. I would have loved that the author of the article had mentioned her. On a side note, I wouldn't be surprised if the JIT compilers were doing some use of this, allowing some interpreted language to have better performances than compiled C on some benchmarks EDIT : formatting and JIT addition
- kevinnk 12y agoJIT compilers are time constrained so super optimization isn't a very good match.
- chrisseaton 12y agoWhy are JIT compilers time constrained? If you have a banking system that runs all day every day, why does it matter if it takes 5 minutes to compile the hot spots at the top tier of optimisation?
- oso2k 12y agoImagine you happen to walk up to your ATM when it's Mother Banking System is in the middle hotspot compile followed by a GC pause. What would you do if your ATM took 5 minutes+ to respond to your Withdrawal Request? You'd probably freak out and worry about getting ATM card back.
- chrisseaton 12y agoThe program doesn't have to stop to run the JIT - it can run it on a background thread.
- copsarebastards 12y agoHotspot compilations are blocking? That would surprise and horrify me.
- duaneb 12y agoI would hope an ATM isn't built to use a stop the world GC along with a stop the world jit compiler. I hope you realize how absurd you sound making an argument against jit with a real time device.
- kevinnk 12y agoIf you have a banking system that runs all day every day, why are you not compiling ahead of time and running super optimization then? JIT is most useful where the application or the target is highly dynamic and you aren't able to compile ahead of time.
- chrisseaton 12y agoIf the workload characteristic changes over time you may want to recompile with different profiling data.
- WalterBright 12y agoThat paper caused a small sensation in the compiler community at the time, as everyone rushed to implement it!
- fit2rule 12y agoWhere is this compiler community?