Oprofile, swap
John Richard Moser
nigelenki at comcast.net
Tue Dec 18 16:04:08 EST 2007
Jameson "Chema" Quinn wrote:
>
>
> I suggest taking a look at PyPy for Python, which will dynamic
> recompile
> Python to native code and likely give some good performance benefits. I
> really can't stand JIT compilation and would prefer something that takes
> advantage of Mono's own facilities, to centralize the effort in the JIT
> at least (Mono has nice stuff), but IronPython is Microsoft Permissive
> License which is not OSI approved.
>
>
> Has anyone looked at Psyco on the XO? The point is, no generic mono JIT
> is going to be as smart about guessing the 95% case for Python, as
> something written specifically for Python.
>
The CIL dynamic re-compiler has a well-developed optimizer and a bunch
of other stuff, including an awesome garbage collector. The newer
version use a compacting garbage collector IIRC; though Python might use
reference counting internally (it might be better that way, but consider
the interpreter itself would be in CIL and use reflection ...).
It's basically Python -> CIL -> CIL optimizer, not Python -> CIL -> C#
optimizer. Granted, yes, an optimizer aware of specific language ABI
specifics (like classes for C++, functions and structures for C, ect)
can pre-optimize and then let the lower level optimizer re-optimize the
code better (I think that's how GCC does it, optimizes a Gimple tree
based on language and then does a general optimization based on
hardware); but a CIL reflection compiler could compile Python into an
internal tree, optimize it, emit optimized CIL, and let Mono generate
optimized x86 code (as in, optimize the generated x86 code).
> Disclaimer: I have no experience to back this up.
I have fuzzy understanding of compiler internals, nothing formal and
nothing really great. Ask a gcc guy and a Mono guy.
>
> Jameson
--
Bring back the Firefox plushy!
http://digg.com/linux_unix/Is_the_Firefox_plush_gone_for_good
https://bugzilla.mozilla.org/show_bug.cgi?id=322367
More information about the Devel
mailing list