没有记录Mono GC max-heap-size。在生产中使用是否安全?

时间:2013-10-14 14:45:06

标签: c# mono garbage-collection

我需要设置Mono使用的内存的上限。

根据blogs,可以使用参数max-heap-size来限制内存使用量。 根据实验和according to the code,它确实做了我想要的。

但是,此选项isn't documented

因此:在生产中依赖这个选项是否安全(或者它有缺点,我没有看到,例如:不保证在未来的Mono版本中仍然可用)?

2 个答案:

答案 0 :(得分:6)

记录在案,这是获取文档的一种方法:export无效MONO_GC_PARAMS,开始mono

export MONO_GC_PARAMS=xxx
mono sample.exe

并获得帮助:

Warning: In environment variable `MONO_GC_PARAMS': Unknown option `xxx`. - Ignoring.

MONO_GC_PARAMS must be a comma-delimited list of one or more of the following:
  max-heap-size=N (where N is an integer, possibly with a k, m or a g suffix)
  soft-heap-limit=n (where N is an integer, possibly with a k, m or a g suffix)
  nursery-size=N (where N is an integer, possibly with a k, m or a g suffix)
  major=COLLECTOR (where COLLECTOR is `marksweep', `marksweep-conc', `marksweep-par', 'marksweep-fixed' or 'marksweep-fixed-par')
  minor=COLLECTOR (where COLLECTOR is `simple' or `split')
  wbarrier=WBARRIER (where WBARRIER is `remset' or `cardtable')
  stack-mark=MARK-METHOD (where MARK-METHOD is 'precise' or 'conservative')
  [no-]cementing
  evacuation-threshold=P (where P is a percentage, an integer in 0-100)
  (no-)lazy-sweep
 Experimental options:
  save-target-ratio=R (where R must be between 0.10 - 2.00).
  default-allowance-ratio=R (where R must be between 1.00 - 10.00).

如您所见,列出了max-heap-size,而不是Experimental Options。所以我说这是安全的。

答案 1 :(得分:0)

记录在mono man page

  

设置堆的最大大小。大小以字节和   必须是两个人的力量。后缀k', m'和`g'可以用来   分别指定kilo-,mega-和gigabytes。限额是总和   托儿所,主要堆和大对象堆。一旦达到限制   到达应用程序时将尝试接收OutOfMemoryExceptions   分配。不是max-heap-size中设置的完整内存范围   由于内部原因,可以满足单一分配   碎片。默认情况下,禁用堆限制,GC将尝试   使用所有可用内存。