Как я могу увеличить.NET размера "кучи"? [дубликат]

Вам нужно вручную указать каждое поле, поскольку Graph API v2.4:

Декларативные поля Чтобы повысить производительность в мобильных сетях, Nodes и Edges в версии 2.4 требуют, чтобы вы явно запрашивали поля, которые вам нужны для ваших запросов GET. Например, GET /v2.4/me/feed больше не включает в себя предпочтения и комментарии по умолчанию, но GET /v2.4/me/feed?fields=comments-likes вернет данные. Для получения дополнительной информации см. Документы о том, как запрашивать определенные поля.

blockquote>

Например:

FB.api('/me', 'get', { access_token: token, fields: 'id,name,gender' }, function(response) {
    console.log(response);
});

20
задан GEOCHET 18 March 2009 в 16:51
поделиться

2 ответа

Этот поток похож точно, что Вы желаете.

, Если я читаю сообщение MVP правильно в 32-разрядной системе, Вы ограничены размером "кучи" на 1.5 ГБ независимо от того, что, которых Вы получаете все, как только процесс запускается. В 64-разрядной системе Ваша "куча" чрезвычайно неограниченна, я не думаю, любой основной сервер или ПК могут содержать столько физической памяти, сколько 64-разрядный процесс может обратиться.

13
ответ дан 30 November 2019 в 01:11
поделиться

Насколько я понял, нет простого способа контролировать размер кучи приложения .Net с помощью CLR.

Ссылка в ответе @Dave только наполовину отвечает на вопрос. Когда я исследовал ту же проблему, я получил ответ: «Куча увеличивается, чтобы использовать всю доступную память», как будто это единственная причина, по которой вы хотите контролировать максимальный размер кучи.

В серверных средах (обычно Java) вы не хотите, чтобы плохо работающее приложение занимало память за счет других размещенных приложений. Простое решение - ограничить объем памяти, который приложение может использовать для своей кучи. Это достигается с помощью аргумента Java -Xmx, поэтому вы можете гарантировать, что приложение не будет использовать больше запланированного, например -Xmx256M. Поскольку выделение памяти в куче во время инициализации может замедлить запуск приложений, Java использует аргумент -Xms, чтобы позволить приложениям, которые создают большое количество объектов во время инициализации, начинать с большого блока кучи вместо того, чтобы JVM постоянно изменяла размер кучи по ходу работы.

CLR .Net не имеет такой возможности. Я подозреваю, что это потому, что .Net CLR не является виртуальной машиной. CLR - это API (довольно всеобъемлющий, я мог бы добавить), который служит адаптером для собственных .dll, что приравнивается к подходу, который больше похож на исполняемый файл, когда дело касается управления памятью.

Я задал этот вопрос о разработке SharePoint и слышал, что можно было бы контролировать размер кучи с помощью модулей IIS, называемых веб-приложениями, с помощью которых вы можете указать IIS ограничить память данного веб-приложения. Интересно, связано ли это с тем, что IIS имеет настроенные процедуры, которые заменяют / переопределяют new () / malloc () / etc и, таким образом, могут предоставлять этот тип управления клиентским приложениям. Это означает, что автономным приложениям .Net не повезло, если вы не хотите написать собственный диспетчер памяти на C ++ и создать интерфейс для .Net

. Суть в том, что программа CLR использует любые политики управления памятью / контролирует процесс хостинга. ставит на место. Вот почему вам необходимо контролировать использование памяти веб-страницы C # из IIS, потому что IIS фактически является хост-процессом, который предоставляет среду для выполнения кода CLR.

Net

Суть в том, что программа CLR использует любые политики / средства управления памятью, которые устанавливает процесс хостинга. Вот почему вам необходимо контролировать использование памяти веб-страницы C # из IIS, потому что IIS фактически является хост-процессом, который предоставляет среду для выполнения кода CLR.

Net

Суть в том, что программа CLR использует любые политики / средства управления памятью, которые устанавливает процесс хостинга. Вот почему вам необходимо контролировать использование памяти веб-страницы C # из IIS, потому что IIS фактически является хост-процессом, который предоставляет среду для выполнения кода CLR.

7
ответ дан 30 November 2019 в 01:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: