Рубрика «высокая производительность» - 78

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

  1. Алгоритм подготовлен.
  2. Запуск эксперимента, выходные данные идут в лог.
  3. Перенос данных в эксель.
  4. Постобработка: разбить, группировать, отсортировать.
  5. Строим график, а он кривой — ошибка в эксперименте, переход на шаг 1.

Первая проблема — просто посмотреть как прошел эксперимент занимало очень много времени.

Ладно, пережили, графики построили, время идет, готовим публикацию и выясняется, что в результатах экспериментов не сохранены некоторые параметры запуска алгоритма. Не доглядел. Это уже вторая проблема — хранение метаданных об эксперименте.

Меня как программиста всегда раздражала необходимость «ручной работы». Да график готов, но мы еще что-то вручную подвинем, там перекрасим, тут подрисуем. Каждый раз когда приходят новые данные этот процесс приходится повторять. Третья проблема — перестроение графиков должно быть полностью автоматизированным.

Для решения озвученных проблем я придумал формат хранения данных в JSON и назвал его Measurelook. В этой статье я расскажу о Measurelook и о его применении в подготовке научной публикации.

Как я придумывал и применял формат хранения результатов экспериментов Measurelook - 1

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

Список полезных идей для высоконагруженных сервисов - 1 В этой статье я решил собрать сборную солянку из советов о том, как разрабатывать высоконагруженные сервисы, полученных практическим путем. Для каждого совета я постараюсь приводить небольшое обоснование, без подробностей (иначе статья бы получилась бы сравнима по размеру с войной и миром). Поскольку обоснований я буду приводить не очень много, не стоит воспринимать эту статью, как догму — в каждом конкретном случае приведенные здесь советы могут быть вредны. Всегда думайте своей головой перед тем, как что-то делать.

1. Думайте своей головой и проверяйте факты

Это самое важное. Для вас не должно существовать безусловных авторитетов. Если кто-либо говорит полную чушь, или говорит что-то, что противоречит вашей практике — не прислушивайтесь к таким советам, и не важно, насколько этот человек известный и уважаемый. Если вы разрабатываете большую систему, и она не будет работать хорошо, то спрашивать будут с вас и в данном случае «мы следовали лучшим мировым практикам» оправданием не является. Умение применять нужные технологии в нужном месте и делает вас ценным специалистом, а не слепое следование чьим-то советам — для этого как раз квалификации не требуется.
Читать полностью »

Хранимый код в базе? Не смешите, на дворе 2017 год!

В этом году бренду QIWI исполнилось 10 лет. За это время в нашей основной транзакционной базе накопилось более чем 130 тысяч строк хранимого PL/SQL кода. На Хабре регулярно встречаются статьи о том, как различные команды разработчиков категорически не используют хранимый код в БД, стараясь убрать излишнюю нагрузку с БД и таким образом удешевить систему. По этой теме можно долго дискутировать, и такая точка зрения опровергается, например, вот в этом видео.

Что бесспорно — хранимый PL/SQL код традиционно имел один существенный минус: релиз PL/SQL программы требовал остановки сервиса, поскольку процесс компиляции этого кода должен был получить эксклюзивную блокировку в словаре БД (так называемый library cache pin). Не вовремя запущенная случайная рекомпиляция могла подвесить всю систему. Приходилось регулярно выделять технические окна для релиза PL/SQL кода. Заверенные скриншоты жалоб наших возмущённых клиентов, попавших в такие окна, бережно хранятся в наших архивах. Однако не прошло и 20 лет от создания PL/SQL, как Oracle этот недостаток если не устранил полностью, то существенно смягчил.

Welcome to Oracle Edition-Based Redefinition

Мы не будем приводить детальные примеры кода с использованием Edition-Based Redefinition, а опишем несколько ключевых пунктов проекта по его внедрению. С некоторой натяжкой этот механизм, который принято сокращать до EBR, можно считать системой контроля версий объектов БД внутри самой БД. Теперь приложения способны работать с разными версиями одних и тех же процедур, пакетов и представлений. Однако в БД, кроме кода, есть еще и структуры данных в виде таблиц, и Oracle пришлось придумать способ межверсионной трансформации как самих таблиц, так и данных в них.
Читать полностью »

От переводчика

Не так давно столкнулся с проблемой поиска набора слов в большом тексте. Разумеется главной проблемой стала производительность. Поиск готовых решений порождал больше вопросов, чем давал ответов. Часто я натыкался на примеры использования каких-то сторонних коробок или онлайн-сервисов. А мне в первую очередь нужно было простое и легкое решение, которое в дальнейшем дало бы мысли для реализации собственной утилиты.

