28
голосов
4ответов
1926 просмотров

Загадка сборщика мусора .NET

В моей работе у нас была проблема с OutOfMemoryExceptions.Я написал простой фрагмент кода, чтобы имитировать какое-то поведение, и в итоге обнаружил следующую загадку.Посмотрите на этот простой код, который взрывается, когда заканчивается память. class Program { private static void Main()...

1
голосов
5ответов
2147 просмотров

Как сделать объекты Flex / ActionScript 3 подходящими для сборки мусора?

Как сделать объекты Flex / ActionScript 3 пригодными для сборки мусора?Каковы правила большого пальца? ... извиняюсь, если на этот вопрос был дан ответ в другом месте.

9
голосов
4ответов
1168 просмотров

Является ли ссылка на делегата ссылкой на объект (для предотвращения сборки мусора)?

У меня возникли проблемы с формулировкой этого вопроса, поэтому позвольте мне объяснить на примере: Предположим, у меня есть какой-то интерфейс. Для простоты я скажу, что это интерфейс IRunnable, и он предоставляет единственный метод, Run. (Это нереально; это только пример.) Предположим, у...

3
голосов
3ответов
629 просмотров

Когда наблюдаемая закономерность вызывает проблемы с GC

В языке с поддержкой GC, когда наблюдатель подписывается на события субъекта, фактически субъект получил ссылку наблюдателя. Итак, прежде чем удалить наблюдателя, он должен сначала отказаться от подписки.В противном случае, поскольку на него по-прежнему ссылается тема, он никогда не будет соб...

0
голосов
5ответов
1735 просмотров

Переопределение Object.Finalize () и GC.Collect ()

Кажется, я не могу понять поведение GC.Collect () при наличии класса, переопределяющего Object.Finalize ().Это мой базовый код: namespace test { class Foo { ~Foo() { Console.WriteLine("Inside Foo.Finalize()"); } } static class Program { static void Main() { { Foo bar = new...

30
голосов
3ответов
17325 просмотров

Что нам следует использовать: сборку мусора на «рабочей станции» или «на сервере»?

У меня есть большое многопоточное приложение C #, работающее на многоядерном 4-стороннем сервере. В настоящее время мы используем сборку мусора в "серверном режиме". Однако тестирование показало, что сборка мусора в режиме рабочей станции выполняется быстрее. MSDN сообщает : Приложения с у...

3
голосов
2ответов
889 просмотров

Каков наилучший способ вывода отладки для сборщика мусора lua?

Мне нужен объект состояния игры в lua (не C ++ или привязанный к C ++) для управления освещением, камерами, объектами и событиями из моего движка C ++ (объекты lua - это отдельные сущности от C ++, довольномного стандартных таблиц lua).Меня беспокоит, как будет действовать сборщик мусора при у...

15
голосов
7ответов
4156 просмотров

Может ли Sun JVM без проблем обрабатывать гигантские размеры кучи и как?

Я слышал, как несколько человек утверждали, что нельзя увеличить размер кучи JVM. Я слышал заявления о том, что практический предел составляет 4 гигабайта (я слышал, как это сказал консультант IBM), 10 гигабайт, 32 гигабайта и так далее ... Я просто не могу поверить ни в одно из этих чисел и зад...

3
голосов
4ответов
1626 просмотров

C # - Освободите собственные ресурсы

Я относительно новичок в .net.Когда я пытался понять концепцию сборки мусора (от «CLR через C #»), я узнал, насколько силен подход к сборке мусора.Но потом, когда я прочитал, я понял, что выделенные собственные ресурсы должны быть освобождены.Способы: i) Создание нашего типа производным от типа...

4
голосов
9ответов
8880 просмотров

Почему сборка мусора так важна?

Я не очень хорошо понимаю сборку мусора, тогда я хочу знать, почему это так важно для языка и разработчика?

14
голосов
8ответов
4962 просмотров

Автоматическая ли сборка мусора в стандартном C ++?

Насколько я понимаю, в стандартном C ++ всякий раз, когда вы используете оператор new, вы также должны в какой-то момент использовать оператор удаления, чтобы предотвратить утечку памяти.Это потому, что в C ++ нет сборки мусора.В .NET сборка мусора выполняется автоматически, поэтому не нужно бес...

64
голосов
2ответов
38858 просмотров

Вызывает ли сборщик мусора Dispose ()?

Я думал, что сборщик мусора в конечном итоге вызовет Dispose, если ваша программа этого не сделает, но вы должны вызвать Dispose () в своей программе, чтобы сделать очистку детерминированной. Однако из моей небольшой тестовой программы я вообще не вижу вызова Dispose .... public class Test...

13
голосов
7ответов
6129 просмотров

Почему в Аде нет сборщика мусора?

Я знаю, что сборщик мусора не был популярен в те дни, когда разрабатывалась Ada, и для основного случая использования встроенного программирования он все еще не лучший выбор. Но учитывая, что Ada является языком программирования общего назначения, почему не было частичного и необязательного (...

6
голосов
8ответов
629 просмотров

сомнения относительно управления памятью в .net

Я узнаю об управлении памятью в C # из книги "Professional C #" Наличие сборщика мусора означает, что вы обычно не будете беспокоиться об объектах, которые вам больше не нужны; вы просто разрешите все ссылки к тем объектам, которые выходят за рамки и разрешите сборщику мусора с...

4
голосов
4ответов
9687 просмотров

sed regex для нежадной замены?

Мне известен еще один вопрос , который очень похож, но дляпо какой-то причине у меня все еще возникают проблемы. У меня есть журнал сборщика мусора, из которого я пытаюсь вырезать раздел Tenured, заключенный в []. 63.544: [GC 63.544: [DefNew: 575K->63K(576K), 0.0017902 secs]63.546: [...

4
голосов
6ответов
2495 просмотров

Сборщик мусора в системе реального времени

Я новичок в C # / Java и планирую создать прототип для системы мягкого реального времени. Если бы я написал приложение C # / Java точно так же, как я это делаю в C ++, с точки зрения управления памятью, то есть я явно «удаляю» объекты, которые больше не использую, тогда на приложение по-прежн...

0
голосов
5ответов
483 просмотров

Java: сборка мусора

У меня ошибка нехватки памяти.У меня большой диапазон входов (2 ^ 40), который слишком велик, чтобы держать его за один раз.Каждый вход - String[]. Вместо этого я подумал, что буду запускать свою тестовую программу для каждого ввода, записывать результаты в файл, а затем отбрасывать ввод.leng...

2
голосов
1ответов
742 просмотров

Видимость переменной экземпляра Java (ThreadLocal)

В классе ReentrantReadWriteLock естьследующий любопытный комментарий: transient ThreadLocalHoldCounter readHolds; Sync() { readHolds = new ThreadLocalHoldCounter(); setState(getState()); // ensures visibility of readHolds } что означает "обеспечивает видимость"?Причина, по кото...

0
голосов
6ответов
1916 просмотров

вектор и сборщик мусора

Я запускаю программу на Java, которая использует множество векторов.Боюсь, что из-за их использования сборщик мусора не работает. У меня есть много тем, которые: vec.addAll(<collection>); и другие темы, которые: vec.remove(0); У меня есть распечатки, на которых время от вр...

0
голосов
4ответов
2239 просмотров

Методы и сборка мусора

Я столкнулся с этим вопросом в интервью: Объект, созданный внутри метода имеет право на сборку мусора после завершения метода? Правильный ли ответ - да?

3
голосов
3ответов
1505 просмотров

Немного асинхронного кода сокета - помощь со сборкой мусора?

Я думаю, что этот вопрос касается моего понимания сборки мусора и ссылок на переменные .Но я напишу вам код. // Обратите внимание, не используйте этот код для асинхронных сокетов, просто чтобы выделить мой вопрос // SocketTransport // This is a simple wrapper class that is used as the '...

10
голосов
3ответов
7401 просмотров

Использование Image.FromFile не освобождает дескриптор файла

Я объединяю несколько файлов TIFF с несколькими изображениями в один файл TIFF с несколькими изображениями, и у меня возникла проблема с удалением исходных файлов TIFF, потому что класс Image продолжает удерживать их дескриптор. Я читаю изображение в формате TIFF через Image.FromFile: Bitm...

5
голосов
5ответов
3351 просмотров

LRU LinkedHashMap, который ограничивает размер в зависимости от доступной памяти

Я хочу создать LinkedHashMap, который будет ограничивать его размер в зависимости от доступной памяти (например, когда freeMemory + (maxMemory - allocatedMemory) становится ниже определенного порога).Это будет использоваться как форма кеширования, вероятно, с использованием стратегии кэширования...

17
голосов
4ответов
28570 просмотров

Ручная сборка мусора в Python

Есть ли способ вручную удалить объект, от которого сборщик мусора отказывается избавляться, даже когда я вызываю gc.collect()? Работа в Python 3.0

1
голосов
1ответов
1352 просмотров

Отладка сборки мусора Ruby

У меня проблемы с долгоживущим фоновым процессом ruby на нашем сервере, который не очищает файлы Tempfiles. Я использую hijack для внедрения в процесс и проверки вещей, используя для например, ObjectSpace.each_object(ActiveRecord::Base){|o| puts o} - оказывается, что на рассматриваемые...

5
голосов
3ответов
4764 просмотров

Ограничение размера управляемой кучи в приложении C #

Могу ли я настроить свое приложение C #, чтобы ограничить потребление памяти, скажем, 200 МБ? IOW, я не хочу ждать автоматического сборщика мусора (который, кажется, позволяет куче расти намного больше, чем это действительно необходимо для этого приложения). Я знаю, что в Java есть переключат...

1
голосов
2ответов
579 просмотров

родительско-дочернее отношение в составном объекте?

У меня есть составной объект (дерево) с отношениями родитель-потомок. Дерево может быть до n уровней (скажем, 10-12 уровней) Теперь предположим, что мне нужно удалить объект на уровне 6 в иерархии. Если я указываю его ссылку на null (оставляя дочерний объект нетронутым) в Java, то что происхо...

0
голосов
1ответов
1130 просмотров

Статический семафор передан как член класса Thread instance = bug?

В нашей кодовой базе есть несколько проектов служб Windows, которые следуют этой модели, и я просто хочу убедиться, что это не ошибка. В этой модели есть по крайней мере один статический класс «таймер», управляемый System.Timers.Timer, который извлекает из базы данных пакеты данных для обрабо...

0
голосов
2ответов
2277 просмотров

Javascript: знать, когда объект будет испорчен

есть ли способ узнать, когда объект будет удален сборщиком мусора? Мой объект (назовите его A) записывает некоторые переменные в глобальный объект-массив, поэтому, когда объект будет очищен, его собственная переменная останется в глобальном объекте-массиве, занимая память. пс.У меня много ...

5
голосов
4ответов
2392 просмотров

OutOfMemory исключение

Каковы возможные причины исключения OutofMemory? Распределение памяти должно обрабатываться сборщиком мусора. Сколько памяти выделено / доступно для обычного приложения .NET / C # В нашем приложении он находится в разных местах, например, функция Stream.ReadToEnd() и DataTable.Wri...