View Issue Details

IDProjectCategoryView StatusLast Update
0002548NoesisGUIC# SDKpublic2023-03-29 17:38
Reportersfernandez Assigned Tosfernandez  
PrioritynormalSeverityfeatureReproducibilityhave not tried
Status assignedResolutionopen 
Product Version3.2.0 
Summary0002548: Memory management improvements
DescriptionIn order to reduce memory allocations there are a few things we can improve in our C# implementation and API.

* String UTF8 -> Unicode conversion:
 -- use pre-allocated buffer whenever possible to avoid creating new memory on each conversion
 -- study the possibility to cache conversion for some or all strings

* Event args:
 -- can't use structs because inheritance won't be possible then
 -- study the possibility to pool the allocation of this objects
 -- https://www.infoworld.com/article/3221392/how-to-use-the-object-pool-design-pattern-in-c.html
 -- https://learn.microsoft.com/en-us/dotnet/api/system.buffers.arraypool-1?view=net-7.0

* DependencyPropertyChangedEventArgs OldValue/NewValue:
* DependencyObject GetValue/SetValue:
 -- avoid boxing by providing a <T> version
 -- should be used in all our interactivity classes

* IValueConverter Box/Unbox:
 -- study the possibility of using Unsafe.Unbox<T> + pool of boxed values
 -- https://learn.microsoft.com/en-us/dotnet/api/system.runtime.compilerservices.unsafe.unbox?view=net-5.0
TagsNo tags attached.
PlatformAny

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2023-03-29 17:11 sfernandez New Issue
2023-03-29 17:11 sfernandez Assigned To => sfernandez
2023-03-29 17:11 sfernandez Status new => assigned
2023-03-29 17:38 jsantos Severity minor => feature