Не складывайте медленный код в жобу

Все разработчики учились на задачах, в которых вопрос производительности либо не стоит в принципе (тудушечка, гостевуха, что там еще принято делать на первом занятии), либо обозначен непосредственно в условиях задачи (алгоритмика, литкоды, злые преподы). Потом были первые шаги в качестве стажеров/джунов, с соответствующим подбором задач. Чужой код, подсмотренный в пулл-реквестах признанных в команде асов, — тоже, скорее всего, был максимум асинхронным, и никогда параллельным. Так появляются мифы, один из которых — самый вредный, на мой взгляд, в современном мире, где у каждого в пляжном ноутбуке по триста ядер, — «параллельное программирование сложно». В самой по себе параллельности ничего сверхъестественного нет: надо просто за недельку привыкнуть к тому, что результат получается не сразу, и всё. Проблема в другом: в том бесчисленном количестве костылей, нагроможденных претендующими (на звание неглупых) людьми, чтобы «упростить жизнь медиокра за клавиатурой». В любой мало-мальской экосистеме обязательно будет такая штука, как « job runner ». Чтобы линейный, простой как полено, код — мог иметь дело с длительными вычислениями. Нужен отчёт, а его генерация занимает полчаса? — Нет, мы не сделаем правильно, не поправим наши схемы, не озаботимся триггерами и persistent views , на это у нас нет ни времени, ни денег, мы стартап, поэтому делегируем: пусть весь неэффективный медленный код идёт в жобу! Почему job runners — зло

https://habr.com/ru/articles/909584/

#job #jobscheduler #jobscheduler #планировщик

Не складывайте медленный код в жобу

Все разработчики учились на задачах, в которых вопрос производительности либо не стоит в принципе (тудушечка, гостевуха, что там еще принято делать на первом занятии), либо обозначен непосредственно в...

Хабр

Топ-10 планировщиков задач 2025: обзор лучших решений

Подготовили подборку лучших российских приложений для планирования, которые обладают всеми необходимыми функциями и имеют доступные цены на подписку.

https://habr.com/ru/articles/904240/

#планировщик_задач #управление_проектами #управление_командой #таскменеджер #тасктрекер #таймменеджмент #планирование_времени #планирование_проектов #планирование #планировщик

Топ-10 планировщиков задач 2025: обзор лучших решений

Современный планировщик задач — не просто удобный ежедневник или органайзер, а полноценный цифровой помощник в реализации планов и проектов. Такой инструмент помогает отслеживать планы, добиваться...

Хабр

Планировщик Go

Язык программирования Go был разработан для высокопроизводительных многопоточных приложений, и его система планирования горутин играет ключевую роль в эффективном использовании аппаратных ресурсов. В отличие от традиционных потоков ОС, горутины легче, создаются быстрее и управляются встроенным планировщиком Go, который распределяет задачи между доступными процессорами. В этом тексте я рассмотрю, как Go-программа использует вычислительные мощности, как работает планировщик горутин и какие механизмы обеспечивают эффективное выполнение кода. Мы разберем принципы распределения задач, взаимодействие горутин с потоками ОС, а также механизмы синхронизации и асинхронного ввода-вывода. Это поможет лучше понять, как Go обеспечивает высокую производительность при работе с конкурентными процессами.

https://habr.com/ru/articles/894578/

#go #golang #планировщик_go #планировщик

Планировщик Go

Язык программирования Go был разработан для высокопроизводительных многопоточных приложений, и его система планирования горутин играет ключевую роль в эффективном использовании аппаратных ресурсов. В...

Хабр

Планировщик ОС

Дизайн и поведение планировщика Go позволяют многопоточным программам работать более эффективно и производительно. Это возможно благодаря тому, что планировщик Go учитывает особенности работы планировщика операционной системы (OS). Однако, если многопоточная программа не учитывает принципы их взаимодействия, все преимущества теряются. Поэтому важно понимать, как работают оба планировщика, чтобы правильно проектировать многопоточные приложения. В этой статье я решил разобраться с основными механизмами и принципами работы планировщик ОС. Большая часть статьи перевод «Scheduling In Go: Part I — OS Scheduler» , автора Билла Кеннеди.

https://habr.com/ru/articles/894338/

#планировщик #ос #планировщик_ос

Планировщик ОС

Дизайн и поведение планировщика Go позволяют многопоточным программам работать более эффективно и производительно. Это возможно благодаря тому, что планировщик Go учитывает особенности работы...

Хабр

[Перевод] Способы разделения длительных задач в JavaScript

Иногда возникает необходимость разделить длительную дорогую (с точки зрения вычислений) задачу на несколько тиков (ticks) цикла событий (event loop). Существует множество способов это сделать. Рассмотрим их. Легко "уничтожить" пользовательский опыт, позволив длительной дорогой задаче захватить основной поток (main thread). Неважно, насколько сложным является приложение, цикл событий может выполнять только одну задачу за раз. Пока выполняется одна задача, другие ждут своей очереди. Как правило, задача выполняется настолько быстро, что пользователь ничего не замечает. Но так бывает не всегда.

https://habr.com/ru/companies/timeweb/articles/882418/

#timeweb_статьи_перевод #javascript #long_task #settimeout #promise #scheduler #requestidlecallback #requestanimationframe #длительная_задача #промис #планировщик #main_thread #call_stack #основной_поток #стек_вызовов

Способы разделения длительных задач в JavaScript

Иногда возникает необходимость разделить длительную дорогую (с точки зрения вычислений) задачу на несколько тиков (ticks) цикла событий (event loop). Существует множество способов это сделать....