Несколько недель назад вышла замечательная англоязычная статься об open-source python-библиотеки FlashText. Эта библиотека предоставляла быстрое работающее решение задачи поиска и замены ключевых слов в тексте.

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

Друзья, приглашаем всех на посвящённый Ignite митап 12 декабря в московском ImpactHub (метро Китай-Город). Такие мероприятия мы хотим регулярно проводить в Москве и Санкт-Петербурге, и надеемся, что они станут местом встреч российских пользователей и разработчиков Ignite, специалистов по In-Memory Computing, а также всех, кто интересуется распределенными системами. Здесь можно будет обсудить любые вопросы, связанные с работой или развитием экосистемы.

На первом митапе мы хотим познакомить вас российскими банком и крупным телекомом, использующими Ignite каждый день.

Программа встречи:

— 18:30: Сбор гостей;
— 19:00: Рассказ о внедрении Apache Ignite в Сбербанке (Михаил Хасин, Сбербанк);
— 19:45: «Как мы построили Complex Event Processing крупного телеком-оператора на Apache Ignite» (Виктор Ходяков, Gridfore);
— 20:30: Секретный доклад;
— 21:15: Общение в кулуарах, заключительный кофе;
— 22:00: Окончание.Читать полностью »

Здравствуйте, уважаемые читатели! Совсем скоро у нас выйдет новая книга о технологиях React и Redux, оригинал — O'Reilly, май 2017

Секреты React и Redux при разработке веб-приложений - 1

Чтобы обрисовать масштабы бедствия круг проблем, которые могут возникать при создании веб-приложений с использованием таких технологий, предлагаем сокращенный перевод статьи Сэмюэла Менденхолла (от 15 ноября), где рассмотрены тонкости работы с React, Redux, Typescript и рассказано, как устранить и упредить проблемы с производительностью в таких приложениях.
Читать полностью »

Не так давно, в конце октября, в Кремниевой долине прошел очередной In-Memory Computing Summit, одним из организаторов и спонсоров которого стала компания GridGain.

Теперь можно получить бесплатный доступ к видеоматериалам и слайдам, которые поделены на два раздела: основные тезисы и доклады.

In-Memory Computing Summit 2017 San Francisco - 1

На саммите было более прочитано более 40 докладов по распределенным системам и вычислениям в памяти. Среди выступавших были сотрудники компаний GridGain, Percona, AMY Robotics, Hazelcast, VoltDB Inc., Dell и других.

Далее мы отдельно упомянем несколько избранных докладов.Читать полностью »

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

tl;dr: меньше кода = меньше парсинг/компиляция + меньше передача + меньше распаковка

Сеть

Когда большинство разработчиков думают о расходах на JavaScript, они размышляют о времени скачивания и выполнения. Отправка большего количества байт JavaScript занимает тем больше времени, чем тоньше канал с пользователем.

Цена JavaScript - 1

Это может стать проблемой даже в странах первого мира, поскольку эффективный тип сетевого соединения у пользователя необязательно 3G, 4G или WiFi. Вы можете сидеть в кафе с WiFi, но быть подключённым к хотспоту через сотовую связь со скоростью 2G.
Читать полностью »

Привет!

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

Как мы переписали архитектуру Яндекс.Погоды и сделали глобальный прогноз на картах - 1

Сперва пару слов про продукт. Погодные карты — способ узнавать погоду, очень популярный на западе и пока что не очень популярный в России. Причиной тому является, собственно, сама погода. Из-за особенностей климата наиболее населенные регионы нашей страны не подвержены внезапным погодным катаклизмам (и это хорошо). Поэтому интерес к погоде у жителей этих регионов скорее бытовой. Так, людям в центральной России важно знать, например, какая погода будет в Москве в выходные или что в четверг в Питере будет дождь. Такую информацию проще всего узнать из таблицы, в которой будет дата, время и набор погодных параметров.

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

В октябре ученые из IBM сообщили о том, что им удалось смоделировать 56-кубитный квантовый компьютер на классическом компьютере. Еще несколько месяцев назад считалось, что перешагнуть барьер в 49 кубитов невозможно.

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

В статье разбираемся, как IBM достигла «невозможного» и какие перспективы это открывает.

«Punch It, Chewie»: смоделирована работа 56-кубитного квантового компьютера - 1Читать полностью »


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