5 Replies Latest reply on Feb 7, 2013 2:03 AM by BrianV

    ADF taskflow performance

      I heard that ADF taskflows may slow down the performance at runtime as server needs to maintain pageflowscope variables and complete hierarchy of pages for each user. Is it right?

        • 1. Re: ADF taskflow performance
          Timo Hahn
          Not form my point of view, but that's only true for the applications I know. There may be different opinions but over all you have to know the surrounding to give an educated guess.

          1 person found this helpful
          • 2. Re: ADF taskflow performance
            Frank Nimphius-Oracle

            and where did you hear this ?

            1) as server needs to maintain pageflowscope variables

            its a HashMap we are talking about. So how big could that be, especially if only the page flow scope of active task flows is stored

            2) complete hierarchy of pages

            However told you what you heard is new to JSF and doesn't understand how view states are handled. View state is handled by JSf, not the controller and the state is only kept for a few views (configurable)

            3) Is it right?


            1 person found this helpful
            • 3. Re: ADF taskflow performance
              Hi Frank, Timo

              Thank you for your input.

              I was also thinking on similar lines but let me wear a black hat and try to think all negatives about task-flow

              1) Generally we have 10 task-flows on a page. If each flow is maintaining 10 variables. It means 10 hashmap with 10 variables. Now if 1000 users try to access this application it means (10000 hashmap objects and each with 10 variables). Point is with every new user number of hashmap instances will be multiplied.

              2) We can also register beans in pageflow scope. Now if we bind UI component on such beans, then pageflow scope will not remain light weight. (I know its not good practice to bind component on pageflow beans as ui components are not serializable and they can not be passivated but still if we want to save state of ui components across the page.)

              3) If by mistake we make taskflow to use new datacontrol instance. Now AM instance will be associated with task flow and AM could be memory consuming.
              (I used the word 'by mistake' here because this setting should be derived from functional requirement. If functionality requires it that way, without taskflow also we will end up with 2 AM or 1 AM with two different vo instances. But yes if we set it wrongly by mistake it could be sever impact of memory consumption)

              I can't think of any. If you know any downside of taskflow please share.

              • 4. Re: ADF taskflow performance
                Shay Shmeltzer-Oracle
                One thing to think about is - what is your alternative? Assuming that you won't be using taskflows (or ADF) how would you manage the saving of information for the 10 flows and thousands of users? Do you think your alternative solution would be better? Why?

                Also as far as binding things to the wrong scope - bad programming can be done with any tool/framework - again not using taskflows won't solve the issue of having bad developers.

                Doing performance monitoring and tuning as part of your development will solve it though :-)
                • 5. Re: ADF taskflow performance
                  I am always curious if ADF performance would improve IF


                  resolved during compile time....