Каждый рубист, поработавший с Ruby On Rails знаком с ORM ActiveRecord. Обсудим одну из предложенных из коробки валидаций, а именно, валидации на уникальность, и почему database_validations gem спасет консистенцию вашей базы данных.
Читать полностью »
Рубрика «performance optimization» - 3
Настоящая валидация на уникальность
2018-11-27 в 18:44, admin, рубрики: activerecord, database optimization, performance optimization, ruby, ruby on railsКротовые норы в JavaScript
2018-10-30 в 7:34, admin, рубрики: javascript, nodejs, performance optimization, переводы, чёрные дырыПривет! Представляю вашему вниманию перевод статьи "Wormholes in JavaScript" автора Mathius Buus.

Компьютеры — интересные машины. В теории они представляются нам идеальными механическими математиками работающими с цифрами и хорошо выполняющими операции сложения, умножения и вычитания.
Однако, такая абстракция довольно обманчива. Она уводит нас от понимания того, что компьютер обрабатывает разные математические операции с разной скоростью. Если вы пишите на JavaScript (или на любом другом языке) и заботитесь о производительности написанных вами алгоритмов, очень важно понимать как работают компьютеры под капотом.
Если мы знаем на что способен компьютер, мы можем использовать кратчайшие пути или кротовые норы, чтобы сделать наши программы намного быстрее, чем мы ожидали.
Что не так с популярными статьями, рассказывающими что foo быстрее чем bar?
2018-08-09 в 12:23, admin, рубрики: performance optimization, php, кавычки, производительность, Разработка веб-сайтов, тестирование производительностиПримечание переводчика: я тоже думал, что время статей "Что быстрее — двойные или одинарные кавычки?" прошло еще 10 лет назад. Но вот подобная статья ("What performance tricks actually work") недавно собрала на Реддите относительно большой рейтинг и даже попала в PHP дайджест на Хабре. Соответственно, я решил перевести статью с критическим разбором этих и подобных им "тестов".
Есть множество статей (и даже целых сайтов), посвященных запуску разнообразных тестов, сравнивающих производительность различных синтаксических конструкций, и заявляющих на этом основании что одна быстрее другой.
Главная проблема
Такие тесты являются неверными по многим причинам, начиная с постановки вопроса и заканчивая ошибками реализации. Но что важнее всего — подобные тесты бессмысленны и в то же время вредны.
- Бессмысленны потому, что никакой практической ценности не несут. Ни один реальный проект еще никогда не был ускорен с использованием методов, приводимых в таких статьях. Просто потому, что не различия в синтаксисе имеют значение для производительности, а обработка данных.
- Вредны потому, что они приводят к появлению дичайших суеверий и — что еще хуже — побуждают ничего не подозревающих читателей писать плохой код, думая при этом что "оптимизируют" его.
Этого должно быть достаточно, чтобы закрыть вопрос. Но даже если принять правила игры и притвориться, будто данные "тесты" имеют хоть какой-то смысл, то выяснится, что их результаты сводятся лишь к демонстрации необразованности тестировщика и отсутствия у него всякого опыта.Читать полностью »
Как собрать аналитику и не убить производительность
2018-06-22 в 13:31, admin, рубрики: android, performance optimization, recyclerview, Песочница, разработка мобильных приложений, Разработка под androidАналитика — это неотъемлемая часть современного мобильного приложения. Аналитика позволяет собрать информацию о пользователе, чтобы развивать и совершенствовать продукт.
Часто сбор информации снижает производительность приложения. Процесс дополнительно нагружает CPU и память, а это высокая цена. Медленная работа приложения может стать причиной негативных отзывов пользователей, снизить рейтинг и привести к потере аудитории.
С такой проблемой столкнулась и наша команда Android-разработчиков во время работы над очередным проектом, который был связан с новостями. Нам нужно было регистрировать отображение каждой новости в списке.
Читать полностью »
Black Friday 2017 глазами IT и разработчиков. Как мы выдержали черную пятницу при увеличении трафика в 10 раз
2018-04-26 в 10:52, admin, рубрики: CDN, e-commerce, Microsoft Azure, performance optimization, virtocommerce, Блог компании Virto Commerce, Разработка под e-commerce, системное администрирование, Управление e-commerceКаждый год Black Friday становится новым вызовом для e-commerce решений. Клиенты получают возможность купить товары по привлекательным ценам, а IT-специалисты получают шквал запросов к серверам, запредельные нагрузки на все ресурсы и недоступность внешних сервисов (таких как платежные системы, ERP и т.д.).

