Velocity
  1. Velocity
  2. VELOCITY-663

getAllowRendering() performance bottleneck

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Engine
    • Labels:
      None

      Description

      getAllowRendering() methods which wraps all calls to the writer within the ASTNode renders and account for 11% of the time. I'm a little surprised by this because it just returns a member, but it may be due to the multiple layers of delegates and interfaces. From what I can tell, the purpose of this method is to serve the #stop directive (which the documentation claims is for debugging). I've always thought that #stop stopped execution of the script, but it doesn't, it continues executing the script and doesn't write anything to the writer, Yikes. I wonder if this shouldn't be implemented like #break, by throwing an exception which is caught at the top. Execution of the script would stop, and getAllowRendering could be removed.

        Activity

        Hide
        Byron Foster added a comment -

        #stop has been re-implemented so that it terminates execution as well as rendering of the template. this also removes all of the getAllowRendering() methods that were causing performance issues. And, the code base is smaller to boot! #stop was implemented similar to #break such that a Throwable is thrown from the ASTStop node.

        Show
        Byron Foster added a comment - #stop has been re-implemented so that it terminates execution as well as rendering of the template. this also removes all of the getAllowRendering() methods that were causing performance issues. And, the code base is smaller to boot! #stop was implemented similar to #break such that a Throwable is thrown from the ASTStop node.

          People

          • Assignee:
            Unassigned
            Reporter:
            Byron Foster
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development