Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Разработка на PC и производительность — Memory Latency

Разработка веб-сайтов *
Herb Sutter (автор Exceptional C++, бывший глава ISO C++ standards committee, мистер Free Lunch Is Over и прочая, и прочая) работает в Microsoft и иногда по средам читает атомные лекции.

Я наконец-то на одну такую попал, и очень радовался. На умных мужиков всегда радостно поглядеть и послушать.
Для отчета — кроме Херба, видел живого Олександреску и живого Walter Bright (который "D").

Лекция называлась «Machine Architecture: Things Your Programming Language Never Told You» (здесь можно скачать презентацию и видео) и была про конкретную часть abstraction penalty — Memory Latency.

Я попытаюсь коротко рассказать о ключевой мысли лекции. Она простая, очевидная и тысячу раз сказанная. Думаю, еще раз повторить азбуку — никогда не повредит.
Читать дальше →
Всего голосов 142: ↑135 и ↓7 +128
Просмотры 9.3K
Комментарии 70

Протокол SPDY ускорит Сеть вдвое

Высокая производительность *
Разработчики из компании Google только что объявили, что работают над новым сетевым протоколом SPDY (читается как SPeeDY, то есть «быстрый»), который должен проапгрейдить протокол HTTP и значительно повысить скорость работы всех типов соединений.

SPDY позволяет вдвое уменьшить задержку (latency) при работе через HTTP. Делается это за счёт трёх методов:

1) мультиплексирование запросов;
2) расстановка приоритетов для запросов;
3) сжатие заголовков HTTP.

Чтобы продемонстрировать все возможности SPDY, инженеры Google подняли тестовый веб-сервер и выпустили специальную версию браузера Chrome.

По итогам предварительного тестирования на канале максимальной толщины, выигрыш в скорости загрузки для 25 крупнейших сайтов интернета составлял до 55%.
Всего голосов 73: ↑69 и ↓4 +65
Просмотры 3.7K
Комментарии 87

Лондонская биржа поставила европейский рекорд по скорости транзакций

Финансы в IT
После перехода на Linux Лондонская фондовая биржа во время первых же тестов поставила новый европейский рекорд по скорости выполнения транзакций (latency).

Новая торговая платформа MillenniumIT (Linux, Sun Solaris Unix, БД Oracle) позволила сократить среднюю задержку обработки транзакций до 126 микросекунд, в то время как у основных европейских конкурентов LSE этот показатель гораздо выше. Например, на биржах BATS Europe и Chi-X он составляет 250 и 175 мкс, соответственно. У других бирж доходит до 300 или 400 мкс.
Читать дальше →
Всего голосов 76: ↑61 и ↓15 +46
Просмотры 1.1K
Комментарии 91

Скорость света становится бутылочным горлышком для скоростного трейдинга

Финансы в IT
Физики из Массачусетского технологического института хотят помочь финансистам создать оптимальную структуру дата-центров для скоростного (высокочастотного) трейдинга. Как известно, в этой разновидности трейдинга ключевым преимуществом является скорость получения данных. Например, при размещении хостинга на одной площадкой с серверами биржи можно добиться задержки менее 500 микросекунд. Для сравнения, скорость прохождения импульса (скорость света) между двумя максимально удалёнными точками на земном шаре составляет 67 миллисекунд — в 135 раз медленнее! В реальности заявка из Нью-Йорка размещается на Лондонской бирже за 50 мс, то есть невообразимо медленно. Это делает невозможным высокочастотный трейдинг на заокеанских площадках.
Читать дальше →
Всего голосов 49: ↑37 и ↓12 +25
Просмотры 3.5K
Комментарии 70

Лондонская биржа наконец-то запустила торги на Linux-платформе

Настройка Linux *
После успешных тестов Лондонская фондовая биржа запустила полноценные торги для всех участников на новой торговой платформе, основанной на Novell SUSE Linux.

«Лондонская фондовая биржа рада подтвердить, что система Millennium Exchange теперь вступила в действие», — сказано в информационном сообщении для клиентов, которое опубликовано в понедельник.
Читать дальше →
Всего голосов 79: ↑58 и ↓21 +37
Просмотры 2.5K
Комментарии 28

