2015-03-21 4 views
1

Я добавил дополнительную информацию о докторе Ракетке неделю назад, теперь я хочу уменьшить ее до той же суммы, что и раньше. Поэтому я ограничиваю его до 128 МБ. Но это не имеет никакого эффекта ... Оно всегда потребляет гораздо больше, чем 128 МБ ...Ограничение памяти доктора Ракетки

Это действительно проблема, потому что это вызывает перегрев моего компьютера. Кто-нибудь знает, как я могу ограничить Dr. Racket, чтобы он не превышал 128 МБ?

Вот скриншот проблемы:

enter image description here

ответ

3

Существует различие между памятью, используемой программой, и памятью, используемой в общей сложности DrRacket. Когда я запускаю DrRacket и перед входом или запуском какой-либо программы, я вижу, что DrRacket использует 250 МБ. В окне окна взаимодействия я ограничил память на 128 МБ, так что это означает, что эта конкретная программа не может идти на этих границах, но есть и другие возможности DrRacket, которые используют на вашей машине больше памяти, чем моя.

Я зашел в настройки и удалил некоторые функции, которые я не использую (например, Algiol60). При перезапуске после этого я использовал меньше 50 Мбайт памяти, что действительно подтверждает, что память используется DrRacket, а не программами.

Для конкретной сложной программы, я предполагаю, что расширение фона может использовать много памяти. Возможно, вы также можете отключить это, чтобы увидеть, не исчезла ли текущая используемая память.

О тепла

Как Óscar упоминалось использование памяти имеет мало общего с жарой до тех пор, пока вы не услышите Своп используется (использование тяжелого диска). Тепло имеет отношение к использованию ЦП. При выполнении расчетов ОС будет предоставлять доступные ресурсы и, возможно, увеличить частоту процессора, что увеличивает тепло.

Если вы создаете многопоточное приложение, в котором есть циклы, ожидающие выполнения задач, убедитесь, что вы не создаете активный цикл. Сон может снизить активность, и, возможно, у Racket есть лучшие подходы (никогда не делали вредоносные приложения в Racket)

Если вы что-то вычисляете, то увеличение ЦП является естественным. Это так, что вы получите ответ раньше. Настройки компьютера можно изменить в сторону времени автономной работы. Проверьте как ОС, так и BIOS. (Это не относится к проблеме с ракеткой)

+0

Я проверил мои предпочтения, и я полагаю, что использование высокой памяти происходит из-за того, что все инструменты запускаются, когда запускается Dr Racket. Я отключил «Algol60», «Macro Stepper» (никогда не использовал его), «как разрабатывать программы» и т. Д., Но я не знаю, что они делают. Я искал документацию, но они не объясняют, что делает каждый инструмент. Я отключу как можно больше и действительно попытаюсь включить необходимые вещи, такие как «Проверить синтаксис» и так далее. – HyperZ

1

Я не думаю, что дополнительная память потребляется является причиной для вашего компьютера перегрева. Скорее всего, это потому, что некоторые функции потребляют процессор. Вместо этого попробуйте оптимизировать код.

Фактически, ограничивая доступную память, вы можете в конечном итоге вызывать больше disk paging, что замедляет работу и потенциально потребляет больше CPU ... и вызывает больше перегрева.

+0

Это правда, но когда я работал над проектом неделю назад только с 128 МБ, все шло хорошо, но потом я случайно увеличил ограничение памяти на гораздо больше. Впоследствии я заметил, что при работе над тем же проектом в Dr Racket мой компьютер перегревается (у меня не было этой проблемы, прежде чем увеличивать ограничение памяти). Поэтому я уменьшил ограничение памяти до 128 МБ, но это не помогло. Итак, если сначала с 128 МБ и тем же проектом он не перегрелся, он не должен перегреваться сейчас? – HyperZ

+0

Это не вызовет больше дискового использования. Когда вы достигли предела, запущенная программа остановлена. – Sylwester

2

Память, указанная в строке состояния Dr Racket, не отображается.

Эксперимент:

  1. Выбрать ракетки | Ограничьте память и укажите 8 МБ (минимум).
  2. Выбрать Файл | Новая вкладка.
  3. В области «Взаимодействия» выделяют 8 МБ памяти. Например, введите (define x (make-bytes (* 8 1024 1024))). (Я рекомендую назначить результат переменной, например, потому что я сомневаюсь, что Dr Racket напечатает 8 Мбайт байтов.)

В результате я получаю:

Welcome to DrRacket, version 6.1.1.6--2014-12-21(aabe9d7/a) [3m]. 
Language: racket [custom]; memory limit: 8 MB. 
> (define x (make-bytes (* 8 1024 1024))) 
out of memory 
> 

Предполагая, что вы получите тот же результат, есть какая-то другая причина ваш компьютер работает под горячее.

Смежные вопросы