Xamarin.Android AndroidEnvironment文件未应用于更改GC Bridge实现

问题描述 投票:3回答:2

我添加了一个名为env.conf的文件,其中包含以下内容

MONO_GC_PARAMS=bridge-implementation=tarjan
MONO_GC_PARAMS=nursery-size=128m
MONO_GC_PARAMS=soft-heap-limit=512m

到我的Android项目并将其构建操作配置为AndroidEnvironment。不幸的是,应用程序的输出声明旧桥实现用于垃圾收集:

07-09 09:43:34.042 D / Mono(32084):GC_OLD_BRIDGE num-objects 228 num_hash_entries 2049 sccs size 1277 init 0.00ms df1 7.35ms sort 2.87ms dfs2 2.96ms setup-cb 0.40ms free-data 3.11ms links 2593 / 2593/1284/16 dfs通过4870/3870

07-09 09:43:34.042 D / Mono(32084):GC_MAJOR :( LOS溢出)暂停60.33ms,总计61.31ms,桥45.65ms主要6864K / 6608K洛杉矶510K / 12016K

我正在使用Xamarin 3.11.666.0和Xamarin.Android 5.1.4.16,这似乎是目前这些软件包的最新版本。

如何为应用程序应用新的桥接器实现?

android xamarin mono xamarin.android
2个回答
5
投票

将它们组合成一行:

MONO_GC_PARAMS=bridge-implementation=tarjan,nursery-size=128m,soft-heap-limit=512m

由于某些原因,当您逐行声明时,不会应用任何参数。


2
投票

原因是您将这些值分配给同一个变量,因此只有最后一个值才有效。

你可以这样逐行:

MONO_GC_PARAMS=bridge-implementation=tarjan
MONO_GC_PARAMS=$MONO_GC_PARAMS,nursery-size=128m
MONO_GC_PARAMS=$MONO_GC_PARAMS,soft-heap-limit=512m
© www.soinside.com 2019 - 2024. All rights reserved.