有没有一种便携式的方法,在各种支持的操作系统上,同时在.Net和Mono上工作,让程序告诉它正在运行的机器上有多少RAM(即物理而非虚拟内存)可用?
背景是一个需要尽可能多地使用内存的程序;它需要知道应该分配多少内存,同时避免进入交换空间(从而导致整个机器停止运转并锁死)。
没有通用的方法来做到这一点。此外,由于内存使用的复杂性,系统可能会以多种方式解释“尽可能多”。例如,系统可以通过将每个正在运行的进程移动到交换空间中来使几乎整个RAM可供您使用。
P.S. 使用交换空间并不意味着锁定整个计算机。把它看作是一种更慢的可用于使用的RAM类型。