Re[7]: Как-бы продолжение...
От: McSeem2 США http://www.antigrain.com
Дата: 10.01.05 14:15
Оценка: :)
Здравствуйте, AndrewVK, Вы писали:

AVK>4 или 8 килобайт. И я что то не слышал чтобы кто то считал его слишком большим.


Это очень большой размер. Представь что будет, если понадобится миллион мелких независимых объектов, например, для дерева XML-DOM.

MS>>На микроуровне (контейнеры и проч.) — это все-таки слишком дорого.


AVK>Что дорого? А какой размер страницы нужен? 1к, 4 байта, 1 байт, 1 бит?


Наверное, 1 байт.

AVK>А, главное, зачем?


Можно вообразить и помечтать, что память представлет собой файловую систему, типа NTFS...

AVK>Современные менеджеры памяти умеют выделять сразу большой кусок под мелкие выделения и особых проблем с размером страницы нет. Более того — даже если у нас будет эффективная реализация микространиц, все равно в какой то момент у тебя машина ляжет из-за огромных размеров таблицы маппинга.


Ляжет. Но думаю, что это — вопрос времени. После dot-net нам предложат super-dot-net, где вместо существующей сейчас сборки мусора будет еще и дефрагментация. Шутка!

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


Можно эту мысль по-подробнее? Она весьма интересна.

MS>> Да, было бы конечно круто иметь такую возможность — не надо никаких реаллокаций, просто говоришь — "добавь-ка мне еще памяти". Но не факт, что это было бы лучше. Ключевой момент в автоматической сборке мусора — это именно SQUEEZE, которая четко работает за линейное время.


AVK>Ключевым я бы его называть не стал. Просто один из бенефитов GC. Ключевой момент это гарантия освобождения ненужной памяти.


Именно он и является ключевым. Можно и на C++ сделать модель, гарантирующую освобождение ненужной памяти, с подсчетом ссылок, например. Но много кайфа от этого не будет, наоборот — породит серьезные скрытые проблемы, хоть с той же фрагментацией. Возможность перемещать объекты (при автоматическом отслеживании data integrity) — является фундаментальной во всей схеме управления пямятью в dot-net. И только при наличии такой возможности можно себе позволить роскошь автоматического удаления ненужных объектов. Если не делать squeeze — все очень быстро встанет раком.

AVK>В любом случае даже при современных 2Г адресного пространства проблема его фрагментации стоит перед относительно небольшим процентом приложений, а с переходом на 64 бита такой проблемы просто не станет.


Память больше не ресурс?
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.