OberonCore
https://forum.oberoncore.ru/

Джоэл Спольски о сборке мусора
https://forum.oberoncore.ru/viewtopic.php?f=6&t=2773
Страница 2 из 2

Автор:  Валерий Лаптев [ Пятница, 13 Август, 2010 00:44 ]
Заголовок сообщения:  Re: Джоэл Спольски о сборке мусора

Info21 писал(а):
Rifat писал(а):
Где-то читал, точно не помню где (возможно, что я что-то не так понял), что вроде бы в операционной системе Оберон, работа с файлами организована примерно также как и с памятью, то есть если понадобился файла, то открываешь его, беспокоиться о том, когда его закрыть не надо, а сборщик мусора сам определит что файл не нужен.
Что совершенно логично, поскольку файлы -- это тоже память. А то, что она внешняя, проявляется в дисциплине доступа.

При этом сохраняется возможность что-то сделать (Close, Flush ...) явно, рукой.

Поправлю немного. Лучше говорить не об абстрактной памяти, а о контейнере однотипных элементов. Коим является динамический массив в КП. И файл с записями (двоичный, не текстовый). Массив - внутренний контейнер, файл - внешний. Тогда - да, принцип может быть одинаковый. Сборщик мусора может сам следить за "закрытием" контейнера в случае его ненужности.
Я статью на эту тему еще году в 98 или 99 написал... :)
Понятия не имея об Оберонах и сборщиках мусора... :)

Автор:  Alexey Veselovsky [ Пятница, 13 Август, 2010 11:06 ]
Заголовок сообщения:  Re: Джоэл Спольски о сборке мусора

Сборщик мусоро хорош, когда у нас ресурса достаточно много. Например памяти почти всегда много. 640 Кб -- уже много. А вот файла например всегда мало. Он всегда один на запись. Он или есть, или его нет (занят). Поэтому освобождать его нужно ASAP.

По сути, GC -- воплощение ленивости в плане политики работы с ресурсом (памятью). Ручное управление, или управление на счетчиках (например умные указатели) -- это воплощение энергичной политики работы с ресурсом.

С точки зрения архитектуры ленивость почти всегла благо. Иногда даже с точки зрения производительности. Но ради реалтаймовости (и "откликабельности") с ней приходится бороться.

Собственно для того, чтобы познать цену лени, очень полезно что-нибудь пописать на Haskell'e.

Автор:  Info21 [ Пятница, 13 Август, 2010 15:21 ]
Заголовок сообщения:  Re: Джоэл Спольски о сборке мусора

Alexey Veselovsky писал(а):
Собственно для того, чтобы познать цену лени, очень полезно что-нибудь пописать на Haskell'e.
В смысле? (В двух словах.)

Автор:  Geniepro [ Пятница, 13 Август, 2010 15:34 ]
Заголовок сообщения:  Re: Джоэл Спольски о сборке мусора

Alexey Veselovsky писал(а):
С точки зрения архитектуры ленивость почти всегла благо. Иногда даже с точки зрения производительности. Но ради реалтаймовости (и "откликабельности") с ней приходится бороться.

Был случай, когда явское десктопное приложение (клиент к какому-то серверному приложение) переписали на Хаскелл и получили заметное улучшение реактивности хаскельного варианта по сравнению с явским.
Попадётся снова ссылка -- укажу, щас так с ходу не могу найти. :о(

Автор:  Alexey Veselovsky [ Понедельник, 30 Август, 2010 08:38 ]
Заголовок сообщения:  Re: Джоэл Спольски о сборке мусора

Илья Ермаков писал(а):
В каких-то случаях, на сборке старших поколений, всё равно они потоки морозят. Вроде бы.
Есть алгоритмы для систем реального времени (ещё Дейкстра придумал что-то), но они проигрывают в общих параметрах.

В java есть инкрементальный сборщик мусора. Весьма помогает в некоторых ситуациях. Включается ключиком -Xincgc

Автор:  Илья Ермаков [ Понедельник, 30 Август, 2010 10:34 ]
Заголовок сообщения:  Re: Джоэл Спольски о сборке мусора

Geniepro писал(а):
Был случай, когда явское десктопное приложение (клиент к какому-то серверному приложение) переписали на Хаскелл и получили заметное улучшение реактивности хаскельного варианта по сравнению с явским.


Получили... А почему получили, они могут объяснить? Просто вдруг получилось, теперь рекламируют. У другого на Яве так же что-то вдруг срослось.

Если не иметь полного (очищенного от деталей, но полного) представления о том, что происходит внизу, то предсказывать результат разработчик не может. Может только надеяться, что за него разработчики платформы подумали - и что в новой версии всё круто. Если покрутить загадочные ручки - то может стать вдруг совсем круто.
А разработчик тоже ничего предсказывать не может - предвидеть все нюансы конкретного режима использования в прикладных задачах он не может.

Вот и получаются пляски народов Севера вокруг ритуального костра :)

