Эта статья требует дополнительных ссылок для проверки . ( август 2015 г. ) ( Узнайте, как и когда удалить этот шаблон сообщения ) |
В информатике , пул представляет собой набор ресурсов , которые хранятся [ разъяснение необходимости ] готов к использованию, а не приобретенные в использовании и выпустили [ требуется уточнение ] впоследствии. В этом контексте ресурсы могут относиться к системным ресурсам, таким как дескрипторы файлов , которые являются внешними по отношению к процессу, или внутренними ресурсами, такими как объекты . Клиент пула запрашивает ресурс из пула и выполняет желаемые операции с возвращенным ресурсом. Когда клиент заканчивает использование ресурса, он возвращается в пул, а не освобождается и теряется.[ требуется разъяснение ]
Объединение ресурсов может предложить значительное увеличение времени отклика в ситуациях, которые связаны с высокими затратами, связанными с получением ресурсов, высокой частотой запросов на ресурсы и низким общим количеством одновременно используемых ресурсов. Пул также полезен, когда возникает проблема задержки , поскольку пул предлагает предсказуемое время, необходимое для получения ресурсов, поскольку они уже были получены. Эти преимущества в основном относятся к системным ресурсам , которые требуют системного вызова , или к удаленным ресурсам , которые требуют сети связи, например, соединение с базой данных , подключением к сокетам , потоков и распределение памяти. Пул также полезен для данных, требующих больших затрат на вычисление, особенно больших графических объектов, таких как шрифты или растровые изображения , выступая по существу как кэш данных или метод мемоизации .
Особые случаи бассейнов являются пулами соединений , пулы потоков и пулы памяти .
Пулы объектов [ править ]
Пулы также могут использоваться для объектов, в этом контексте пул относится к шаблону проектирования для реализации пулов в объектно-ориентированных языках , например в шаблоне пула объектов . Сами объекты не содержат внешних ресурсов и занимают только память, хотя уже созданный объект позволяет избежать выделения памяти, необходимого для создания объекта. Пулы объектов полезны, когда стоимость создания объектов высока, но в определенных ситуациях этот простой пул объектов может быть неэффективным и фактически может снизить производительность. [1]
Ссылки [ править ]
- ^ "Теория и практика Java: легенды городской производительности, пересмотренные" . ibm.com . 2005-09-27. Архивировано 29 декабря 2011 года . Проверено 31 октября 2013 .