Hacker News new | past | comments | ask | show | jobs | submit login

Hm yes I was wrong about that. It looks like v8 and PyPy do it (which is apparent from some Googling and grepping of the code).

I have been reading some papers on JITs and I don't see escape analysis mentioned that often. In the PyPy paper (which is over a decade old) they mention it as future work.

Still, I actually tried PyPy on a string-based workload and it was slower than CPython and used more memory. I don't know why but that contributes to my feeling that JITs are bad for string-based workloads.

I'm interested in seeing any pointers to benchmarks that show the improvements resulting from escape analysis in JITs. I haven't seen anything like that and I've done a decent amount of research.

A cursory look at this blog post makes me think it's not super straightforward:

https://v8project.blogspot.com/2017/09/disabling-escape-anal...

That post is less than a year old! i.e. the fact that v8 has been around for 10+ years and they're still updating escape analysis makes me wonder what the issue with it is. Is it hard to implement or does it not produce that much speedup? I appreciate any pointers.




> I'm interested in seeing any pointers to benchmarks that show the improvements resulting from escape analysis in JITs. I haven't seen anything like that and I've done a decent amount of research.

If you've done a decent amount of research in the field of JITs and you aren't aware of what escape analysis achieves in practice then I'm very surprised.

http://www.ssw.uni-linz.ac.at/Research/Papers/Stadler14/Stad...

That paper is relatively recent, so you can follow the chain of papers from its references.


>Still, I actually tried PyPy on a string-based workload and it was slower than CPython and used more memory. I don't know why but that contributes to my feeling that JITs are bad for string-based workloads.

Now that I'm implementing a interpreter for a relational language and from what I know for why python is slow:

https://jakevdp.github.io/blog/2014/05/09/why-python-is-slow...

And also:

https://speakerdeck.com/alex/why-python-ruby-and-javascript-...

Is challenging to be dynamic and also fast. So, you need to design the language/runtime with performance in mind, or at least, to minimize what could be very slow (that is what I'm triying).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: