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 <[email protected] <mailto:[email protected]>> 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
    [email protected] <mailto:[email protected]>
    http://lists.ironpython.com/listinfo.cgi/users-ironpython.com


------------------------------------------------------------------------

_______________________________________________
Users mailing list
[email protected]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com


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


_______________________________________________
Users mailing list
[email protected]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to