So far, we have developed applications applying innovative algorithms to generate separate portions from a huge piece and used them to create very independent blocks of code to be run in multiple threads. We achieved a great performance improvement and a better UI feedback while avoiding classic concurrency problems. However, we have been working with algorithms running just once. How can we have performance improvements achieved while running the split jobs many times, and in different situations?
C# safe code (managed code) uses a service that automatically reclaims unused memory. It is known as the system garbage collector. This way, programmers do not have to worry about freeing resources used by the different objects and data types—making the developer's life easier. However, when we split jobs into many concurrent threads, and we do that repeatedly, many times over, the garbage could create some trouble and degrade our applications' performance.
Working...