Login
User name:
Password:
Remember me 
Powered by BlogHarbor
Powered by BlogHarbor
Re: More thoughts on compile-time performance
by Michael Kay
I've trimmed another 200ms off the compile time (whether or not optimization is enabled) by a more intelligent implementation of setContainer(). Every node in the expression tree has a pointer to the local root of the tree, and when the tree is grafted onto a new root, becoming part of a larger container, it is "repotted" by updating this pointer in every node. It turns out this is happening rather frequently; in particular, every time an XSLT instruction is compiled, the subordinate instructions and their subtrees are repotted in this way. Again this is quadratic in the size of the function or template.
Post comment:
  Receive comment notifications for this article
Subject: 
Comment: 
Comment verification:

Please enter the text you see inside the graphic to post your comment:
This blog does not allow anonymous comments. Please provide your username and password along with your comment.
Login information:
Username: 
Password: 
If you would like to post contact information on your comment, please enter your information into the optional fields below:
Contact information:
URL:  example: http://yourdomain.com