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/ |