|
|
1
3
如果可以确认内存没有用完,可以尝试设置
如果垃圾收集对您的用例来说仍然太具有破坏性,并且您使用的是.NET 4.6或更高版本,则可以尝试调用 GC.TryStartNoGCRegion . 此方法将尝试保留足够的内存以分配到指定的数量,并阻止GC,直到您用完保留为止。如果您的内存使用相当一致,那么您可能可以通过传递足够大的值来适应应用程序的使用,但不能保证调用会成功。 如果你使用的是旧版本的.NET,它不支持这两种功能,那么你可能走运了。如果这是一个GUI应用程序(从事件处理程序判断,它看起来像),那么您对分配没有足够的控制。 另一个需要考虑的问题是,对于不能容忍中断的应用程序来说,C并不是真正合适的工具。如果您熟悉编写本机代码,则可以在非托管线程上执行时间敏感的工作;据我所知,这是唯一可靠的解决方案,尤其是当您的应用程序将在最终用户计算机上运行时。 |
|
2
2
你需要对你的垃圾收集器更友好,不要分配太多。
简而言之,如果你的
如果您有数组,不要不断地创建它们,而是重用它们(等等)。使用重量更轻的结构,使用允许您减少分配的工具,例如
另外,打电话可能会有好处
|
|
|
spill62 · Xamarin/MAUI USB控制转换器 2 年前 |
|
|
Olivia · 如何在USB设备之间指定USB大容量存储? 2 年前 |
|
|
euraad · 与听众一起从USB读取-Boost Asio C++ 2 年前 |