UDT memory usage

Hello All,

Do you know how much memory is consumed by the different tag types in a UDT?
I am most interested how much memory a single Boolean consumes as part of a UDT in Ignition. I tried to find out in the documentation but I did not found it.

I want to create a “super UDT” with around 150 tags but I want to be sure that is not impacting the memory usage.

It’s not possible to quantify the memory usage of a single tag, even of a known datatype, because a single tag can contain many alarms, attached associated data, historian settings, etc.

However, that’s a bit of a moot point. 150 tags is not a large UDT; a common tactic I’ve seen on live systems is ‘meta-UDTs’ containing meta-UDTs, such that the top level UDT technically contains tens of thousands of tags. We significantly optimized memory usage and performance for UDTs in Ignition 8 to account for such use cases. You won’t even notice a UDT with 150 tags unless you had literally thousands of instances.

2 Likes

Thanks for your response Paul,

That info make sense, if I have an UDT without anything else than a Boolean tag, Is there a way to quantify the memory in that case?

You could theoretically do so with a memory profiler (Java Flight Recorder, JProfiler, etc), by capturing the heap before and after creating the tag in question.
I wouldn’t bother, though. Outside of the two ends of the bell curve (edge of network/Ignition Onboard devices; enterprise systems with millions of tags) it’s almost always simpler and cheaper to throw additional hardware at the problem than to worry about individual details like memory per tag.

Which is not to say that planning out your system architecture isn’t a good idea - it’s a good idea to get a rough idea of how many tags you may need, how they will be organized, what will collect history and at what rate, etc - but I wouldn’t really worry about how much memory each individual tag consumes unless your forecasting says you might have hundreds of thousands of tags.

1 Like