Из Лондона в Гонконг за 176 миллисекунд

Чулан
Очередное достижение телекоммуникационных компаний, которые обслуживают интересы высокочастотных трейдеров. Компании BSO Network Solutions удалось добиться пинга в 176 мс на бэкбоне из Лондона в Гонконг — это рекордный результат для каналов связи между городами, в которых расположены две из крупнейших в мире фондовых бирж.

Как сообщается, ранее трейдерам для арбитража приходилось пользоваться каналом Trans-Siberian Section. Он проходил в обход некоторых районов России из-за трудностей прокладки оптоволокна в тех местах. Новая магистраль задействует канал Transit Mongolia и новые участки «чёрного» оптоволокна в России и Китае, за счёт чего получился маршрут, который более близок к прямой линии. Время отклика удалось сократить более чем на 20 мс.

Как можно понять, роль России очень важна в разборках между высокочастотными трейдерами, потому что кратчайший путь из Европы в Азию проходит именно через Россию.
Читать дальше →
Всего голосов 20: ↑13 и ↓7 +6
Просмотры 532
Комментарии 3

Сделаем TCP быстрее

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

1. Увеличьте первоначальный размер congestion window до 10 (IW10). Сейчас в начале TCP-соединения отправляется три пакета данных в три раунда (RTT) для передачи небольшой информации (15 КБ). Наши эксперименты показывают, что IW10 уменьшает сетевую задержку для веб-соединений более чем на 10%.

2. Уменьшите первоначальный таймаут с 3 секунд до 1 секунды. RTT в 3 секунды был приемлем пару десятилетий назад, но в современном интернете нужен гораздо меньший таймаут. Наше обоснование для этого хорошо задокументировано здесь.
Читать дальше →
Всего голосов 107: ↑97 и ↓10 +87
Просмотры 21K
Комментарии 32

Почему трансатлантический пинг быстрее, чем вывод пиксела на экран

Разработка игр *
«Я могу отправить IP-пакет в Европу быстрее, чем вывести пиксел на экран. Какого хрена?», — спросил Джон Кармак в своём твиттере. Поскольку его твит вызвал широкий резонанс в сообществе, Кармак пояснил, что для замера задержки на наголовном дисплее Sony HMZ-T1 использовал программку, которая меняет содержимое буфера по нажатию клавиши на контроллере, и видеокамеру 240 fps. Затем считал количество кадров между нажатием кнопки и сменой пиксела.
Читать дальше →
Всего голосов 108: ↑94 и ↓14 +80
Просмотры 4.6K
Комментарии 83

Передача данных с помощью нейтрино

Высокая производительность *
Физик Гарвардского университета Александр Висснер-Гросс (Alexander Wissner-Gross) в интервью Wired высказал мнение, что через 20-30 лет крупнейшие финансовые компании мира начнут использовать ускорители заряженных частиц и нейтринные детекторы, чтобы передавать данные напрямую через Землю. Хотя скорость нейтрино не больше, чем скорость света, но за счёт сокращения маршрута удастся уменьшить latency на несколько десятков миллисекунд.

Опыты по передаче данных с помощью нейтрино уже были. Как раз весной этого года учёные передали информацию с ускорителя в Фермилаб на нейтринный детектор, расположенный в километре от него. Правда, скорость передачи данных во время эксперимента составила всего 0,1 бита в секунду. Но учёные уверены, что с помощью правильной модуляции могут повысить пропускную способность на один-два порядка.
Читать дальше →
Всего голосов 37: ↑30 и ↓7 +23
Просмотры 9.3K
Комментарии 231

Создание многопользовательской realtime игры на node.js

Разработка игр *Node.JS *
Перевод


Несколько месяцев назад мы с коллегами решили сделать многопользовательскую realtime игру, которая могла бы работать в вебе. Мы решили использовать node.js для нашего сервера. Это решение привело к очень убедительному успеху — наш сервер работал несколько месяцев без единого падения или перезагрузки процесса.

