# UDT Templates and Binding Poor Performance

**URL:** <https://forum.inductiveautomation.com/t/udt-templates-and-binding-poor-performance/11629>\
**Category:** General Discussion\
**Created:** [May 5, 2016, 7:06pm UTC](https://forum.inductiveautomation.com/t/udt-templates-and-binding-poor-performance/11629 "2016-05-05T19:06:48Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![dberry](https://avatars.discourse-cdn.com/v4/letter/d/b9e5f3/32.png) [@dberry](https://forum.inductiveautomation.com/u/dberry)\
**Post date:** [May 5, 2016, 7:06pm UTC](https://forum.inductiveautomation.com/t/udt-templates-and-binding-poor-performance/11629/1 "2016-05-05T19:06:48Z")

</div>

I developed a project based off of the IU tutorials for creating a UDT Template found here:  
[inductiveuniversity.com/video/t … /templates](https://inductiveuniversity.com/video/template-udt-parameter?r=/course/templates)

Using Ignition 7.8.2

The template parameter was set for drop-target so I could easily create instances on my display. I started with only two instances on my display, each bound to a separate UDT-type tag. The UDT structure has a few nested UDTs and the memory size for the entire structure is about 36Bytes. Each template instance passes the UDT as a parameter to subsequent popups for additional status and control (2-3 popups).

I tested my screens in the designer “Run” mode and experienced very poor performance; slow to respond, and even hanging the designer to the point the process needed to be killed.  
IA Technical support informed me that UDT binding has significant overhead and that I should use indirect tag binding instead. I changed all bindings to indirect/expression and the performance issues were no longer a problem. I am a bit baffled by this, especially given that I had only two instances of the UDT, and the UDT is relatively small (36 bytes).

Some new information…  
I removed a nested template that was also bound to a UDT and performance is good.

Scenario A (poor performance):  
Template A (UDT, drop-target) is placed on Main Window  
mouse-press on Template A opens Popup Window A  
Popup Window A contains Template B  
Template B contains an instance of Template A (same as on Main Window, but configured to disable any additional popup on mouse press)  
Template A and B are both bound to the same UDT but Template B is bound to a custom property of Popup Window A, while Template A is bound to a custom property of Template B.

Scenario B (good performance)  
Template A (UDT, drop-target) is placed on Main Window  
mouse-press on Template A opens Popup Window A  
Popup Window A contains Template B and an instance of Template A (same as on Main Window, but configured to disable any additional popup on mouse press)  
Template A and B are both bound to the same UDT (the same custom property of Popup Window A)

Thanks  
Dan
