在物理内存访问错误方面是否有任何通用的算法来检查设备的RAM内存?我认为最简单的方法是迭代整个内存并写入,读取和比较每个字节。也许有更好的方法吗? 如何在.NET CF中分配整个可访问内存? 我正在使用新设计的基于Windows CE的设备,我想确保在正常工作期间不会出现随机内存错误。
答案 0 :(得分:2)
在内存使用或占用时你无法做到这一点,使用托管语言进行操作几乎不可行(.NET CLR会在内存中移动你的对象,你无法控制的过程,你可以' t固定项目的所有对象)。使用.NET的另一个缺点是它隐藏了你的内存,并且它的许多数据类型都需要连续的内存块。
内存错误还有另一个问题:根据内存驱动程序,内存芯片和/或主板的硬件和功能,甚至都不会出现错误,因为内存芯片会隐藏系统中的错误位。
但这有一个简单的解决方法。有很多内存错误检查程序,Windows也可以为你做这件事:它会在操作系统启动之前重新启动并在启动时检查你的内存。大多数A品牌的板载内存检查实用程序可能会相当深入(即,所有DELL计算机都在系统工具中使用它。
尝试自己做这个复杂的过程将非常困难,因为操作系统会隐藏物理内存位置,并且如第一段中所述:您将无法访问大部分内存,即使您没有写一个驱动程序,只是因为它正在使用中。