Комментарии 4
Еще при разработке мобильных приложений (Android, WP) советуют как можно реже создавать новые объекты, чтобы сборщик мусора работал как можно быстрее и не тормозил систему.
Для решения этой проблемы можно использовать например Объектный пул.
Для решения этой проблемы можно использовать например Объектный пул.
-1
Всё это слишком тонкие материи, чтобы результаты синтетических тестов распространять на все ситуации.
То, что переиспользовать объекты в моменте «быстрей» чем создавать — да. Это было и так ясно без тестов.
Но с другой стороны:
1)мы лишаемся возможности сделать их immutable. Есть много ситуаций где потребуется бОльшая аккуратность и это чревато ошибками с многопоточностью
2)Собирать молодые объекты легко и быстро, но если их много и мы решим их переиспользовать — они быстро станут «старыми» и это приблизит наступление full gc и сделает его более медленным. Так что не очевидно. Опять же когда мне надо несколько миллионов объектов переиспользовать — это может повлиять на соотношение размеров памяти между областями разных поколений.
Так что — надо смотреть в конкретной ситуации и в реальной работе.
То, что переиспользовать объекты в моменте «быстрей» чем создавать — да. Это было и так ясно без тестов.
Но с другой стороны:
1)мы лишаемся возможности сделать их immutable. Есть много ситуаций где потребуется бОльшая аккуратность и это чревато ошибками с многопоточностью
2)Собирать молодые объекты легко и быстро, но если их много и мы решим их переиспользовать — они быстро станут «старыми» и это приблизит наступление full gc и сделает его более медленным. Так что не очевидно. Опять же когда мне надо несколько миллионов объектов переиспользовать — это может повлиять на соотношение размеров памяти между областями разных поколений.
Так что — надо смотреть в конкретной ситуации и в реальной работе.
0
Ну, данный пример слегка упрощен.
ЧТобы реализовать object pooling в универсальный механизм сериализации / десериализации придется попотеть.
Много лет назад, когда каждый программист должен был написать свой ORM, я получил существенный выигрыш в реализации такого шаблона при получени данных от базы.
ЧТобы реализовать object pooling в универсальный механизм сериализации / десериализации придется попотеть.
Много лет назад, когда каждый программист должен был написать свой ORM, я получил существенный выигрыш в реализации такого шаблона при получени данных от базы.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Немного про повторное использование объектов