我有一个程序可以处理大量数据,并且可以缓存大部分数据,以便在内存中使用后续记录.我缓存的越多,它的工作速度就越快.但如果我缓存太多,繁荣,重新开始,这需要更长的时间!
在异常发生后,我没有成功地尝试做任何事情 - 我无法获得足够的内存来做任何事情.
此外,我尝试分配一个巨大的对象,然后立即取消分配,结果不一致.也许我做错了什么?
无论如何,我所坚持的只是在缓存对象的#上设置一个硬编码限制,从经验来看,它似乎足够低.还有更好的想法?谢谢.
以下代码似乎正在做我想要的:
Loop
Dim memFailPoint As MemoryFailPoint = Nothing
Try
memFailPoint = New MemoryFailPoint( mysize) ''// size of MB of several objects I'm about to add to cache
memFailPoint.Dispose()
Catch ex As InsufficientMemoryException
''// dump the oldest items here
End Try
''// do work
next loop.
Run Code Online (Sandbox Code Playgroud)
我需要测试它是否在这种安排下放慢速度,但我可以看到任务管理器中的黄线看起来像一个非常健康的锯齿模式,具有一致的顶部!
您可以在分配之前使用MemoryFailPoint检查可用内存.
| 归档时间: |
|
| 查看次数: |
432 次 |
| 最近记录: |