本文介绍了如何最小化垃圾收集的长度的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 在C#.NET中,我需要一个能够顺利运行的应用程序。我有很多串行计算需要在短时间内连续执行,所以我不介意GC做它的工作和我甚至可以采取更频繁的收集但我需要什么最小化是每个 GC集合的长度。 我希望(如果可能的话)最大1毫秒的线程暂停活动每次由于GC。 在.NET中实现这一目标的最佳方法是什么?我知道.NET不是技术这样的要求,但如果它能够满足我的要求,那么优化后的开发时间的节省和未来规格的灵活性是尝试它的良好动机)?解决方案 如果垃圾收集对您的应用程序来说是一个问题,那么在这种情况下您可能不应该使用.NET。众所周知,托管代码可能会有这些延迟。因此,对于像视频编辑或低延迟多轨音频这样的应用,通常会建议本机编程。 .NET可以轻松编写多种应用程序但是当需要非常低的延迟时,它不是合适的技术。 根据应用程序的不同,如果你不使用太多,你可以避免这个问题管理内存或通过在关键处理之前分配内存来优化其使用方式。 如前所述,如果需要确保系统,则无法做多少事情不会暂停超过1毫秒。据我所知,暂停可能远高于此。 也许一个解决方案就是关键代码会在自己的umnmaged线程中运行。不确定是否可能在同一个应用程序中,但应该可以使用2个与管道或共享内存或类似内容通信的应用程序。 如果不起作用,然后考虑将您的应用程序重写为本机应用程序。 In C#.NET, I need an application that will run smoothly. I have many serial chunks of computations I need to consecutively perform in short periods of time each, so I don't mind the GC doing it's job and I even can take more frequent collections but what I need to minimize is the length of each GC collection.I would like (if possible) to have 1 milli max pause of thread activity due to the GC each time.what is the best way to acheive this in .NET (I know that .NET it not the technology for such demands but if it will meet my demands when optimized the save of development hours and flexibility for future specs is good incentive to try it out)? 解决方案 这篇关于如何最小化垃圾收集的长度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!
10-25 01:27