User Tag List

Результаты опроса: Сборка мусора на Speccy?

Голосовавшие
28. Вы ещё не участвовали в этом опросе
  • Да

    3 10.71%
  • Нет

    25 89.29%
Показано с 1 по 10 из 94

Тема: Сборка мусора

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    21.01.2005
    Адрес
    ссср
    Сообщений
    468
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    14.01.2005
    Адрес
    N.Novgorod
    Сообщений
    803
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от random
    когда программа самоликвидировалась, необходимо освободить всю принадлежащую ей память
    это безусловно нужно, но довольно далеко от темы данной ветки

  4. #3

    Регистрация
    23.03.2005
    Адрес
    г. Чернигов, Украина
    Сообщений
    477
    Спасибо Благодарностей отдано 
    15
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А как насчет скорости ?

    Ну, на спеке так не развернешься, как пишут... В любом случае кодер знает сколько памяти сожрет его прога. Значит и в запросах можно оперировать реальными числами. Т.е.
    1. говоришь, что надо тебе 3х16кб страницы.
    2. Ось говорит: на и вешает на эти 3 страницы флажок занято. при этом дает тебе номерок
    3. говоришь "у меня всё"
    и даешь ей номерок и код "у меня всё"
    4. ось говорит ОК и снимает флажки занято.

    dll

    принцип тот же, нужен тебе dll:

    1. берешь список процессов (программ/модулей.. как угодно) оси ищешь название/код (версию) dll (а как еще ?)
    2.нету такого. Ага. говришь оси нужна еще скжаем страница под эту dll.
    3. ось выдает страницу.
    4. грузишь dll туда но в список процессов вносишь ее код/ имя.
    сам можешь закрываться, dll останется, но!

    на таких ресурсах вешать 1 байт - колво пользующихся. Т.е. 1 прога юзает dll -1 ,3 юзают - 3. никто не юзает - 0 но из списка убирать ресурс только тогда, когда его страницу кому-то отдали.

    А вот теперь и сбощик мусора: нет его как такового. Он просто должен в первую очередь выдавать память из под приложений, а если ее не хватает, то из под неиспольз. dll. И обновлять список приложений, ресурсов (процессов) чтоб не юзались ресурсы.

    Такой вот простой менеджер памяти с уборкой мусора. Ну а теперь как реализовать реально хотя бы такое... И сколько оно будет жрать ресурсов само по себе ?

  5. #4

    Регистрация
    23.03.2005
    Адрес
    г. Чернигов, Украина
    Сообщений
    477
    Спасибо Благодарностей отдано 
    15
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Vitamin! Ты тут? А ну говори, что нибудь по этому поводу! Ты ж этим занимался

  6. #5

    Регистрация
    18.02.2005
    Адрес
    Набережные Челны
    Сообщений
    1,574
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Talking Я понял!

    Чтобы схема заработала надо лобзиком дрова напилить!
    Биты рулят лучше байтов, байты рулят шустрее!
    View, Звук, Цвет

  7. #6

    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,286
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    39 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от GriV
    Чтобы схема заработала надо лобзиком дрова напилить!
    сказал как в лужу пёрднул %)

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

    для смотрящих в сторону C# и Java, где сабж реализован, замечу, что данные языки являются производными от базового- С/С++, где есть функции как выделения, так и освобождения памяти.

  8. #7

    Регистрация
    27.01.2005
    Сообщений
    924
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    193
    Поблагодарили
    154 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В теме "Менеджер памяти для многозадачной ОС" я постил спецификацию на менеджер памяти... Ее, походу, так никто и не прочитал - там есть многие вещи (копирование страниц, разыменование указателей). Короче многие пункты этой спецификации пересекаются с обсуждаемыми тут вопросами.
    Если не затруднит - всетаки прочитайте, обсудим.

  9. #8

    Регистрация
    18.02.2005
    Адрес
    Набережные Челны
    Сообщений
    1,574
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от random
    Не стоит смеяться. Это очень полезный вопрос. В связи с перекладыванием функций выделения памяти на ось, туда же падает освобождение памяти. Во всяком случае, когда программа самоликвидировалась, необходимо освободить всю принадлежащую ей память.
    Здесь имеет место другое: подразумевается что указанный ЯВУ работает поверх нормальной системы.
    А тогда сам вопрос отпадает.
    С другой стороны, если считать что в этом смысле ЯВУ заменяет собой систему, то получается ещё лучше: вариации на тему "хотел написать оболочку, написал ОСь"
    Биты рулят лучше байтов, байты рулят шустрее!
    View, Звук, Цвет

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •