Запитання з тегом «garbage-collection»

2
Наскільки відрізняється сміття у чистих мовах?
Чистою мовою, як Haskell, всі дані незмінні і жодна структура даних не може бути змінена жодним чином. Крім того, багато алгоритмів щодо незмінних даних та моделей функціонального програмування генерують велику кількість сміття за своєю природою (наприклад, ланцюжки mapстворення проміжних списків). Які стратегії та прийоми використовують сміттєзбірники в умовах чистоти, яку …

6
Чому команда LMAX використовувала Java та проектувала архітектуру, щоб уникнути GC будь-якою ціною?
Чому команда LMAX спроектувала диспетчер LMAX на Java, але всі їхні проекти вказують на мінімізацію використання GC? Якщо хтось не хоче запускати GC, то навіщо використовувати мову зібраного сміття? Їх оптимізація, рівень апаратних знань та думка, яку вони викладають, просто приголомшливі, але чому Java? Я не проти Java чи нічого, …

9
Які складності програмування без керування пам'яттю?
Або іншими словами, які конкретні проблеми вирішило автоматизоване вивезення сміття? Я ніколи не займався програмуванням низького рівня, тому не знаю, наскільки складним може стати звільнення ресурсів. Помилки, з якими GC звертається (принаймні, до зовнішнього спостерігача), те, що програміст, який добре знає свою мову, бібліотеки, поняття, ідіоми тощо, не робив. Але …

7
Демонстрація сміття відбувається швидше, ніж ручне управління пам’яттю
Я читав у багатьох місцях (рис, я навіть написав так собі) , що збір сміття може (теоретично) швидше , ніж ручне управління пам'яттю. Однак показати набагато складніше, ніж розповісти. Я ніколи не бачив жодного фрагмента коду, який би демонстрував цей ефект у дії. Хтось має (або знає, де я можу …

1
Коли збирач сміття ущільнює предмети в купі, чи змінює він посилання на стеку?
Це здається простим питанням, але після багато прочитаного з цього приводу я все ще не знайшов остаточної відповіді (можливо, тому, що це так просто). Моє запитання таке: коли збирач сміття ущільнює об’єкти в купі, як поновлюються посилання на ці об’єкти в стеці? Я можу придумати два можливі рішення: Пройдіть стек …

6
Як сміттєзбірник запобігає скануванню всієї пам’яті на кожен збір?
Деякі (принаймні, Mono і .NET) сміттєзбірники мають короткочасну область пам’яті, яку вони сканують часто, і вторинну область пам’яті, яку вони сканують рідше. Моно називає це розсадником. Щоб дізнатись, якими об’єктами можна утилізувати, вони сканують усі об'єкти, починаючи з коренів, стека та регістрів, і розміщують усі об'єкти, на які вже не …

4
Чи є необхідність у збиранні сміття мовою на основі стека?
Яка потреба у збиранні сміття (GC) мовою на основі стека? Такою мовою, як Forth або RPL (на калькуляторах HP ), чи є необхідність у збиранні сміття? Я б подумав, оскільки вихід вискокує з стека, що це не буде потреби. Я щось пропускаю?

3
Чи використовувати хеш-таблицю для збору сміття вирішить зупинити світову проблему розмітки та розміщення?
У алгоритмі збору сміття-компактного збору сміття вам потрібно зупинити світ при переміщенні об'єктів, оскільки опорний графік стає непослідовним, і вам доведеться замінити значення всіх посилань, що вказують на об’єкт. Але що робити, якщо у вас була хеш-таблиця з ідентифікатором об'єкта як ключовим, а вказівник як значенням, а посилання вказували б …

2
Оскільки збирання сміття не є детермінованим, чому його не використовують для безпечного генерування випадкових чисел?
Я розумію, що / dev / random є хорошим джерелом ентропії, і це те, що зазвичай використовується-- Це так само, як я читаю на GC, принаймні на Java, здається прийнятим, що демон демону сміття виконує недетерміновано . Якщо це правда, чому б ми не використали терміни збору сміття як джерело …

4
Які алгоритми стоять за низькою паузою GC?
Деякі мови, для прикладу java, ввели низьку паузу GC. Ці GC можуть виконати більшу частину роботи, не призупиняючи весь світ. Це, очевидно, є досить важкою проблемою, оскільки вона потребує аналізу пам’яті, коли потік її модифікує, в результаті чого дані, які можна використовувати на початку процесу, а не більше, коли він …

5
Шаблон підрахунку посилань для мов, керованих пам'яттю?
Java та .NET мають чудові сміттєзбірники, які керують пам’яттю для вас, та зручні схеми для швидкого звільнення зовнішніх об’єктів ( Closeable, IDisposable), але лише у тому випадку, якщо вони належать одному об’єкту. У деяких системах ресурс, можливо, потрібно буде споживати незалежно двома компонентами і вивільнятися лише тоді, коли обидва компоненти …

6
Чи повинні розробники Java знати про алгоритми збору сміття? [зачинено]
Закрито . Це питання ґрунтується на думці . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб на нього можна було відповісти фактами та цитатами, відредагувавши цю публікацію . Закрито 4 роки тому . Мене нещодавно в інтерв'ю запитали, чи знаю я про якісь алгоритми збору сміття. Я …

3
Чому мобільні платформи не підтримують покоління сміття?
І Windows Phone / Xbox, і Android не мають підтримки для збору сміття з поколіннями. Це неприємно для багатьох програмістів. Здається, це є законною інженерною причиною, але я не можу цього зрозуміти. Поточні телефони мають більше пам’яті та, ймовірно, кращі процесори, ніж настільні / ноутбуки, на яких працює NET 1.1 …

4
Чи недетермінований менеджмент ресурсів є вичерпною абстракцією?
Як я бачу, існують дві поширені форми управління ресурсами: детерміновані знищення та явні. Прикладом першого можуть бути деструктори C ++ та розумні покажчики або підрозділ DESTROY Perl, тоді як прикладом останнього може бути парадигма блоків для управління ресурсами Ruby або інтерфейс ID. Нові мови, здається, вибирають останнє, можливо, як побічний …

4
Управління пам'яттю для швидкого проходження повідомлень між потоками в C ++
Припустимо, є два потоки, які спілкуються, асинхронно надсилаючи повідомлення один одному. Кожен потік має якусь чергу повідомлень. У мене питання дуже низький: Який очікується, що це найефективніший спосіб управління пам'яттю? Я можу придумати кілька рішень: Відправник створює об'єкт через new. Дзвінки приймача delete. Об'єднання пам’яті (для повернення пам’яті назад відправника) …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.