Xamarin.Android - 如何设置MONO_GC_PARAMS环境变量

时间:2017-11-28 19:18:36

标签: xamarin xamarin.forms xamarin.android

如何在Mac OSX中设置此环境变量的值?我尝试使用AndroidEnvironment的构建操作在我的Xamarin.Android项目中创建environment.txt文件,但是当我检查我的诊断构建输出时,我仍然看到:

MONO_GC_PARAMS = major=marksweep-conc

我没有设置该值 - 它必须是默认值,但我无法找到它存储的位置或如何更改它。谢谢。

1 个答案:

答案 0 :(得分:1)

这些项目需要在一行中用逗号分隔参数。即MONO_GC_PARAMS=bridge-implementation=tarjan,nursery-size=128‌​m,soft-heap-limit=51‌​2m,major=marksweep-c‌​onc

这将通过以下code

获取
if (lineToWrite.StartsWith ("MONO_GC_PARAMS=", StringComparison.Ordinal))
                        haveMonoGCParams = true;

如果在项目设置中启用了Use the concurrent garbage collector (Experimental),则应该能够设置此项目。此定义将添加到您的.csproj

<AndroidEnableSGenConcurrent>true</AndroidEnableSGenConcurrent>

这会将以下参数设置为Mono:

if (!haveMonoGCParams) {
                if (EnableSGenConcurrent)
                    environment.WriteLine ("MONO_GC_PARAMS=major=marksweep-conc");
                else
                    environment.WriteLine ("MONO_GC_PARAMS=major=marksweep");
            }

Source

但是我相信通过这种逻辑只有两种选择。 marksweepmarksweep-conc