Мы решили написать нашу игру на node.js, потому что мы слышали много хорошего об этой платформе и очень хотели немного с ней поиграть. И это было потрясающе — мы очень быстро вошли в тему. Для node.js существует множество любопытных библиотек, способных решать абсолютно разные задачи. Побочным преимуществом использования node для серверной части является, собственно, javascript — очень простой в обращении язык. Это позволило нам сфокусироваться на проблемах, которые встречаются во всех realtime играх, без лишней суеты, ограничений и необходимости компилировать код, как это случается при использовании менее динамических языков.

Также node.js проявил себя как очень легковесный язык, даже в моменты пиковой нагрузки. Для нашей игры, процесс node.js использовал только один поток и потреблял всего около 3-4% CPU при одновременной работе 8-10 копий игры, каждая со своим собственным движком обнаружения столкновений.
Читать дальше →
Всего голосов 64: ↑59 и ↓5 +54
Просмотры 52K
Комментарии 47

Реактивный манифест

Анализ и проектирование систем *Параллельное программирование *
Перевод
В последние годы требования к приложениям значительно изменились. Десятки серверов, время отклика в несколько секунд, оффлайновое обслуживание, которое могло длиться часами, гигабайты данных — такими были большие приложения буквально несколько лет назад. Сегодня же приложения работают абсолютно на всём, начиная с простых мобильников и заканчивая кластерами из тысячи процессоров. Пользователи ожидают миллисекундного времени отклика и стопроцентного аптайма, в то время как данные выросли до петабайтов.

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

Новые требования требуют новых технологий. Предыдущие решения делали упор на управляемые сервера и контейнеры. Масштабирование достигалось засчёт покупки более крутых серверов и использования многопоточности. Для добавления новых серверов приходилось применять комплексные, неэффективные и дорогие проприетарные решения.

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

Читать дальше →
Всего голосов 24: ↑21 и ↓3 +18
Просмотры 48K
Комментарии 15

Результаты применения SPDY на сайтах Google

Разработка веб-сайтов *IT-стандарты *
Ровно четыре года назад компания Google анонсировала протокол SPDY, который задумывался как апгрейд для HTTP 1.1 с целью значительно повысить скорость работы всех типов соединений. SPDY позволяет вдвое уменьшить задержку (latency) при работе через HTTP. Делается это за счёт трёх методов: 1) мультиплексирование запросов; 2) расстановка приоритетов для запросов; 3) сжатие заголовков HTTP.

Первые «лабораторные» тесты SPDY показали увеличение скорости загрузки веб-страниц на 55%, в мобильных сетях — на 23%. Впрочем, независимые тесты на реальных сайтах не показали вообще никакой прибавки производительности. Одна из причин — у реальных сайтов ресурсы подгружаются с разных доменов, в том числе с тех, где нет поддержки SPDY.

За прошедшие четыре года многое изменилось. Сам SPDY оптимизирован и вырос до версии 3.1, и его решено сделать основой для протокола следующего поколения HTTP 2.0. Нынешняя реализация поддерживается во всех современных браузерах, в том числе Chrome, Opera, Firefox и даже Internet Explorer, в десятках серверных платформ и на многих крупных сайтах.
Читать дальше →
Всего голосов 60: ↑45 и ↓15 +30
Просмотры 12K
Комментарии 17

Почему биржа это IT-компания?

Блог компании Московская Биржа C *
“А какой материал вы собираетесь размещать в корпоративном блоге, вы же не ИТ-компания?” – именно такой вопрос нам задали, когда мы обратились в Habrahabr с просьбой открыть корпоративный аккаунт. И в очередной раз убедились, что пора выходить из тени, и рассказывать о том, что любая биржа — и Московская Биржа в том числе – это, в первую очередь, высокотехнологичная компания со своими торгово-клиринговыми системами, продвинутой IT-инфраструктурой, масштабными разработками и широким набором различных сервисов.

Успешная работа большинства крупных компаний зависит от IT-разработок, в частности, их современности, надежности и производительности. Для примера, в среднем до 30% сотрудников ведущих мировых бирж – это IT-специалисты, занятые разработкой торговых платформ, их сопровождением, а также аппаратной части. И Московская Биржа полностью в тренде.

Биржа – это торговая площадка, основная задача которой – чтобы конечный клиент купил или продал необходимый ему объем актива по устраивающей его цене, в определенный им самим момент времени, и гарантированно получил этот актив на свой счет депо или денежные средства от его продажи на свой расчетный счет.

