Diagram with a large number of blocks loaded slow

I need to display a diagram with a large number of blocks (about 700). Diagram loading takes about 20 seconds on computer with i5-2500 win 7 64 bit and GeForce 8600GTS. This is unacceptable lot.
If I simplify template then the rate increases to 5 seconds, but this way is not suitable for us. Is there any method to speed up loading that I missed (maybe some kind of <span id=“result_” =“short_text” lang=“en”><span =“hps”>virtualization)?

If almost all of the time is going into building complex nodes, that time is something over which we have no control. So I think you are right that the only way to improve performance is to avoid building so many complex nodes.

One way, as you suggest, is virtualization. Have you looked at the Virtualizing sample? What kind of diagram layout do you use, if any?

Another way is to use simple node templates and switch to your complex templates only upon demand. This could happen automatically when the user zooms in (see the EntityRelationship sample). Or it could happen when the user selects a node. Or when the user clicks on a button.

Thank you for answer.

I added a virtualization to our project. With some modification because we used the base DiagramLayout. Another thing, the code in the Virtualizing sample does not support a grouping. I added the additional code in the FilterNodeForData()

        if (data.IsSubGraph)
            var scriptModel = (ITemplateScriptEditorModel) model;
            var memberNodesForGroup = scriptModel.GetMemberNodesForGroup(data);
            foreach (var nblock in memberNodesForGroup)
                if (Intersects(ViewportBounds, ComputeNodeBounds(nblock))) return true;

It works but when the group command is executed, the group template is not shown because the group node does not have member nodes at this time. And I have to call the UpdateViewport() directly.

I think the original Virtualizing sample was able to support groups:
Performance Considerations

The new one in v1.3, though, has support for VirtualizingTreeLayout, which is probably more important than support for groups for most people.