Оберон-клуб «ВЄДАsoft»

Твердыня модульных языков
Текущее время: 17 июн 2025, 00:12

Часовой пояс: UTC + 2 часа




Начать новую тему Ответить на тему  [ Сообщений: 36 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Re: ADR и сборщик мусора
СообщениеДобавлено: 23 янв 2018, 15:35 
Не в сети
Администратор
Аватара пользователя

Сообщения: 86
vlad писал(а):
Так значит, все-таки, оберон - язык под задачу?

Оберон -- один на всех. Мы за ценой не постоим. А вот реализации Оберона -- своя под каждую задачу. Читай внимательней.

vlad писал(а):

Ох. Вот смотри, на пальцах. Для 32-битной реализации:
1. NEW 4 миллиарда объектов размером 1 байт. Адреса всех объектов различаются на 1.
2. Убрали ссылку на каждый 40-й объект. GC собрал 100 миллионов объектов. При этом в памяти у тебя 100 миллионов свободных дырок размером в 1 байт и отстоящих друг от другая ровно на 40 байт.
3. Теперь делаем NEW 1 массив на 100Mb. Недвигающий GC говорит "упс". Двигающий GC собрал все дырки в один непрерывный сегмент 100Mb и смог выделить такой массив.


1. Оберон не может в 32-битных задачах выделить 4 млрд 1 байтовых значений. В 32-битных задачах (например, в Windows) доступно всего 2 млрд. байт. К тому же, объект имеет адрес, тип, размер, номер и др. скрытые поля. В лучшем случае 500 млн. Если речь идёт о серверном варианте, то 100 МБ вообще не проблема))
2. Если речь идёт о массиве -- то так не выйдет. Если о цепочке -- то ты никогда не узнаешь в каком порядке они расположены. Система связей может оказаться такой, что чёрт ногу сломит и GC с поколениями или уплотняющий могут затормозить программу до невозможности. На практике, освобождённые блоки помечаются как свободные и дальше используются заново. Это нормальная практика.
3. В реальных задачах точно никто не создаёт и не освобождает массивы в таких объёмах. Либо крайне редко. В самом начал насоздавал, и повторно пользуешь.

Самый лучший оптимизатор памяти и опция компилятора -- мозг программиста.

В целом, я ничего не имею против изощрённых GC, но сть такое понятие как репорт(декларация) языка и реализация. Всё же -- это сильно разные вещи.

_________________
Действия профессионала предсказуемы. Но в мире полно любителей!


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: ADR и сборщик мусора
СообщениеДобавлено: 23 янв 2018, 16:36 
Не в сети

Сообщения: 108
prospero78su писал(а):
1. Оберон не может в 32-битных задачах выделить 4 млрд 1 байтовых значений.


Ну ё-моё... Я думал мы тут все серьезные люди. Ну ладно...


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: ADR и сборщик мусора
СообщениеДобавлено: 23 янв 2018, 17:37 
Не в сети

Сообщения: 350
Да, такой пример плох, но он решается методически: иметь в запасе памяти на сумму максимального выделения по каждому размеру объекта.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: ADR и сборщик мусора
СообщениеДобавлено: 23 янв 2018, 18:56 
Не в сети
Администратор
Аватара пользователя

Сообщения: 86
Цитата:
Ну ё-моё... Я думал мы тут все серьезные люди. Ну ладно...

Олег хоть из Днепропетровской области (на каждом углу лектронику делали), а Комдив житель столицы Киевской Руси)) Я радиоинженер с троечным дипломом, работаю энергетиком в колхозе им. Серпом по этим самым.
Не надо преувеличивать знания собеседника и его возможности))

_________________
Действия профессионала предсказуемы. Но в мире полно любителей!


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: ADR и сборщик мусора
СообщениеДобавлено: 24 янв 2018, 08:53 
Не в сети

Сообщения: 35
vlad писал(а):
Так значит, все-таки, оберон - язык под задачу?

Я думаю, что под задачу скорее не язык, а реализация. Для программирования на обероне нужно две вещи:

1) Прочитать описание реализации, которую предполагается использовать и научиться с ней работать.

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

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


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: ADR и сборщик мусора
СообщениеДобавлено: 24 янв 2018, 12:03 
Не в сети
Администратор
Аватара пользователя

Сообщения: 86
prosepro78su писал(а):
Если памяти достаточно, то надо использовать соответствующую реализацию Оберона. Каждой задаче -- свой инструмент. Не новый язык, а его пропорциональная реализация.


akron1 писал(а):
Я думаю, что под задачу скорее не язык, а реализация.

Именно так, Антон. Как видно по моей цитате сверху -- я именно так изначально и написал.
Влад периодически читает так, как он привык читать))

Цитата:
Кроме того, из-за отсутствия стандарта на язык, каждый автор видит его немного по-своему. С другой стороны, нет никаких проблем, чтобы запомнить как сам язык, так и расширения/ограничения конкретной реализации.

Я думаю пойти по пути именно расширений языка. Но, всё-таки не ядро ломать, а использовать какие-то сторонние платформо-зависимые библиотеки.

_________________
Действия профессионала предсказуемы. Но в мире полно любителей!


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: ADR и сборщик мусора
СообщениеДобавлено: 24 янв 2018, 21:38 
Не в сети

Сообщения: 108
И до какого предела кошерно расширять реализацию? Пока джава не получится? :)
Вот, например, мой любимый oberonjs - это реализация оберона под задачу или новый язык на основе оберона?


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: ADR и сборщик мусора
СообщениеДобавлено: 29 янв 2018, 12:49 
Не в сети
Администратор
Аватара пользователя

Сообщения: 86
Расширить -- не значит напихать говна.

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

Оберон на жабаскрипте -- это я за. Но я против прикручивания к Оберону тех способов, какими жабаскрипт порождает новые объекты. Это уже не Оберон. Если ну очень надо -- это в либы.

_________________
Действия профессионала предсказуемы. Но в мире полно любителей!


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: ADR и сборщик мусора
СообщениеДобавлено: 29 янв 2018, 23:57 
Не в сети

Сообщения: 108
prospero78su писал(а):
Расширить -- не значит напихать говна.


Это в высшей степени субъективно :)


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: ADR и сборщик мусора
СообщениеДобавлено: 17 фев 2018, 23:27 
Не в сети

Сообщения: 350
А где-нибудь описан формат объектов BBCB? Это я к вопросу о консервативности. И сразу ещё один вопрос. Сейчас integer 32-битный. Если вдруг он станет 31-битным, а 32-й бит, равный нулю, будет тегом типа integer, станет ли это катастрофой?


Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 36 ]  На страницу Пред.  1, 2, 3, 4  След.

Часовой пояс: UTC + 2 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23


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

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
© VEDAsoft Oberon Club