[Перевод] Разновидности SIMD

Во время разработки meshoptimizer частенько возникает вопрос: «А может этому алгоритму использовать SIMD?» Библиотека ориентирована на производительность, но SIMD не всегда обеспечивает значительные преимущества по скорости. К сожалению, SIMD может сделать код менее переносимым и менее ремонтопригодным. Поэтому в каждом конкретном случае приходится искать компромисс. Когда первостепенное значение имеет производительность, приходится разрабатывать и поддерживать отдельные реализации SIMD для наборов инструкций SSE и NEON. В других случаях нужно понять, каков эффект от применения SIMD. Сегодня мы попытаемся ускорить меш-рационализатор (sloppy mesh simplifier) — новый алгоритм, недавно добавленный в библиотеку — используя наборы инструкций SSEn/AVXn. Читать дальше → …

[Перевод] Разновидности SIMD

Новый взгляд на изучение и документирование исходного кода

TL;DR Привет. Меня зовут Богдан и я изучаю проблемы чтения кода. Я только что закочнил первую рабочую версию «codecrumbs» — визуального инструмента для изучения исходного кода с помощью «хлебных крошек». Гитхаб репозиторий можно посмотреть тут. Проблема Недавно я проводил опрос о главных проблемах с которыми мы сталкиваеся когда начинаем изучать исходный код большого проекта (если вы ещё не учавствовали, то пройти опрос всё ещё можно тут). Читать дальше → …

Новый взгляд на изучение и документирование исходного кода

Внутренние и вложенные классы java. Часть 3

Внутренние и вложенные классы java. Часть 3 << Часть 1 << Часть 2 Локальные классы Локальный класс — это вложенный класс, объявленный внутри другого класса и некоторого блока кода этого класса, то есть объявленный между фигурными скобками {}. Этот блок может быть статическим блоком, циклом, телом if-ов и т.д. Можно объявить вложенный класс внутри блока кода, например метода, конструктора или блока инициализации. Чаще всего локальные классы объявляются внутри тела метода. Локальный класс объявленный внутри блока кода другого класса не является членом класса, к которому относится блок, а принадлежит самому блоку, точно так же,…

Ускорение SQLAlchemy для архитектурных космонавтов

Хабр, это доклад инженера-программиста Алексея Старкова на конференции Moscow Python Conf++ 2018 в Москве. Видео в конце поста.Всем привет! Меня зовут Алексей Старков — это я, в свои лучшие годы, работаю на заводе. Теперь я работаю в Qrator Labs. В основном, всю свою жизнь, я занимался C и C++ — люблю Александреску, «Банду Четырех», принципы SOLID — вот это всё. Что и делает меня архитектурным космонавтом. Последние пару лет пишу на Python, потому что мне это нравится. Собственно, кто такие «архитектурные космонавты»? Первый раз я встретил данный термин у Джоэля Спольски, вы наверное его читали. Он описывает «космонавтов», как…

Ускорение SQLAlchemy для архитектурных космонавтов

Поваренная книга Ruby-разработчика: Domain Driven Design рецепты ( 2-я часть, структура и взаимодействие )

Введение
В первой статье мы выделили область применения обозначенных практик, для каких проектов их можно применять, а для каких не следует.
В данной статье я хотел бы сделать краткий обзор основных принципов DDD, а также поделиться личным опытом их применения. Более подробно будет рассказано о коммуникационных и структурных подходах с примерами их реализации.
В следующих статья распишу возможные комбинации применяемых паттернов проектирования с учетом их имплементации, и в конечном итоге приведу пример конкретной реализации одного небольшого микросервиса. Читать дальше → …

Поваренная книга Ruby-разработчика: Domain Driven Design рецепты ( 2-я часть, структура и взаимодействие )