User Tag List

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

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

    3 10.71%
  • Нет

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

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

Древовидный режим

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

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

    По умолчанию

    Цитата Сообщение от Vitamin
    ну вот и посчитай потери на "копирование блоков туда-сюда" если приложение будет юзать всего килобайт памяти в локальной куче
    Да здравствует сравнение технических характеристик в наиболее благоприятных условиях.
    Цитата Сообщение от Vitamin
    и ответь пожалуйста подробнее на мои вопросы по реализации требований твоим методом (несколько постов назад)
    ОК.
    Предположим, что размер указателя будет 16 бит. Используется модель, в которой указатель - это хэндл блока памяти на куче. Таким образом, максимум 64K блоков на куче на всю систему.

    Будет системный вызов РАЗЫМЕНОВАТЬ УКАЗАТЕЛЬ, в который передаётся указатель, результат - устанавливается нужная страница и возвращается адрес блока внутри неё. Теперь блок можно адресовать напрямую. Кроме того, имеет смысл сделать вызов КОПИРОВАНИЕ из блока, указываемого одним указателем, в блок указываемый другим указателем того же типа. Это копирование может происходить из одной страницы в другую. Это нужно, чтобы сделать операции копирования явными.
    Цитата Сообщение от Vitamin
    -как ты собираешься бороться со страничностью памяти
    Видимо, имеется ввиду внутренняя фрагментация. Разумеется, с этим можно бороться, если разделять блоки по разным страницам, а при разыменовании склеивать в непрерывный блок. Однако, здесь понадобится "прозрачное" копирование, к которому я скептически отношусь. Поэтому - пока никак не собираюсь бороться. Буду рекомендовать делать размеры блоков "как можно более кратными степени двойки".
    Цитата Сообщение от Vitamin
    -каким образом обеспечить хотя бы примитивную защиту от доступа одного процесса к памяти другого
    Всё равно бесполезное занятие. Лучше даже и не пробовать. Неплохое решение - использование сильно типизированного языка высокого уровня.
    Цитата Сообщение от Vitamin
    -как обеспечить общую память с возможностью copy-on-write
    Общую память - очень просто: одна программа даёт второй программе указатель, который тут же можно использовать по назначению. Если неизвестно, какая программа завершится раньше, а какая позже - тут и развернётся сборщик мусора во всей красе.
    COW для блоков памяти на куче? Забавно.
    Но также вполне возможно. Конечно же понадобятся вызовы вроде "разыменовать для записи", "разыменовать для чтения", "разыменовать для чтения\записи" и т. п.

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

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

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

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

Ваши права

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