Xamarin.Android Файл AndroidEnvironment не применяется для изменения реализации GC Bridge

Я добавил env.conf файл со следующим содержанием

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

И настроил для него действие сборки как AndroidEnvironment, Но в выводе приложения все еще говорится, что для GC используется реализация Old bridge:

07-09 09: 43: 34.042 D / Mono (32084): GC_OLD_BRIDGE num-объекты 228 num_hash_entries 2049 sccs размер 1277 init 0.00ms df1 7.35ms sort 2.87ms dfs2 2.96ms setup-cb 0,40ms free-data 3,11ms ссылки 2593 / 2593/1284/16 DFS проходит 4870/3870

07-09 09: 43: 34.042 D / Mono (32084): GC_MAJOR: (переполнение LOS) пауза 60,33 мс, всего 61,31 мс, мост 45,65 мс, основной 6864 К / 6608 К, потеря 510 К / 12016 К

Я использую Xamarin 3.11.666.0, Xamarin.Android 5.1.4.16, который кажется самым последним

Как я могу применить новую реализацию моста для приложения?

1 ответ

Решение

Объедините их в одну строку:

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

По какой-то причине ни один из параметров не применяется, когда вы объявляете его построчно.

Причина в том, что вы присваиваете эти значения одной и той же переменной, поэтому только последнее из них будет иметь эффект.

Вы можете сделать это построчно следующим образом:

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
Другие вопросы по тегам