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

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

В текущей статье, рассмотрим темы - n+1, пагинация и индексы. Приятного чтения!

Описание приложения

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

Почему десктопные приложения работают на веб-платформе? - 1


Где мы свернули не туда? Как получилось, что современный десктопный GUI по умолчанию использует платформу HTML/CSS/JavaScript, которая изначально не предназначена для нативной работы на десктопе? Она создана конкретно для браузера и веба. Зачем из нативного софта делать веб-страницы в браузерной оболочке?

Джефф Этвуд (автор Stack Overflow) предсказал этот феномен ещё в 2007 году. Он тогда сформулировал так называемый закон Этвуда:

Любое приложение, которое можно написать на JavaScript, будет в итоге написано на JavaScript.

Так и вышло.
Читать полностью »

Я выпустил библиотеку banditypes — самый маленький валидатор схем для TS / JS. Удивительно, но базовый функционал валидации с приятным API можно упихнуть в 400 байт, если сконцентрироваться на размере и добавить пару грязных хаков. В этой статье расскажу, как добился такого результата.

Но для начала, если вы еще не знакомы с проблемой и популярными решениями (zod, superstruct, yup старина joiЧитать полностью »

22 342 кратное ускорение загрузки геометрии в Unity - 1

Немного истории

Меня зовут Артем Толстогузов, и я вхожу в группу анонимных Unity‑программистов.

У меня:

  • навязчивое желание переложить всю работу с CPU на GPU;

  • небольшой фетиш в области оптимизаций всего что только возможно;

  • хронический интерес к шейдерам, графическому пайплайну и технологиям;

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

Введение в математическую оптимизацию на примере компании Recruit. Часть 4 - 1


Это серия статей о том, что такое математическая оптимизация и как её можно применить в бизнесе на примере компании Recruit. В данной статье мы рассказываем, как была решена проблема планирования доставки бесплатной газеты. Другие части доступны здесь:

❖ авторы Кенго Хамада, Котаро ТанахасиЧитать полностью »

Как я оптимизировал стандартную русскую раскладку - 1

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

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

Ещё в мае 2022 года я переориентировал пару команд в Google на разработку полностью гомоморфного шифрования (вот объявление об этом в рассылке). С тех пор я участвовал в работе над многими проектами в этой области, в частности, руководил поддержкой на github.com/google/fully-homomorphic-encryption – это опенсорсный ПГШ-компилятор для C++. В этой статье даётся вводная информация о том, как при помощи этого инструмента компилировать программы с расчётом на ПГШ. Также пробежимся по тому, из чего этот компилятор состоит.

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

К нам в цех заезжает поезд с маленькими-маленькими ковшами стали по 80–120 тонн. Доменное производство, где делают чугун, — это предыдущий этап работ. А у нас из чугуна надо сделать сталь. Соответственно цеха соединены железной дорогой, и расплавленный чугун приезжает к нам. В поезде — сразу 10-11 ковшей. Проблема в том, что наши ковши — по 300 тонн, и нужно с помощью трёх мостовых кранов (они перемещаются где-то под потолком цеха) собрать из этого поезда оптимальные разливки.

Раньше около 60 % ковшей по 300 тонн составлялось из четырёх маленьких ковшей, причём четвёртый использовался только частично. То есть где-то получалось скомбинировать что-то вроде 90 + 110 + 98, и это был хороший годный ковш на 298 тонн. А где-то это было 90 + 82 + 85 + 43 тонны из следующего ковша, которому не повезло.

Казалось бы, это задачка, которая решается на школьном уроке информатики за 15 минут, но есть пара нюансов с исходными данными:

Перелив ковша - 1
Небольшие сложности с получением данных

Перелив ковша - 2

Плюс ещё пара особенностей производства. Так что сейчас я расскажу, как непросто внедряются в реальный мир даже такие простые модели.
Читать полностью »

В одной конторе соискателю на позицию Senior C# developer выдали тестовое задание: отсортировать файл со строками определенного формата.

Требования такие:

  • Формат строки: число, точка, пробел, далее любые символы до конца строки.

  • Порядок сортировки — сначала сортируем текстовой части строки, потом по числу если текстовые части совпадают.

  • Кодировка — UTF-8.

  • Размер файла — 100гб - гарантированно больше объема ОП.

  • Должно отработать за 1 час на машине проверяющего, вряд ли там будет супер-быстрый SSD и огромное количество оперативной памяти.

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


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