Рубрика «оптимизация» - 10

Вы когда-нибудь пытались загрузить в память CSV-файл на миллион строк и увидели что-то вроде:

PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted

Даже если увеличить memory_limit, ощущение всё равно неприятное: мы держим в памяти весь массив данных, хотя работаем с ним построчно.

Решение? Ленивые вычисления — подход, при котором данные генерируются и обрабатываются только тогда, когда они реально нужны.
В PHP это можно сделать двумя способами: с помощью генераторов (yield) и через Iterator API. Сегодня разберём оба.

Что такое ленивые вычисления

Читать полностью »

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

Читать полностью »

Я часто рассказываю математику тем, кто сам ею не занимается. Это непросто — и не только потому, что математика сложна сама по себе

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

Больше текстов можно найти в моём телеграм канале Кроссворд Тьюринга Подписывайтесь!) 

Читать полностью »

Как известно из простеньких курсов по DS, есть два алгоритма инициализации весов в скрытых слоях нейронных сетей, будто свертки или полносвязные слои. В первые, когда лично я про них узнал, не сразу понял суть различия принципов их работы. В этой статье я попробую обойтись без сложной математики ( базовые выкладки мат.стата все равно будут, крепитесь) и показать на простых примерах разницу между этими двумя.

Почему нам вообще нужны какие-либо алгоритмы?

Читать полностью »

Периферическое зрение в виртуальной реальности — не только биология, но и чистая математика рендеринга, UX-ошибки и чуть-чуть психологии. В этой статье разберёмся, как отсутствие нормальной периферии в VR ломает привычные паттерны взаимодействия, влияет на производительность, архитектуру движков и даже на то, как мы кодим интерфейсы. С примерами на Unity и Unreal, лайфхаками, личными фейлами и попытками обойти слепые зоны, которые придумал не человек, а сам шлем.

Читать полностью »

В постах и статьях мы иногда поминаем уважительным словом экономистов, которых читаем постоянно и с удовольствием. Например, шлём шаломы Михаилу Хазину, который много говорит про близкую нам научную организацию труда, хотя в совершенно других процессах. И про теорию власти, которой мы давно и успешно пользуемся в рамках реализации своих проектов.

А этим постом начинаем серию шаломов глубочайше уважаемому Дмитрию Пищальникову.

Читать полностью »

TL;DR Иногда «убить» самый тяжёлый JOIN — проще, чем кажется. Достаточно вынести агрегат в коррелированный под-запрос и дать движку опереться на индекс.

Стенд и исходный запрос

Для целей демонстрации создан тестовый стенд:

Скрипт

Это статья в формате вольного пересказа более чем сорокалетнего периода работы с разными ОС, главным образом с ОС мейнфрейм, и размышлениями об их сходстве и различиях (в большей степени о различиях, конечно).

Читать полностью »

Любите холодный лимонад в жаркий летний день? Тогда вам будет интересно узнать, как телематическое оборудование обеспечивает контроль за работой холодильного оборудования, поддержание нужной температуры и качество продукции в магазинах.

Разберем проект компании TN-GROUP с «Черноголовкой», где с недорогим железом удалось закрыть весь нужный функционал для 300 холодильников.

Читать полностью »

https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js