Как мы уже писали ранее, мы работаем с большими интернет-магазинами в разных странах поэтому мы часто сталкиваемся с высокими нагрузками. В данной статье мы расскажем, как прошла Black Friday 2017 на одном из клиентских проектов, реализованном на платформе VirtoCommerce и развернутом в Azure Cloud и как мы смогли выдержать при увеличении трафика в 10 раз.
Читать полностью »
Улучшение производительности посредством контроля доступа
2018-04-12 в 18:20, admin, рубрики: access control, iOS, performance, performance optimization, swift, Программирование, разработка мобильных приложений, разработка под iOSНесколько лет назад команда Apple опубликовала интересную статью Повышение производительности за счет сокращения динамической отправки. Эта статья довольно интересна для прочтения, в которой выделяются тонкие аспекты языка Swift и его компилятора.
В сегодняшней статье я хочу рассказать о производительности в Swift и как на нее влияет контроль доступа. Контроль доступа — это механизм, который иногда упускают из виду начинающие разработчики. Цель данной статьи — показать вам, насколько важно, обдумывать сам код, который вы пишете, и о том, как каждая строка кода впишется в большую картину.

Разбор перформансных задач с JBreak (Часть 2)
2018-03-18 в 9:19, admin, рубрики: compiler optimization, java, java 8, java 9, performance, performance optimization, string, stringbuilder, Блог компании Контур, ПрограммированиеТолько поутихли страсти с первой части разбора, вышедшей на прошлой неделе, как публикую продолжение: сегодня речь пойдёт о второй задаче.
Код второй задачи:
String format(String user, String grade, String company, String message) {
return String.format(
"Он, %s, придумал такие %s задачи. Приду на стенд %s и скажу ему %s",
user, grade, company, message);
}
String format(String user, String grade, String company, String message) {
return "Он, " + user
+ ", придумал такие " + grade
+ " задачи. Приду на стенд " + company
+ " и скажу ему " + message;
}
String format(String user, String grade, String company, String message) {
return new StringBuilder("Он, ")
.append(user)
.append(", придумал такие ")
.append(grade)
.append(" задачи. Приду на стенд ")
.append(company)
.append(" и скажу ему ")
.append(message)
.toString();
}
Условие (упрощённо):
Определить, какие методы быстрые, а какие — медленные (JRE 1.8.0_161).
В поисках перформанса, часть 2: Профилирование Java под Linux
2017-09-28 в 14:24, admin, рубрики: java, linux, perf, performance, performance optimization, profiling, Блог компании JUG.ru Group, высокая производительность, Разработка под LinuxБытует мнение, что бесконечно можно смотреть на огонь, воду и то, как другие работают, но есть и ещё кое-что! Мы уверены, что можно бесконечно говорить с Сашей goldshtn Гольдштейном о перформансе. Мы уже брали у Саши интервью перед JPoint 2017, но тогда разговор касался конкретно BPF, которому был посвящен доклад Саши.
На этот раз мы решили копнуть глубже и узнать фундаментальные проблемы мониторинга производительности и варианты их решения.

Читать полностью »
Профилирование и оптимизация символьных вычислений для будущего сервера
2017-05-07 в 12:37, admin, рубрики: cloudpickle, deserialization, dill, nosql, performance optimization, performance tests, pickle, python, python3, redis, serialization, sympy, высокая производительность, ПрограммированиеПривет! Сегодня хочу поделиться своим небольшим опытом выбора инструментов для организации расчетов на будущем сервере. Отмечу сразу, что в этой публикации речь пойдет не о самом сервере, а скорее об оптимизации символьных вычислений на нем.
Задача
Есть некий функционал, который позволяет пользователям формировать нередко громоздкие формулы следующего общего вида, по которым в дальнейшем необходимо рассчитывать запросы других пользователей.Читать полностью »
Запись при чтении в postgresql: скандалы, интриги, расследования
2017-03-23 в 13:09, admin, рубрики: monitoring, performance optimization, postgresql, Блог компании okmeter.io, высокая производительность, Программирование, системное программирование
Я уже рассказывал про мониторинг запросов postgresql, в тот момент мне казалось, что я полностью разобрался, как postgresql работает с различными ресурсами сервера.
При постоянной работе со статистикой по запросам постгреса мы начали замечать некоторые аномалии. Я полез разбираться, заодно очередной раз восхитился понятностью исходного кода постгреса:)
Под катом небольшой рассказ о неочевидном поведении postgresql.
