Performance for Web dynpro is very important, because it cover more than normal ABAP program, it's also related to Wgate, the HTTP request/response cycle, so the whole design is critical.
First we still have to follow the performance rule for normal ABAP program when we receive the data from database, but we have to add something more based on web side, please keep in mind the basic rule:
1. lower memory consumption, better performance.
2. using MVC, split the component up if too large, using if_wd_component_usage=>delete_component to delete all web dynpro component instances as soon as no longer needed
3. Using dynamic navigation or dynamic component usages only if it is absolutely necessary.
4. Set the lifetime of a view to when visible, if this view is displayed not too much.
5. Keep context as small as possible, Create context only required by UI binding, use assistance class or other ABAP OO class as data exchange. Use singleton node, do not use any dynamic attributes if_wd_context_node_info->add_attribute, bad context design cause huge runtime memory.
6. Don't raise exception in supply function, these cause runtime dump.
7. Do not use container scrolling (scrollingMode<>none), create application screens that fits the standard browser, avoid deep nesting of containers, groups and tabstrips, use the dynamic UI element programming only if it's necessary
Read more...
http://wiki.sdn.sap.com/wiki/display/Community/High+performance+of+Web+dynpro+ABAP