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

10
Коли корисно змусити прибирати сміття?
Тож я читав питання про примушення сміттєзбірника C # бігати, де майже кожна відповідь однакова: ти можеш це зробити, але не повинен - ​​за винятком деяких дуже рідкісних випадків . На жаль, там ніхто не деталізується, що таке випадки. Чи можете ви сказати мені, за яким сценарієм насправді є доброю …

6
Стек і купа пам'яті на Java
Як я розумію, у Java стек-пам'ять містить примітиви та виклики методів, а пам'ять купи використовується для зберігання об'єктів. Припустимо, у мене є клас class A { int a ; String b; //getters and setters } Де буде зберігатися примітив aу класі A? Чому взагалі існує пам'ять купи? Чому ми не …

6
Яким чином відбувається вивезення сміття мовами, які складаються на місцях?
Після перегляду декількох відповідей на переповнення стека, зрозуміло, що деякі натільно складені мови мають збір сміття . Але мені незрозуміло, як саме це працювало б. Я розумію, як збирання сміття могло працювати з інтерпретованою мовою. Збірник сміття просто працює поруч з інтерпретатором і видаляє невикористані та недоступні об'єкти із пам'яті …

11
Чому об’єкти Java не видаляються відразу після того, як на них більше не посилаються?
У Java, як тільки на об'єкт більше немає посилань, він стає придатним для видалення, але JVM вирішує, коли об'єкт буде фактично видалений. Щоб використовувати термінологію Objective-C, всі посилання на Java по суті є "сильними". Однак у Objective-C, якщо на об'єкт більше немає чітких посилань, об'єкт видаляється негайно. Чому це не …

11
Навіщо збирання сміття, якщо там є розумні покажчики
У наші дні стільки мов збирають сміття. Він навіть доступний для C ++ третіми сторонами. Але C ++ має RAII та розумні покажчики. Тож який сенс використовувати сміття? Це робить щось зайве? І в інших мовах, таких як C #, якщо всі посилання розглядаються як розумні покажчики (не відхиляючи RAII …

16
Чому такі мови, як C і C ++, не збирають сміття, а Java? [зачинено]
Ну, я знаю, що є такі речі, як malloc / free для C та new / using-a-destructor для управління пам’яттю в C ++, але мені було цікаво, чому не існує «нових оновлень» цих мов, які дозволяють користувачу є можливість вручну керувати пам’яттю або система робить це автоматично (вивезення сміття)? Якесь …

6
Коли використовувати слабкі посилання в .Net?
Я особисто не стикався з ситуацією, коли мені потрібно було використовувати тип WeakReference в .Net, але, мабуть, вважається, що його слід використовувати в кешах. Д-р Джон Харроп висловив дуже хорошу справу проти використання WeakReferences у кешах у своїй відповіді на це запитання. Я також часто чув, як розробники AS3 розмовляють …

5
Чому розумні покажчики так популярні?
Як я бачу, розумні покажчики широко використовуються у багатьох реальних проектах C ++. Хоча якісь розумні покажчики, очевидно, вигідні для підтримки RAII та передачі права власності, також існує тенденція використання спільних покажчиків за замовчуванням як способу "вивезення сміття" , так що програмісту не доведеться думати про те, щоб розподілити стільки …

8
Що відбувається зі сміттям у C ++?
У Java є автоматичний GC, який час від часу зупиняє світ, але піклується про сміття на купі. Тепер додатки C / C ++ не мають цих STW заморожувань, а також використання їх пам'яті не зростає нескінченно. Як досягається така поведінка? Як опікуються мертвими предметами?

7
Чому метод завершення включений в Java?
Відповідно до цієї посади , ми ніколи не повинні покладатися на метод завершення, який потрібно викликати. То чому ж Java взагалі включила його в мову програмування? Здається жахливим рішенням включити в будь-яку мову програмування функцію, яку можна викликати.

8
Недоліки керованої оперативної пам'яті
Мені дуже подобається управління пам’яттю на основі сфери (SBMM) або RAII , як це частіше (заплутано?) Посилається на спільноту C ++. Наскільки я знаю, крім C ++ (і C), немає жодної іншої мови, яка використовується сьогодні, що робить SBMM / RAII їх основним механізмом управління пам'яттю, а натомість вони вважають …

8
Невже переважаючий Object.finalize () дійсно поганий?
Основні два аргументи проти переосмислення Object.finalize(): Ви не можете вирішити, коли він називається. Він може взагалі не зателефонувати. Якщо я правильно це розумію, я не думаю, що це досить вагомі причини, щоб Object.finalize()так сильно ненавидіти . Саме реалізація VM і GC визначають, коли саме потрібний час для розміщення об'єкта, а …


3
За винятком сміттєзбірника, що ще робить Java мовою програмування в режимі реального часу
За винятком сміттєзбірника, які ще функції у Java роблять його непридатним для програмування в режимі реального часу? У мережі завжди, коли обговорюється Java vs C ++ щодо програмування в режимі реального часу, завжди йдеться про сміттєзбірник. Є ще щось?

8
Чому збирання сміття лише підмітає купу?
По суті, я до цього часу дізнався, що збирання сміття назавжди видаляє будь-яку структуру даних, на яку зараз не вказано. Але це лише перевіряє купу на такі умови. Чому він також не перевіряє розділ даних (глобалі, константи тощо) та стек? Що це за купа, що це єдине, що ми хочемо, …

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