The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Выпуск компилятора языка D 2.085"
Отправлено Ordu, 04-Мрт-19 18:52 
> Я боюсь, что 99% ваших программ не нагружают GC и до половины.

Половина -- это в каком смысле? Это когда 50% доставшихся ей тактов процессора программа тратит на сборку мусора? Да элементарно, вот смотри, я сейчас пишу программу, чтобы натягивать звуковую дорожку с одного видеофайла на другой, при необходимости растягивая эту дорожку или сжимая, потому что один из файлов имеет покорёженную ось времени. Для этого я декодирую первый файл, перебирая кадры, находя там ключевые, потом второй файл. Потом сопоставляю две последовательности кадров, строю отображение оси времени второго файла на ось времени первого, ну и дальше режу звуковую дорожку на кусочки и каждый кусочек немного растягиваю или сжимаю. Я не знаю, сработает это или нет, но это не суть, в данном случае.

Так вот, давай представим себе, что я декодируя видеофайл выделяю под каждый новый кадр новый кусок памяти. Некоторые куски я сохраняю, но большинство я выкидываю обратно в кучу. Понятно, что можно было бы не выкидывать, а использовать повторно, но, во-первых, задача-то в том, чтобы убить программу сборщиком мусора, а не реализовать максимально эффективно, а во-вторых, при ручном вызове free на ненужные кадры, это будет иметь несущественное влияние на производительность, на фоне декодирования кадров и сравнения последовательных кадров на предмет различий.
В случае же GC, доступное место в куче будет уходить в ноль постоянно. И сборщик мусора будет постоянно искать мусор. И это может быть не очень страшно было бы с generational сборщиком мусора, такой сборщик мусора по-крайней мере гарантировал бы мне постоянство задержек, как бы много кадров я не обработал. Но консервативный будет при каждом запуске сканировать каждый мой сохранённый кадр, ища в rgb данных указатели. Как думаешь, сколько мне надо набрать кадров в оперативке, чтобы программа 50% времени проводила бы за сборкой мусора?

> Зачем тогда гнать эту пургу про производительность?? Сначала напишите что-то тяжёлое,
> потом уже жалуйтесь на *реальную* проблему.

Речь не о "реальной" проблеме, а о причинах фейла D. Разные проекты и особенно начинания часто фейлятся не из-за "реальных" проблем, а из-за какой-нибудь совершеннейшей фигни. Скажем сам факт того, что в D есть сборщик мусора, является очень серьёзной преградой для перетягивания C и C++ программистов в D. И не потому, что сборщик мусора не позволит этим программистам решать их задачи, а потому что у них голова не приемлет идеи. "Реальная" ли это причина? Я не знаю как ты отвечаешь на этот вопрос, я отвечаю положительно: я уверен, что она реально повлияла на успехи D в привлечении программистов.

Как гугл со своим Go боролся с этой проблемой? Он лил программистам в уши маркетингового буллшита: https://blog.golang.org/go15gc
Но начал он с того, что действительно реализовал конкурентный, трёхцветный, mark'n'sweep для Go. Тоже позорный gc, но всё ж не консервативный, и при этом они реально добились снижения задержки. Но суть в том, что Google сначала реализовал, а потом включил генераторы буллшита. D не льёт в уши буллшита и не реализовывает хороший сборщик мусора. Безнадёжно.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру