Чи можливі витоки пам'яті в сучасних ОС?


0

Чи можливі витоки пам'яті на сучасних ОС, коли програма виходить з системи? З мого розуміння, сучасні операційні системи добре управляють пам'яттю і очистять пам'ять після завершення роботи програми. Це означає, що всякий раз, коли є витік пам'яті, я можу просто вийти з програми, що порушує, щоб виправити проблему. Це правда?

Так само можливі витоки пам'яті на GPU? Я припускаю, що оскільки ОС управляє тільки пам'яттю процесора, графічні процесори набагато більш схильні до витоків пам'яті через аварії. Чи є подібний механізм на драйверах, які контролюють, до якої пам'яті належить пам'ять на GPU? Або єдиним рішенням для витоків пам'яті GPU є повний перезапуск?

Змінити: Примітка: Я прошу, коли програма виходить. Я знаю, що витоки пам'яті можливі для будь-якої мови під час виконання програми. Те, що я запитую, це те, що відбувається, коли додаток виходить, очікувано або несподівано через виняток, як для процесора, так і для пам'яті GPU.


Витоки пам'яті залежать від доступу / використання вашої оперативної пам'яті. Вони зазвичай відбуваються, коли програма не оптимізована для повторного використання пам'яті, яку було виділено або буде повторно виділено. Щоб зробити його простим: деякі програми не скидають надлишковий кеш, і тому програма їсть все більше і більше пам'яті, викликаючи витоки пам'яті.
t a b designworks

Хоча загальна відповідь була б так, я вважаю, що це питання переважно базується на думках.
LPChip

2
Зверніть увагу, що витік пам'яті перестає існувати, коли програма виходить. Витоки пам'яті є внутрішніми для програми і відбуваються лише під час запуску програми. Після виходу з програми вся пам'ять, що використовується програмою, відновлюється, навіть якщо програма керувала цією пам'яттю погано. Витоки пам'яті - це дуже специфічні явища, які відчувають програми, що використовують структуру купи для зберігання даних у абстрактних типах даних. це не стосується більш загальних втрат доступної пам'яті, або навіть додатків, які використовують велику кількість пам'яті або збільшують їх споживання з плином часу.
Frank Thomas

@FrankTomas Дякуємо за відповідь. Це було те, що їм шукали. Чи можна розширити логіку до пам'яті GPU? те ж саме стосується пам'яті GPU?
DarkDestry

Відповіді:


0

Так, вони все ще можливі. Вони виникають, коли програміст розподіляє пам'ять і не звільняє цю пам'ять, коли вони закінчуються з нею.


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