Цитата:
Я имел ввиду случай, когда сборщик мусора заменяется ручным DISPOSE.
Если памяти достаточно, то надо использовать соответствующую реализацию Оберона. Каждой задаче -- свой инструмент. Не новый язык, а его пропорциональная реализация.
Цитата:
Дело не в кэше и не в страницах. Дело в том, что твоя прога не сможет выделить массив в 100Mb, при доступных 3Gb, если в этих 3Gb нет свободного участка [addr, addr + 100Mb]. Потому что у тебя адреса в проге 32-битные. И не важно сколько при этом у тебя доступно физической/виртуальной памяти в твоей 64-битной ОС.
Прога сможет выделить 100 МБ, если они есть. Но никакой прямой связи между адресацией виртуальной памяти и окнах в памяти нет. Этим занимается операционная система.
Цитата:
> сборщик вызывается только при очередном выделении памяти по NEW (или SYSTEM.NEW).
Теоретически обработчик прерывания тоже может выделять память.
И, кстати, не только NEW. Загрузка модуля и установление необходимых ссылок на него -- это тоже выделение памяти.
Цитата:
Мне кажется никто так и непонял зачем тебе на самом деле этот ADDR нужен... Какие хэш таблицы? Чего там лежать будет? Произвольные объекты, которые потом надо лукапить по адресу? Почему по адресу, а не по какому-нибудь более прикладному свойству?
А вот это правильно. Я тоже не пониманию в чём такая крайняя нужда)) Про ADR в Обероне -- надо забыть, если речь не идёт о драйверах, бутсекторе и т.п.