Root / Assembly / ARCCore / Class / PExact<EnumType>
|Description||Very MemoryConsumption efficient alternative to PRich.|
Has some limitations in the sense that you can only store an exact number of properties (assumed to come from one specific PropertyKeyEnum), and only use PK as key.
Values are stored 'directly', that is, without packing inside a PValue<T>. (in other words, values are unpacked as they are received (by call to -GetV-), and packed again (by PackObjectForStorageInEntityObject) before being sent.
If PValueEmpty is received from outside, it is treated as 'not-existing' (stored internally as null)
Use this class as basis for your 'entity' classes when you know exact what you want to store in them and when you do not need to store any meta-data like Cid, Created.
The only overhead of this class compared to a 'traditional' C# class (with ordinary properties) should be the overhead for Storage array (24 extra bytes).
See also MemoryConsumption.
|Interfaces||ARCCore.IP; -System.Collections.Generic.IEnumerable`1[ARCCore.IKIP]-; -System.Collections.IEnumerable-|
|LongDescription||See ARCDoc for example use (Orange class)|
Some examples of advantages of this class compared to -PRich:
Example 1: A small sample of about 832 000 PropertyStreamLine with data for about 16 000 customers (three properties, first name, last name and email) and 43 000 payments (about 21 properties each).
42% reduction in RAM usage and a 16% reduction in CPU time for initial reading of all data into memory.
Dataset occupied 43 MB on disk and 59 MB in RAM.
NOTE: Metadata like Cid and Created is only
NOTE: allowed as long as corresponding enum-members for the specific generic type parameter EnumType exists.
Generated 2020-10-13 11:11:04.562 UTC