我们可以确定操作的足够内存的可用性吗?如果是的话那怎么可以? 感谢确定操作的足够内存的可用性
7
A
回答
5
不,您绝对不能这样做,因为您事先不知道该操作将消耗多少内存。如果无论如何,您确切知道操作会消耗多少内存,您可以查询可用的系统内存并进行近似,但不要依赖它。请记住,垃圾收集是非常不确定的,并可能在任何时候混淆你的近似值。您可以随时获得OutOfMemoryException。
所以专注于编写质量代码而不是这个。
4
2
如果您有最低要求并使用Banang的代码,您可以检查是否不够。
但是说你检查内存,下一行开始你的操作,在这两行之间的时间运行另一个进程开始吃内存。然后你将冒险得到一个内存不足的例外。
2
一个可能制定出可以使用MemoryFailPoint Class和检查InsufficientMemoryException
2
是的,可以。
假设您知道操作需要100 MB。
System.Runtime.MemoryFailPoint memFailPoint = null;
int memUsageInMB = 100;
bool isEnoughMemory = false;
try
{
// Check for available memory.
memFailPoint = new MemoryFailPoint(memUsageInMB);
isEnoughMemory = true;
}
catch (InsufficientMemoryException e)
{
// MemoryFailPoint threw an exception.
Console.WriteLine("Expected InsufficientMemoryException thrown. Message: " + e.Message);
}
if (isEnoughMemory)
{
// Perform the operation.
}
else
{
// Show error message.
}
相关问题
- 1. VBA错误:操作没有足够的内存
- 2. 的realloc/HeapReAlloc的失败eventhough足够的内存可用
- 3. com.fortify.sca.analyzer.a:有没有足够的可用内存来完成分析
- 4. Doxywizard错误:没有足够的内存可用于此任务
- 5. 内存不足异常?没有足够的虚拟地址范围:没有足够的物理内存
- 6. C不能分配足够的内存
- 7. 低内存有足够的空RAM
- 8. 没有足够的存储空间来完成此操作
- 9. 如果足够的活跃,可以boost :: mutex锁定一个操作系统吗?
- 10. 没有足够的内存来完成这个动作
- 11. Postgres尽管拥有足够的可用内存,但仍会发生内存不足错误
- 12. ipad - 内存警告级1,2,但仍有足够的内存
- 13. 即使我有足够的可用内存,如何阻止弱引用丢失
- 14. PyCUDA内核定时误差足够
- 15. Matlab:没有足够的GPU内存用于分类
- 16. 没有足够的空间在内存中缓存rdd警告
- 17. SCRIPT14:没有足够的存储空间可用于完成此操作,IE上的ckeditor gem错误
- 18. 没有足够的存储是可用来处理此命令
- 19. Microsoft Bot Framework没有足够的权限来执行此操作
- 20. Microsoft Graph API - 没有足够的权限来完成操作
- 21. 图形API - 足够的权限来完成操作
- 22. 图API API assignLicense:没有足够的权限来完成操作
- 23. getMemberGroups“没有足够的权限来完成操作”
- 24. AzureAD multiteenant app - “Authorization_RequestDenied”:“没有足够的权限来完成操作
- 25. 操作系统如何确定虚拟内存的大小
- 26. C#非常大的字符串操作(内存不足异常)
- 27. Mmap系统调用操作能够访问内存位置
- 28. 新的没有分配足够的内存?
- 29. 检查是否有足够的内存分配我的变量
- 30. CREATE ASSEMBLY失败验证:没有足够的存储空间可用于完成此操作
+1好问题。这将有助于区分物理内存和虚拟内存...... – 2010-10-03 11:21:53