Любая из всех вышеперечисленных процедур сегодня происходит в электронном виде.
image
Читать дальше →
Всего голосов 22: ↑16 и ↓6 +10
Просмотры 21K
Комментарии 14

Илья Григорик о внедрении HTTP/2

Клиентская оптимизация *IT-стандарты *
Известный специалист по серверной и клиентской оптимизации, соавтор WebRTC, автор книги "High Perfomance Browser Networking" Илья Григорик из Google опубликовал презентацию “HTTP/2 all the things!”, в которой объясняет, как следует настраивать серверную часть под HTTP 2.0, чтобы повысить скорость загрузки страниц и уменьшить latency, по сравнению с HTTP 1.1.


Режим Connection View в браузере показывает загрузку элементов заглавной страницы Yahoo.com в HTTP 1.1

Илья начинает с того, что для современных сайтов бóльшая часть задержек приходится на ожидание загрузки ресурсов, при этом полоса пропускания не является ограничивающим фактором (синим цветом на диаграмме Connection View). По статистике, для загрузки средней веб-страницы браузер делает 78 запросов к 12 различным хостам (общий размер загружаемых файлов 1232 КБ).
Читать дальше →
Всего голосов 44: ↑42 и ↓2 +40
Просмотры 38K
Комментарии 27

Семь принципов создания современных веб-приложений

Ajax *Разработка веб-сайтов *
Перевод
Tutorial
Эта статья основана на моей презентации с конференции BrazilJS в августе 2014 года. Она базируется на идеях, о которых я писал в блоге недавно, в основном, в связи с UX и производительностью.

Я хочу представить 7 действенных принципов для веб-сайтов, которые хотят применить JavaScript для управления UI. Эти принципы являются результатом моей работы как веб-дизайнера, но также как давнего пользователя WWW.

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

В то же время существует ряд вопросов относительно его роли и конкретного использования, на которые многие затрудняются ответить, в том числе авторы фреймворков и библиотек.

  • Должен ли JavaScript использоваться как замена функциям браузера: история, навигация, рендеринг?
  • Умирает ли бэкенд? Нужно ли вообще рендерить HTML?
  • Правда ли, что будущее за приложениями на одной странице (Single Page Applications, SPA)?
  • Должен ли JS генерировать страницы на веб-сайте и рендерить страницы в веб-приложениях?
  • Нужно ли использовать техники вроде PJAX или TurboLinks?
  • Каково точное отличие между веб-сайтом и веб-приложением? Должно ли остаться что-то одно?
Читать дальше →
Всего голосов 108: ↑99 и ↓9 +90
Просмотры 182K
Комментарии 33

Файловая система Linux полностью на tmpfs — скорость без компромиссов

Высокая производительность *
Из песочницы

Предыстория


Так сложилось, что уже пять лет мой раздел ntfs с операционной системой Windows располагается на рамдиске. Решено это не аппаратным, а чисто программным способом, доступным на любом ПК с достаточным количеством оперативной памяти: рамдиск создается средствами загрузчика grub4dos, а Windows распознаёт его при помощи драйвера firadisk.

Однако до недавнего времени мне не был известен способ, как реализовать подобное для Linux. Нет, безусловно, существует огромное количество линуксовых LiveCD, загружающихся в память при помощи опций ядра toram, copy2ram и т. д., однако это не совсем то. Во-первых, это сжатые файловые системы, обычно squashfs, поэтому любое чтение с них сопровождается накладными расходами на распаковку, что вредит производительности. Во-вторых, это достаточно сложная каскадная система монтирования (так как squashfs — рид-онли система, а для функционирования ОС нужна запись), а мне хотелось по возможности простого способа, которым можно «вот так взять и превратить» любой установленный на жесткий диск Linux в загружаемый целиком в RAM.

Ниже я опишу такой способ, который был с успехом опробован. Для опытов был взят самый заслуженный дистрибутив Linux — Debian.
Читать дальше →
Всего голосов 83: ↑74 и ↓9 +65
Просмотры 113K
Комментарии 165