Автор:  Alexey Veselovsky [ Понедельник, 30 Август, 2010 10:47 ]
Заголовок сообщения:  Re: Джоэл Спольски о сборке мусора

Илья Ермаков писал(а):
Geniepro писал(а):
Был случай, когда явское десктопное приложение (клиент к какому-то серверному приложение) переписали на Хаскелл и получили заметное улучшение реактивности хаскельного варианта по сравнению с явским.


Получили... А почему получили, они могут объяснить? Просто вдруг получилось, теперь рекламируют. У другого на Яве так же что-то вдруг срослось.

Не рекламируют. Иначе найти ссылку было бы просто.

Автор:  Илья Ермаков [ Понедельник, 30 Август, 2010 11:45 ]
Заголовок сообщения:  Re: Джоэл Спольски о сборке мусора

Народная молва рекламирует, коллегам :)

Автор:  Alexey Veselovsky [ Понедельник, 30 Август, 2010 11:52 ]
Заголовок сообщения:  Re: Джоэл Спольски о сборке мусора

Илья Ермаков писал(а):
Народная молва рекламирует, коллегам :)

Да чего только не рекламирует народная молва :-) Сложно найти такую ШТУКУ которую бы не рекламировала.

Автор:  Geniepro [ Четверг, 02 Сентябрь, 2010 13:24 ]
Заголовок сообщения:  Re: Джоэл Спольски о сборке мусора

Илья Ермаков писал(а):
Получили... А почему получили, они могут объяснить? Просто вдруг получилось, теперь рекламируют. У другого на Яве так же что-то вдруг срослось.
Подробностей не помню, давно читал про это, ссылку найти тоже с полпинка не удалось.
Там суть вроде была в том, что этот фреймворк у Явы тормозной (видимо, не менее чем у .NET'а), потому и чисто нативный код хаскельного приложения оказался шустрее, несмотря на ленивость хаскелла и всё такое.
Приводился этот случай чисто для того, что бы успокоить людей, думающих, что Хаскелл якобы нельзя использовать в серьёзных коммерческих приложениях из-за его ленивости и возможного пожирания памяти программой.
Можно, нормально всё в этом плане. Не хуже, а то и лучше чем у всей из себя раскоммерческой Явы...

Автор:  Alexey Veselovsky [ Четверг, 02 Сентябрь, 2010 22:22 ]
Заголовок сообщения:  Re: Джоэл Спольски о сборке мусора

Geniepro писал(а):
Илья Ермаков писал(а):
Получили... А почему получили, они могут объяснить? Просто вдруг получилось, теперь рекламируют. У другого на Яве так же что-то вдруг срослось.
Подробностей не помню, давно читал про это, ссылку найти тоже с полпинка не удалось.
Там суть вроде была в том, что этот фреймворк у Явы тормозной (видимо, не менее чем у .NET'а), потому и чисто нативный код хаскельного приложения оказался шустрее, несмотря на ленивость хаскелла и всё такое.
Приводился этот случай чисто для того, что бы успокоить людей, думающих, что Хаскелл якобы нельзя использовать в серьёзных коммерческих приложениях из-за его ленивости и возможного пожирания памяти программой.
Можно, нормально всё в этом плане. Не хуже, а то и лучше чем у всей из себя раскоммерческой Явы...

Безусловно пробовать надо. У меня сейчас в принципе как раз есть задачка которая реализована на жабе, будет, видимо, реализована на С++, можно попробовать и на хаскеле реализовать. Задачка простая, но требующая производительности. В ней, кроме всего прочего, важна работа с памятью, насколько хорош умолчательный управленец памятью, и насколько можно оптимизировать это дело ручками. Потому как данных прокачивается в секунду что-то около 40 Мб.

Страница 2 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/