Infragistics4.Win.UltraWinGrid.v17.2, Version=17.2.20172.2006
I'm still fighting with slow UltraGrig performance. I've found that the UltraNumericEditor constructor has a bad performance, see the picture below. Is there a fix or work around for this issue, please? Thanks.
Hello and thank you for contacting Infragistics. What triggers the issue? I will require some more info, a sample and a profiling session.
Please clarify how you are using/embedding the UltraNumericEditor in the UltraGrid.
const int iterations = 100000; GC.Collect(); var stopwatch = Stopwatch.StartNew(); for (var i = 0; i < iterations; i++) { var e = new UltraNumericEditor() { NumericType = NumericType.Decimal }; } stopwatch.Stop(); var editorMs = stopwatch.ElapsedMilliseconds; var editorTicks = stopwatch.ElapsedTicks; stopwatch.Reset(); GC.Collect(); stopwatch.Start(); for (var i = 0; i < iterations; i++) { var o = new object(); } stopwatch.Stop(); Debug.WriteLine($"e: {editorMs}/{editorTicks}, o: {stopwatch.ElapsedMilliseconds}/{stopwatch.ElapsedTicks}");
e: 4137/41372856, o: 0/5911
Update: Seems, the performance degradation depends on the number of instances created.
const int iterations = 100000; var list = new List<UltraNumericEditor>(); for (var i = 0; i < 30000; i++) { var ee = new UltraNumericEditor() { NumericType = NumericType.Decimal }; list.Add(ee); } GC.Collect(); var stopwatch = Stopwatch.StartNew(); for (var i = 0; i < iterations; i++) { var ee = new UltraNumericEditor() { NumericType = NumericType.Decimal }; } stopwatch.Stop(); var editorMs = stopwatch.ElapsedMilliseconds; var editorTicks = stopwatch.ElapsedTicks; stopwatch.Reset(); GC.Collect(); stopwatch.Start(); for (var i = 0; i < iterations; i++) { var o = new object(); } stopwatch.Stop(); Debug.WriteLine($"e: {editorMs}/{editorTicks}, o: {stopwatch.ElapsedMilliseconds}/{stopwatch.ElapsedTicks}");
e: 30170/301703785, o: 0/3215