Хабр

[Перевод] Kubernetes 1.32: как QueueingHint оптимизирует планирование подов

Начиная с Kubernetes v1.28, рабочая группа SIG Scheduling разрабатывает элемент контекста планирования QueueingHint. Он подписывается на определённый тип кластерных событий и принимает решение о том, способно ли входящее событие сделать под планируемым. Это позволяет оптимизировать процедуру повторного планирования подов. На протяжении нескольких версий фича была выключена из-за проблем с утечками памяти. В вышедшей недавно Kubernetes v1.32 она снова включена по умолчанию. Проблемы с утечками устранены, и теперь QueueingHint успешно интегрирован со всеми плагинами. Под катом вас ждёт перевод статьи, из которого вы узнаете о пользе новой фичи планировщика Kubernetes.

https://habr.com/ru/companies/flant/articles/866998/

#scheduler #scheduling #планировщик #планирование #под #события_Kubernetes #QueueingHint

Kubernetes 1.32: как QueueingHint оптимизирует планирование подов

Планировщик Kubernetes — один из ключевых компонентов Kubernetes. Он подбирает узлы для запуска подов, при этом поды обрабатываются по очереди, друг за другом . В таких условиях чем больше кластер,...

Хабр

[Перевод] Долгий путь к ленивому вытеснению

В настоящее время планировщик работы с ядрами ЦП, действующий в ядре Linux, предусматривает несколько режимов вытеснения. В этих режимах предлагается целый ряд компромиссов между временем отклика и пропускной способностью системы. Ещё в сентябре 2023 года развернулась дискуссия о работе планировщиков , в результате которой была выработана концепция «ленивого вытеснения». Данная концепция упрощает планирование задач в ядре, при этом улучшая результаты. Какое-то время эта работа протекала тихо, но затем ленивое вытеснение было заново реализовано Питером Зайлстрой в виде этой серии патчей . Притом, что сама концепция с виду работает хорошо, здесь ещё немало требуется доделывать.

https://habr.com/ru/companies/timeweb/articles/864760/

#timeweb_статьи_перевод #linux #ядро #планировщик #патчи #концепция #ЦП #режим_вытеснения

Долгий путь к ленивому вытеснению

В настоящее время планировщик работы с ядрами ЦП, действующий в ядре Linux, предусматривает несколько режимов вытеснения. В этих режимах предлагается целый ряд компромиссов между временем отклика и...

Хабр

Планировщик на основе искусственного интеллекта

Часто ли нам приходится пользоваться записными книжками? Удобно ли это? Всегда ли тот кусочек бумаги, на котором записано время и место встречи, под рукой? Насколько быстро можно записать необходимую информацию? Все эти вопросы не открывают Америку, всем понятно, что цифровые планировщики гораздо практичнее, нежели традиционные письменные. Но что может быть не так с электронными записными книжками? Например, для внесения очередной записи необходимо произвести большое количество действий: от создания плана новой встречи до ручного ввода места и времени встреч в каждое отдельное поле. Казалось бы, пустяк, да и отнимает не так уж много времени. Но ведь нет предела совершенству! Как раз для улучшения данного аспекта: планирования повседневной (и не только) жизни, предназначен мой проект. Стоит отметить, что он будет полезен в основном для бэк‑офиса: поможет не опоздать на важную встречу, не пропустить совещание и не забыть про дедлайн. И так, перейдем от пустых слов, непосредственно к разработке. В последующей статье описан мой опыт по разработке такого рода проекта, а я это делал впервые, поэтому сильный хейт не принимается:‑)

https://habr.com/ru/articles/820407/

#ИИ #ОЦРВ #РЖД #ПЛАНИРОВЩИК #естественный_язык #машинное_обучение #python #rasa

Планировщик на основе искусственного интеллекта

Вводное Часто ли нам приходится пользоваться записными книжками? Удобно ли это? Всегда ли тот кусочек бумаги, на котором записано время и место встречи, под рукой? Насколько быстро можно записать...

Хабр

Как пишут SQL-запросы гуманитарии

Когда говорят "мы ускорили выполнение нашего запроса в N раз" это значит, что сначала сделали плохо а потом начали думать как улучшить. Так я думал раньше.

https://habr.com/ru/articles/802645/

#планировщик #базы_данных #sql #postgresql

Как пишут SQL-запросы гуманитарии

- И тогда самец забирается на самое высокое дерево и оттуда планирует. - Простите, что планирует? @ к/ф «День радио» Когда говорят "мы ускорили выполнение нашего запроса в N раз" это значит, что...

Хабр

[Перевод] Xv6: учебная Unix-подобная ОС. Глава 7. Планирование процессов

Глава расскажет, что такое мультиплексирование процессов, как xv6 переключает процессы, как xv6 синхронизирует процессы с помощью sleep и wakeup, как работает семафор, как работает канал (pipe), как случаются инверсии приоритетов и образуются конвои процессов, как правильно убить процесс и укротить грохочущее стадо процессов.

https://habr.com/ru/articles/801567/

#xv6 #семафор #переключение_контекста #мультиплексирование #условные_переменные #планировщик #sleep #wakeup #взаимоблокировки #каналы

Xv6: учебная Unix-подобная ОС. Глава 7. Планирование процессов

Предыдущая: Глава 6. Блокировки Примечание. Авторы рекомендуют читать книгу вместе с исходным текстом xv6 . Авторы подготовили и лабораторные работы по xv6 . Xv6 работает на RISC-V, поэтому для его...

Хабр