Что такое пул в программировании
Перейти к содержимому

Что такое пул в программировании

  • автор:

Что такое пул в программировании

Подскажите, что это такое программные пулы или пулы для хранения объектов (где почитать ). В C API под Apache про них написано, но как-то скупо.
А то часто встречаются термины «создание пула для хранения объекта. «.
Если это просто выделенный заранее объем памяти и размещение в нем ЧЕГО-ТО , что часто используется или массив с постоянно растущим числом объектов. Ну в общем не знаю,что и принять за истину — нужно твердое описание/определение
спасибо

Оглавление

  • Что такое пулы ( POOL), Lamr, 14:00 , 08-Апр-04, (1)
    • Что такое пулы ( POOL), zizi, 10:30 , 09-Апр-04, (2)
    • Что такое пулы ( POOL), zizi, 16:18 , 09-Апр-04, (4)
      • Что такое пулы ( POOL), gt, 16:24 , 09-Апр-04, ( 5 )

      Сообщения по теме

      А мне вот до сих пор непонятно, что такое файл?
      Ну нарисовано чего-то на телевизоре
      Крысой потыкал — он открылся, там, закрылся

      А вот что он есть внутре? в корне?
      Как его содержимое отображено на свойствах материи
      и тёмной энергии вселенной?

      Какие силы электромагнитногоо взамодейсвия заставляют его
      быть, не стираться нахрен, когда комп выключил — и тоже
      ведь не всегда! Иногда , бля, стираеться :-(((

      Ведь если понять и прочувствовать эти свойства,
      можно найти зависимость, попробовать предсказать их
      появление-исчезновение.
      Не бежать за дурацкими советами к этим наглым снобам —
      гостям opennet.ru.

      >А мне вот до сих пор непонятно, что такое файл?
      >Ну нарисовано чего-то на телевизоре
      >Крысой потыкал — он открылся, там, закрылся
      >
      >А вот что он есть внутре? в корне?
      >Как его содержимое отображено на свойствах материи
      >и тёмной энергии вселенной?
      >
      >Какие силы электромагнитногоо взамодейсвия заставляют его
      >быть, не стираться нахрен, когда комп выключил — и тоже
      >ведь не всегда! Иногда , бля, стираеться :-(((
      >
      >Ведь если понять и прочувствовать эти свойства,
      >можно найти зависимость, попробовать предсказать их
      >появление-исчезновение.
      >Не бежать за дурацкими советами к этим наглым снобам —
      >гостям opennet.ru.

      Вопрос был расчитан на тех кто знает и может ответить, а не на мусор в тусовках при форуме. Не можешь (читай — не знаешь) нечего и выебываться, писать типа ответа раз ЛАММЕР

      >Подскажите, что это такое программные пулы или пулы для хранения объектов (где
      >почитать ). В C API под Apache про них написано, но
      >как-то скупо.
      >А то часто встречаются термины «создание пула для хранения объекта. «.
      >Если это просто выделенный заранее объем памяти и размещение в нем ЧЕГО-ТО
      >, что часто используется или массив с постоянно растущим числом объектов.
      >Ну в общем не знаю,что и принять за истину — нужно
      >твердое описание/определение
      >спасибо
      >
      ты вобщем-то сам себе и ответил 😉
      пул — нечто содержащее память которая заранее выделяется для хранения объектов (еще до их создания) собственно нужно для ускорения процесса создания объектов (быстрее взять готовый кусок из очереди/стека/другого контейнера чем выделять в дин. памяти)..более точное определение надо искать уж точно не в C API Apache — а в нормальных книгах по программированию — тех которые ComputerScience а не «изучи С за 13.5 часов..»
      imho рановато вы взялись за тот самый Apache

      >>Подскажите, что это такое программные пулы или пулы для хранения объектов (где
      >>почитать ). В C API под Apache про них написано, но
      >>как-то скупо.
      >>А то часто встречаются термины «создание пула для хранения объекта. «.
      >>Если это просто выделенный заранее объем памяти и размещение в нем ЧЕГО-ТО
      >>, что часто используется или массив с постоянно растущим числом объектов.
      >>Ну в общем не знаю,что и принять за истину — нужно
      >>твердое описание/определение
      >>спасибо
      >>
      >ты вобщем-то сам себе и ответил 😉
      >пул — нечто содержащее память которая заранее выделяется для хранения объектов (еще
      >до их создания) собственно нужно для ускорения процесса создания объектов (быстрее
      >взять готовый кусок из очереди/стека/другого контейнера чем выделять в дин. памяти)..более
      >точное определение надо искать уж точно не в C API Apache
      >- а в нормальных книгах по программированию — тех которые ComputerScience
      >а не «изучи С за 13.5 часов..»
      >imho рановато вы взялись за тот самый Apache

      ПРо Apache я сказал для примера(где видел/читал про использование пула в API для него). А вот ищу , где можно прочитать про эту «технологию» и пока без особых успехов. И потом технология не описывается в книгах по технике программирования . Например, у Стивенса не нашел «этой темы».

      >ПРо Apache я сказал для примера(где видел/читал про использование пула в API
      >для него). А вот ищу , где можно прочитать про эту
      >»технологию» и пока без особых успехов. И потом технология не описывается
      >в книгах по технике программирования . Например, у Стивенса не нашел
      >»этой темы».
      >
      Когда тебе понадобится кде-либо реализовать пул/пулы, то ты уже будишь к тому времени знать что это такое и как это сделать. А сейчас не забивай себе голову всякими глупостями 🙂

      Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.

      Пул (pool) — что это в программировании

      vedro-compota's picture

      Пул — по сути это «множество», «набор» чего-либо (объединеного по какому-то либо признаку).

      На практике это может быть:

      • некоторой областью памяти, используемая для хранения данных или исполняемого кода, имеющего общие признаки — так например — объектный пул
      • набором каких-либо программных сущностей (типа классов, функций и т.д.)

      Что такое пул в php-fpm?

      В php-fpm по умолчанию, сразу после установки есть пул www. Все об этом знают и надеюсь понимают, но я не совсем. Примерно понимаю что это типа выделенная группа процессов php-fpm. Может быть наверное несколько пулов. Кто-то может объяснить или дать ссылку на документацию где объясняется что такое пул php-fpm и зачем он нужен? Сам я путем гугления не нашёл. Заранее благодарю.

      Отслеживать
      Mikhail Politaev
      задан 29 июн 2016 в 20:20
      Mikhail Politaev Mikhail Politaev
      620 4 4 серебряных знака 21 21 бронзовый знак

      хороший вопрос. Наш сисадмин использовал для каждого сайта свой пул под своим юзером. Так он разграничивал настройки потоков и т.д. плюс разграничения по пользователям. т.е. если вдруг взломали один сайт то взломщик не сможет повредить другим сайтам.

      29 июн 2016 в 20:36

      Так всё-таки что это? Наверное от swiming-pool=бассейн, это какая-то область процессов php-fpm, к которой можно применить свои настройки. Например запустить от определённого юзера, ограничить максимальное кол-во процессов пула и т.д. .

      30 июн 2016 в 4:34

      2 ответа 2

      Сортировка: Сброс на вариант по умолчанию

      Пулы php-fpm — позволяют запускать процессы php под разными пользователями, тем самым создавая более безопасную среду. Так же, каждому пулу — можно выделять свои ресурсы и переопределять переменные php.ini

      Например: Для production версии сайта — один пул, для development версии сайта — другой пул.

      Каждый пул работает или на отдельном порте, или на отдельном сокет файле. Как утверждают некоторые мануалы по оптимизации php-fpm — то для сайта с высокой нагрузкой разумней использовать несколько пулов.

      In our experience, multiple upstream backends on the same machine, produce higher throughout than a single one.

      Отслеживать
      ответ дан 30 июн 2016 в 5:09
      Konstantin Mitjurin Konstantin Mitjurin
      306 1 1 серебряный знак 3 3 бронзовых знака
      Благодарю! Ясно!
      30 июн 2016 в 6:18

      Пул (pool) в программировании — это контейнер для повторно используемых ресурсов. Он используется для экономии на создании ресурса. Идея в том, что после завершения использования ресурса он не уничтожается — а возвращается в пул, откуда его можно быстро достать для повторного использования.

      Не следует путать пул и кэш — хотя их назначение и схоже, но в кэше хранятся разные объекты, в пуле же все ресурсы абсолютно одинаковы (смысл пула как раз в том чтобы ресурс, взятый из пула, никак не отличался от только что созданного).

      К примеру, открытие соединения с БД — операция долгая, поскольку надо устанавливать сетевое соединение. Поэтому соединения с БД часто объединяют в пулы соединений.

      Создание нового потока — операция дорогая. Поэтому библиотеки, предназначенные для асинхронной работы, часто содержат пул потоков. А на винде пул потоков даже является частью WinAPI.

      В случае php-fpm, каждый запрос обрабатывается в некотором процессе. Запуск процесса — операция еще более дорогая чем создание потока — а потому используются пулы процессов.

      Ну а поскольку в случае с php-fpm может потребоваться создавать разные процессы (с разными настройками), а один пул может содержать только одинаковые ресурсы — php-fpm создает несколько пулов, каждый со своими настройками. Вот так настройки процесса стали настройками пула, а пул из паттерна программирования стал единицей администрирования.

      Апрувить пул-реквест: сленг разработчиков и как его понимать

      Апрувить пул-реквест: сленг разработчиков и как его понимать

      Айтишников сложно понять: они говорят на своем языке, который для новичка звучит как заклинания из «Гарри Поттера». Давайте разберемся, о чем на самом деле говорят программисты, когда обсуждают проекты и процессы.

      Языки

      Названия языков программирования часто переиначивают для простоты или ради шутки. «Змея» – это Python, а вовсе не рептилия, чудом проникнувшая в офис. А «жаба» – Java, тогда как «жабаскрипт» или даже «жаба-скрип» – это JavaScript. Программисты старшего возраста могут все еще называть эти языки «Ява» и «Яваскрипт» – так было принято раньше.

      «IT-специалист с нуля» наш лучший курс для старта в IT
      IT-специалист с нуля

      Наш лучший курс для старта в IT. За 2 месяца вы пробуете себя в девяти разных профессиях: мобильной и веб-разработке, тестировании, аналитике и даже Data Science — выберите подходящую и сразу освойте ее.

      картинка - 2023-03-14T191232.869

      Профессия / 8 месяцев
      IT-специалист с нуля
      Попробуйте 9 профессий за 2 месяца и выберите подходящую вам
      4 116 ₽/мес 7 483 ₽/мес

      vsrat_7 1 (2)

      В современных IT-компаниях можно встретить сусликов, или гоферов – разработчиков на Go. Милый зверек суслик по-английски называется gopher и считается символом языка программирования. «Пыха» – это PHP, а не PlayStation 4 (впрочем, в некоторых IT-офисах встречается и такое), «крестами» называют C++, «сижкой» – C, а «сионисты» – это не тайный орден, а разработчики на C. Стандартное сокращение для языка программирования в целом – ЯП. Современные ЯП полны синтаксического сахара – решений в синтаксисе, которые сами по себе не добавляют новых функций, но делают написание кода удобнее. Обратный термин – синтаксическая соль, конструкции, которые усложняют код.

      Контроль версий

      Самые сложные и страшные слова обычно относятся к системам контроля версий, таких как Git, и к работе с ними. Контроль версий нужен разработчикам, чтобы не терять результаты работы – он функционирует как сохранения в играх. Проект можно «сохранить» в каком-то состоянии, а потом вернуться к любому «сохранению» – они называются коммитами. Соответственно, коммитить – создавать новый коммит. Коммиты хранятся в репозиториях, или «репо» – специальных папках или разделах с версиями проекта. Локальные репозитории находятся на компьютере разработчика, а в общий доступ версии выкладывают на GitHub или GitLab – сервисы для работы с Git. Отправить код в репозиторий – значит запушить его: от названия соответствующей команды push.

      Курс для новичков «IT-специалист
      с нуля» – разберемся, какая профессия вам подходит, и поможем вам ее освоить

      Но просто так запушить что-то в общий репо нельзя – сначала понадобится отправить пул-реквест, то есть попросить у старших разработчиков разрешения на изменение версии. Они получат реквест и проведут код-ревью – проверят написанный код на предмет ошибок и недочетов. Если все хорошо, пул-реквест апрувят – то есть одобряют. Стандартный комментарий к апруву – LGTM: looks good to me, то есть, «мне кажется, хорошо». Чтобы не смешивать все обновления в одно, версии разветвляют – создают бранчи, то есть отдельные «треки» обновлений. А потом, когда каждый бранч разовьется по отдельности, их мёржат – сливают воедино.

      Технологии и решения

      Не отстают и другие технологии. Например, «мускул» – СУБД MySQL, «апишка» – API, а «либа» – библиотека для языка программирования. Программы, которые предупреждают разработчика об ошибках в коде, называются «линтерами» – они могут даже сами править стилистические недочеты. Если линтер или какая-то другая программа сообщает об ошибке, говорят, что она «ругается». Windows – это «окошки», Linux – «линь» или «пингвин», а Android – «ведроид». Продукцию Apple называют «яблоками», а ее фанатов – «яблочниками» или «апловодами». У конкретных решений и действий тоже есть названия. В мобильной разработке есть тап – нажатие пальцем на экран, а есть стретч – движение двумя пальцами для увеличения картинки или страницы. Выпадающие меню в приложениях и на сайтах называют «выпадашками» или «дропдаунами», а системы управления контентом – «админками», «движками» или «цээмэсками». Впрочем, движок – это еще и интерпретатор языка, программа, которая отвечает за построчное исполнение кода.

      Задачи и обновления

      Выкатить, зарелизить проект – значит показать его общественности, а задеплоить – отправить на сервер, где он будет работать. Еще можно накатить обновление – это почти как выкатить, только немного иначе: накатывают что-то обычно уже поверх готового проекта, например доработки. Куда выкатывают уже написанный код? Сначала, возможно, на тестовый сервер, а потом – на прод, или продакшн: это сервера, на которых запущена «рабочая» версия проекта. Ее видят и с ней взаимодействуют посетители. Поэтому уронить прод – сделать сервис недоступным для пользователей из-за ошибки – это очень плохо. Это факап – то есть серьезный промах. Если случилось что-то плохое, нужно откатить проект – вернуть старую версию, которая работала корректно. Хорошо, если есть бэкапы – резервные копии работающего продукта. Потом придется фиксить баги, или же дебажить – то есть, исправлять ошибки. А чтобы данные вводились правильно, нужна валидация – проверка корректности того, что ввел пользователь. Потом, когда все хорошо, можно уже подумать о добавлении новых фич – «фишек», возможностей программы. Шуточная фраза «не баг, а фича» означает «это не ошибка, это так задумано» – хотя баги все равно возникают чаще, чем хотелось бы. Кстати. Слово «баг» пришло в разработку на заре компьютерной эры. Создательница первого в мире компилятора Грейс Хоппер обнаружила, что ее компьютер не работает. А когда проверила – оказалось, что внутрь устройства залетела бабочка, то есть «жучок» или bug. Так она и описала причину ошибки в журнале. Ранее слово использовали инженеры, когда говорили о необъяснимых недочетах.

      Выстраивание процессов

      С утра разработчики идут на митинги. Но уличные демонстрации тут ни при чем: митингом в IT называют регулярную встречу команды разработчиков, на которой разбирают выполненные задачи и ставят новые. Такая организация процессов характерна для аджайла, или Agile: «гибкой» методологии управления проектами. Ее часто используют в IT. Популярная методика аджайла называется скрам, или scrum, а специалист, который отвечает за организацию скрама – скраммастер. В скраме задачи решают в течение промежутков длиной от недели до месяца. Они называются спринтами. Каждый спринт начинается с митинга: на нем раздают задачи, которые разработчики должны выполнить в течение следующего промежутка. На следующем митинге они отчитаются о том, что сделали, а что не смогли. Это дедлайн: крайний срок, до которого надо сделать задание. Какие задачи выдадут на митинге – зависит от грейда разработчика, то есть от уровня его квалификации. Джуниор, или джун – младший разработчик, мидл – «средний», а сеньор – старший. Еще есть тимлид – он управляет командой. В тимлиды идут из сеньоров или, реже, из менеджеров. Еще имеет значение стек разработчика – набор технологий, с которыми он умеет обращаться. Например, на галерах – в компаниях, которые «выжимают» из сотрудника максимум и не ценят его, хотят, чтобы человек умел все и сразу. Галеры – это, как правило, аутсорс-компании, то есть такие, которые создают программные решения для чужого бизнеса на заказ.

      Другие слова

      Как бы мы ни пытались классифицировать сленг, пункт «другое» все равно есть. Сюда можно отнести такие словечки, как, например, DRY – «драй», «ди-эр-ай». Эта аббревиатура означает don’t repeat yourself – не повторяйся. Она напоминает избегать ненужных повторов кода там, где это возможно. Или, например, паттерн и антипаттерн. Первое – подход, который принят в решении какого-либо вопроса. Второе – плохой подход, которого нужно избегать. Шерить – это делиться чем-то, меншить – упоминать, чаще всего в соцсетях или мессенджерах, а парсить – собирать данные и распределять их. Итерация – всего лишь повторение. Ну а жира – Jira, сервис для контроля задач. Кстати, задача – это таска, а такие сервисы называются тасктрекерами. Набор текущих, еще не сделанных задач в ней имеет название бэклог, и разработчикам часто бывает больно на него смотреть. Если где-то найдется баг, придется использовать костыль – код, который существует, только чтобы обойти ошибку. Но это не очень хорошо, потому что обилие костылей запутывает. Например, из-за них бывает сложно поддерживать легаси – старый код из прошлых версий, уже морально устаревший, но еще не переписанный. Думаете, это все? Нет. Сленг разработчиков намного обширнее, и мы познакомились лишь с малой его частью. Но надеемся, вы стали лучше понимать айтишников. А если хотите стать одним из них, записывайтесь на наши курсы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *