Thought I would also respond for specific things to check
performance-wise as relates to PW.
1) We have had a few performance issues when using embedded tasks before,
Patrice spent some time correcting some of these issues (the code in the
list page that knows 'when' to pull new data and the code in
ERD2WSwitchComponent that knows 'when' to create a new d2wContext). If in
the WOEvents you see a push or pull from either of these components, then we
should revisit this issue.
2) Resolving rules itself should be fast, I have wanted to add Event
recorders (like you suggest) for a while. If this looks to be slow what we
could do is convert all of the Hashtables to HashMaps. HashMaps are much
faster than Hashtables because Hashtables are synchronized and HashMaps are
not (we can deal with providing a thread safety at a later point). This is
also true of the D2WContext (I filed a feature request that it would be nice
to have a method that could be overridden on D2W for producing the context)
it never needs to use a Hashtable it should always be using a HashMap.
3) Would be interesting to know if you are firing any rules at all or if
everything is cached.
4) How many objects are in the lists? We ran into an issue once where we had
a massive list that was taking a while to sort all of the objects (plus they
were getting sorted three times before the rendering was done).
If I think of more, I'll let you know.