Re: Optimization for OOP

Tony Finch <dot@dotat.at>
05 May 2008 18:11:27 +0100 (BST)

          From comp.compilers

Related articles
Optimization for OOP sgkelly4@gmail.com (2008-05-03)
Re: Optimization for OOP torbenm@app-1.diku.dk (2008-05-05)
Re: Optimization for OOP mailbox@dmitry-kazakov.de (Dmitry A. Kazakov) (2008-05-05)
Re: Optimization for OOP dot@dotat.at (Tony Finch) (2008-05-05)
Re: Optimization for OOP lucretia9@lycos.co.uk (lucretia9@lycos.co.uk) (2008-05-05)
Re: Optimization for OOP mailbox@dmitry-kazakov.de (Dmitry A. Kazakov) (2008-05-06)
Re: Optimization for OOP sgkelly4@gmail.com (2008-05-06)
| List of all articles for this month |
From: Tony Finch <dot@dotat.at>
Newsgroups: comp.compilers
Date: 05 May 2008 18:11:27 +0100 (BST)
Organization: dotat labs
References: 08-05-008 08-05-010
Keywords: OOP, optimize
Posted-Date: 05 May 2008 17:13:11 EDT

torbenm@app-1.diku.dk (Torben =?iso-8859-1?Q?=C6gidius?= Mogensen) wrote:
>
>The most important optimisation is to get rid of dynamic method calls.
>This can, however, be quite tricky as you can't tell if a method can
>be overridden without knowing the whole program, so it plays havoc
>with separate compilation.


The Self papers have some good descriptions of optimisation techniques
for a pure OO language. http://research.sun.com/self/papers/papers.html


In a VM-based language you can implement a tracing JIT which naturally
specializes away dynamic dispatch. Mike Pall wrote a short description
of how this works in the second half of his post to the Lua list
linked below, with some references to papers.
http://lua-users.org/lists/lua-l/2008-02/msg00051.html


Tony.
--
f.anthony.n.finch <dot@dotat.at> http://dotat.at/
FITZROY SOLE: VARIABLE 4 IN EAST, OTHERWISE SOUTHERLY 5 TO 7, OCCASIONALLY
GALE 8 IN WEST SOLE. ROUGH OR VERY ROUGH IN WEST, SLIGHT OR MODERATE IN EAST.
SHOWERS, WITH FOG PATCHES IN EAST. MODERATE OR GOOD, OCCASIONALLY VERY POOR.



Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.