Альтернатива HLS для iOS Safari — потоковое видео через Websocket

Разработка веб-сайтов *JavaScript *Разработка под iOS *Разработка мобильных приложений *
Из песочницы
image

Apple HTTP Live Streaming — широко распространенная технология для доставки видео на мобильные устройства, которая делает ставку на простоту, универсальность и проходимость. В качестве протокола доставки используется самый простой, доступный и проверенный протокол Интернета HTTP, что позволяет доставить видео практически на любое устройство или ПО в сети.

Ниже под катом рассматривается альтернатива — Websocket Streaming для iOS Safari и подробно описывается процесс тестирования.
Читать дальше →
Всего голосов 17: ↑16 и ↓1 +15
Просмотры 23K
Комментарии 15

Сборщик мусора в Go: решение проблемы отзывчивости в Go 1.5

Высокая производительность *Программирование *Системное программирование *Go *
Перевод
Данный материал представляет собой перевод блог поста, который в реальном времени ведут ребята из Sourcegraph с конференции GopherCon 2015, которая проходит в эти дни в Денвере, Колорадо. Полное видео и слайды доклада будут добавлены к посту, как только будут доступны.

Ричард Л. Хадсон (Рик) знаменит по своим работам в управлении памятью, включая изобретение алгоритмов Train, Sapphire и Mississippi Delta, а так же GC stack maps, которые позволили реализовать сборку мусора в статически-типизированных языках вроде Java, C# и Go. Под его авторством были опубликованы документы о рантаймах языков, управлении памятью, многопоточности, синхронизации, моделей памяти и транзакционной памяти. Сейчас Рик является одним из членов команды Go в Google и работает над проблемами сборщика мусора и рантайма.


Читать дальше →
Всего голосов 30: ↑26 и ↓4 +22
Просмотры 20K
Комментарии 81

Трансляция онлайн-видео с минимальной задержкой

Работа с видео *
Не так давно к нам обратился клиент, который занимается видео-трансляциями аукционов и лошадиных скачек в прямом эфире. Сами мероприятия проходят в Австралии, а вот ставки на них делаются игроками в Макао — игровой столице Юго-Восточной Азии. Разумеется, он столкнулся с задержкой сигнала — как без неё. Задержка — это время между взятием кадра и его появлением на экране конечного устройства. И если обычному зрителю задержка в 5 или даже 10 секунд не критична, то тем, кто ставит на тотализаторе, подобная разница может стоить огромных денег. Отсюда возникла задача — свести к минимуму время прохождения видео от источника к зрителю.

В итоге задача была решена, удалось снизить задержку во всей цепочке до 500 мс. Вспомнился заодно случай, когда с помощью нашего софта другой клиент уменьшил время вещания видео с Андроида на экран компьютера до 1-2 секунд, что оказалось лучшим показателем по сравнению в другими вариантами, которые он пробовал.

Мы подумали, что некоторые техники, которые мы применили, будут интересны не только нам.

Итак, цепочку доставки видео схематично можно разделить на 6 этапов: съёмку, сжатие, передачу по локальной сети от энкодера к медиа-серверу, передача через интернет, декодирование и отображение на устройстве пользователя.



Посмотрим, чем определяются издержки на каждом из этапов и как их можно сократить.
Читать дальше →
Всего голосов 15: ↑10 и ↓5 +5
Просмотры 44K
Комментарии 32

Производительность приложений на основе PostgreSQL: явные и скрытые задержки

PostgreSQL *
Перевод
Если вы пытаетесь оптимизировать производительность Вашего основанного на PostgreSQL приложения, Вы наверняка пользуетесь базовыми инструментами: EXPLAIN (BUFFERS, ANALYZE), pg_stat_statements, auto_explain, log_statement_min_duration, и т.д.

Возможно Вы смотрите в сторону конфликтов блокировок с помощью log_lock_waits, следите за поведением ваших контрольных точек и т.д.

Но задумывалились ли Вы о задержках в сети? Игроки знают о ней, но имеет ли это отношение к Вашему серверу с приложением?

image

Читать дальше →
Всего голосов 17: ↑16 и ↓1 +15
Просмотры 12K
Комментарии 3
1