我有一项服务,我会在很长一段时间内查询一次,我想“简化”或提高其内存分配的效率。
大多数时候它只是坐着等待,偶尔它会收到一个需要分配大量 内存的请求,并对其进行一些处理。我事先不知道类型或结构 - 这取决于请求,并且变化很大。
现在,大处理请求被一些喋喋不休(其他请求)排除,这可能需要几秒钟。
我想要做的是,当喋喋不休(较小的请求)开始时,对 .Net 框架说:转到 Windows,并为自己获取几 GB 的内存,这样当我询问时它会更快可用,当我完成了,对 .Net 说:我目前没有使用的所有东西,你可以还给我,因为我暂时不需要它。
在我们说话时,我开始进行分析……但我怀疑这将是可以改进的问题的一部分。
我会尽力澄清情况。
我有一个位于服务器上的服务,95% 的时间什么都不做。偶尔它会收到一个请求来做一些主要是内存密集型的处理。
我提前一点时间知道这一切都会发生。
我想做的只是提示 GC“很快将需要大量内存”,然后“暂时不需要任何特别的东西”
好的。我已经完成了分析,并决定我不在乎这个。分配确实需要一些时间(几到几十毫秒),但与其他处理相比微不足道......
关于发布部分,它最终会发生,并且不会真正干扰服务器的其余部分......