have also the equivalent of in-line templates. See
If your performance problem is only in your initial page rendering then the problem is the big number of complex nodes processed by knockout. In this case the only solution is some kind of virtualization and/or paging, In other terms you should avoid the rendering
of nodes that are not visible. This may be achieved through paging, and in case of nested loops by using a kind of treeview where children are rendered just when the father is opened the first time.
If the performance problem persists also when you make some change(adding-deleting objects, or changing some observable) then maybe you have some unwanted dependency that force the re-rendering of the whole strucure also when a small change occurs. This situation
often happens when you use a template selection function. In fact, in this case when the property used to select the template changes all nested nodes are re-rendered too....In this case you may consider the use of peek() to remove the unwanted dependencies.