[IronPython] Performance of dir

Michael Foord fuzzyman at voidspace.org.uk
Sun May 24 15:20:45 CEST 2009


Curt Hagenlocher wrote:
> The first time you do a dir() of Form, we have to use Reflection to 
> introspect
> - every member on Form
> - every member on ContainerControl
> - every member on ScrollableControl
> - every member on Control
> - every member on Component
> (aka the inheritance hierarchy of Form :D )
>
> After that, the members are all cached and subsequent access should be 
> quite fast.

Yes, the second access is much faster. Thanks. I was hoping it was doing 
extra work and we could build a faster equivalent that only did the 
reflection, but oh well. :-)

Michael

>
> On Sat, May 23, 2009 at 4:47 PM, Michael Foord 
> <fuzzyman at voidspace.org.uk <mailto:fuzzyman at voidspace.org.uk>> wrote:
>
>     Michael Foord wrote:
>
>         Hello all,
>
>         On IronPython 2.0.1 the last line of this code takes ~4
>         seconds the first time it is executed:
>
>         >>> import clr
>         >>> clr.AddReference('System.Windows.Forms')
>         >>> from System.Windows.Forms import *
>         >>> dir(Form)
>
>         Form.__dict__.keys() (which for a .NET type is equivalent)
>         takes ~1 second or less. What extra work is dir doing? (Is it
>         pulling in the xml docstrings?)
>
>
>     Actually they're not equivalent, my bad:
>
>     >>> len(Form.__dict__)
>     287
>     >>> len(dir(Form))
>     540
>
>     Michael
>
>
>         Thanks
>
>         Michael
>
>
>
>     -- 
>     http://www.ironpythoninaction.com/
>     http://www.voidspace.org.uk/blog
>
>
>     _______________________________________________
>     Users mailing list
>     Users at lists.ironpython.com <mailto:Users at lists.ironpython.com>
>     http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>   


-- 
http://www.ironpythoninaction.com/
http://www.voidspace.org.uk/blog





More information about the Ironpython-users mailing list