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

Бесплатные ФПС: как ИИ помогает сделать игровую графику лучше - 1

В последние годы искусственный интеллект приобретает все большую популярность. Стоит только попросить, и Siri сообщит вам результат футбольного матча, который вы пропустили вчера вечером. Рекомендации в Spotify подскажут, чем пополнить музыкальную библиотеку, а Amazon попытается предсказать, какой продукт вы купите в следующий раз, когда этого еще не знаете даже вы.

Не обошел стороной он и игровую индустрию. Пока в геймерской среде сравнивают графику вышедшей на ПК Death Stranding с технологией DLSS и без нее, на днях стало известно, что в процессорах NVIDIA Ampere будет задействована уже DLSS 3.0. При этом она будет работать с любой игрой с TAA (Temporal Anti-Aliasing) и драйвером Game Ready. Это означает, что разработчикам понадобится подстроить технологию к своим играм — впрочем, этот процесс будет проходить куда легче, чем сейчас.

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

В далеком 2011 году компания Xilinx представила свои первые микросхемы SoC (System On Chip) — Zynq-7000. SoC Zynq сочетает в себе программируемую логику, процессорный модуль и некоторую периферию. Статья не является максимально полным описанием SoC Zynq, а лишь отражает те или иные характеристики, с которыми пришлось столкнуться при разработке устройств на базе SoC Zynq.
Читать полностью »

Статические веб-сайты — это, уже довольно давно, горячая тема. Они быстры, они чрезвычайно безопасны, так как в них нет CMS, которые можно взломать. Правда, после того, как некто создал статический сайт, перед ним встаёт один очень важный вопрос: «А где этот сайт хостить?».

Этот вопрос можно перефразировать так: «Какой хостинг статических сайтов является в 2020 году самым быстрым?». Давайте это выясним!

Исследование производительности хостингов статических сайтов - 1

В 2017 году я искал ответ на похожий вопрос, поэтому полагаю, что здесь интересно будет сравнить старые данные с новыми, и узнать о том, улучшились ли возможности хостинг-провайдеров за 3 года.
Читать полностью »

Обновление atime влияет на производительность системы. Что же там происходит и что с этим делать — читайте в статье.

Как и почему опция noatime повышает производительность Linux-систем - 1

Всякий раз, когда я обновляю Linux на своем домашнем компьютере, мне приходится решать определённые задачи. С годами это вошло в привычку: я делаю резервные копии своих файлов, стираю систему, устанавливаю всё с нуля, восстанавливаю свои файлы, затем заново устанавливаю свои любимые приложения. Я также меняю под себя настройки системы. Порой на это уходит слишком много времени. И недавно я задумался, нужна ли мне эта головная боль.
Читать полностью »

Прим. перев.: эта статья — итоги мини-исследования, проведенного инженерами IBM Cloud в поисках решения реальной проблемы, связанной с эксплуатацией базы данных etcd. Для нас была актуальна схожая задача, однако ход размышлений и действий авторов может быть интересен и в более широком контексте.

Как с fio проверить диски на достаточную производительность для etcd - 1

Краткое резюме всей статьи: fio и etcd

Производительность кластера etcd сильно зависит от скорости хранилища, лежащего в его основе. Для контроля за производительностью etcd экспортирует различные метрики Prometheus. Одной из них является wal_fsync_duration_seconds. В документации к etcd говорится, что хранилище можно считать достаточно быстрым, если 99-й процентиль этой метрики не превышает 10 мс…Читать полностью »

Когда анализируют работу сетевой подсистемы серверов, внимание обычно обращают на такие показатели, как время задержки (latency), пропускная способность системы (throughput), количество пакетов, которое можно обработать за секунду (PPS, Packets Per Second). Эти показатели применяют для того чтобы понять то, под какой максимальной нагрузкой сможет работать исследуемый компьютер. И, хотя эти метрики важны и часто способны многое сказать о системе, они не дают сведений о том, какое воздействие обработка сетевых пакетов оказывает на программы, выполняющиеся на сервере.

Какую нагрузку на серверы создают сетевые механизмы? - 1

Этот материал направлен на исследование нагрузки, создаваемой сетевыми механизмами на серверы. В частности, речь пойдёт о том, сколько процессорного времени решение сетевых задач может «украсть» у различных процессов, выполняющихся в Linux-системах.
Читать полностью »

Сразу объясню название статьи. Изначально планировалось дать хороший, надежный совет по ускорении использования рефлекшена на простом, но реалистичном примере, однако в ходе бенчмаркинга выяснилось, что рефлексия работает не так медленно, как я думал. Да и вообще проблема не с ней. Так как пример достаточно жизненный и реализованный в принципе как обычно делается в энтерпрайзе, получилось достаточно интересная, как мне кажется, демонстрация.
Читать полностью »

Всем давно известно, что на видеокартах можно не только в игрушки играть, но и выполнять вещи, никак не связанные с играми, например, нейронную сеть обучить, криптовалюту помайнить или же научные расчеты выполнить. Как так получилось, можно прочитать тут, а я хотел затронуть тему того, почему GPU может быть вообще интересен рядовому программисту (не связанному с GameDev), как подступиться к разработке на GPU, не тратя на это много времени, принять решение, нужно ли вообще в эту сторону смотреть, и «прикинуть на пальцах», какой профит можно получить. 

Вычисления на GPU – зачем, когда и как. Плюс немного тестов - 1

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

Spring — эффективный роутинг - 1

Виктор Васнецов, Рыцарь на распутье; fatcatart.com

Привет! Здесь краткий пересказ интересной баги c GitHub. Для воспроизведения см. проект spring-flux-callstack.

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

at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:75)
at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:78)
at reactor.core.publisher.Operators.complete(Operators.java:135)
at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:45)
at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52)
at reactor.core.publisher.Mono.subscribe(Mono.java:4110)

Как вы уже поняли, это методы из Project Reactor, который обеспечивает асинхронную работу для Router Function в WebFlux.

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

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

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

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

Процесс загрузки разделим на три этапа. Для каждого этапа сформулируем общие стратегии повышения производительности:

  1. Начальная отрисовка: сколько времени требуется, чтобы пользователь увидел хоть что-то
    • Сократить запросы, блокирующие рендеринг
    • Избегать последовательных цепочек
    • Повторно использовать соединения с сервером
    • Сервис-воркеры для мгновенного рендеринга
  2. Загрузка приложения: сколько времени требуется, чтобы пользователь смог использовать приложение
    • Разбить пакет приложения на части. Загружать только необходимые ресурсы. Максимизация попаданий в кэш
    • Проверить, что хэши частей пакета не меняются без необходимости
    • Запрашивать данные для страницы до загрузки всего приложения
    • Не блокировать рендеринг загрузкой второстепенных данных
    • Рассмотреть рендеринг на стороне сервера
  3. Следующая страница: сколько времени требуется для перехода на следующую страницу
    • Запрашивать дополнительный код до того, как он понадобится
    • Кэшировать и повторно использовать данные на клиенте

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


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