Рубрика «оптимизация»

Внутреннее представление и оптимизации строк в JavaScript-движке V8: «отмываем» строки, «обгоняем» C++ - 1


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

В этой статье я хочу рассмотреть, как могут быть представлены строки в движке V8. Попытаюсь продемонстрировать их эффект, обогнав C++ в очень честном бенчмарке. А также покажу, в каких случаях они могут, наоборот, привести к проблемам с производительностью, и что в таких случаях можно сделать.Читать полностью »

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

Короче, в Австралии есть цифровая медицина. Сделана она руками русских разработчиков.

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

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

Ускоряйте принятие решений - 1

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

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

image

Сегодня окунёмся в мир, который можно потрогать. В этой статье мы исследуем, как с нуля, быстро и без особо сложной математики написать движок для игры от первого лица. Для этого мы воспользуемся приёмом под названием «бросание лучей» (raycasting). Возможно, вы видели примеры такой техники в играх Daggerfall и Duke Nukem 3D, а из более свежего – в статьях из «ludum dare» от Нотча Перссона. Что ж, для Нотча это неплохо, но не для меня! Вот демка (управление стрелками и тачпадом) [источник].Читать полностью »

Разработчики — налево, методологи — направо: четыре шага к оптимизации работы BI-аналитиков - 1

Привет! Меня зовут Наташа Базанова, я старший аналитик Selectel. В компании я работаю три года: за это время команда аналитиков сильно расширилась, число задач и их амбициозность выросли. Как и любая другая команда, мы столкнулись с проблемами, связанными с несовершенством бизнес-процессов.

В этом тексте расскажу, что мы предприняли, чтобы работать эффективнее и слаженнее. Спойлер: для этого нам пришлось разделиться на две команды, но это тот случай, когда расставание пошло на пользу. Надеюсь, кому-то наш опыт и рекомендации пойдут на пользу — сэкономят время, деньги и нервы. А если вы проходили подобный путь, делитесь своей историей в комментариях!
Читать полностью »

Хочу поделиться своей историей расследования одной довольно необычной компиляторной оптимизации. Необычна она в том плане, что для нее производятся довольно нетривиальные математические вычисления. Приступим!

Чем я пользовался

Есть такой замечательный сайт: Compiler ExplorerЧитать полностью »

Уважаемые читатели, в этой статье я хочу рассказать о небольших тестах со строками и представить свои выводы. Тесты сделаны на .net 7.

Все коды представлены для повторения но отмечу, что больше всего удивили циклы.

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

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

Хочется начать с string.Replace, который проверяется разными вариантами, начиная с базового:

Читать полностью »
FlexGen на практике: получится ли запустить тяжелую модель без мощной видеокарты - 1

От таких штук нас обещает избавить FlexGen при работе с текстовыми моделями.

Ранее я рассказывал про создание виртуальной подруги на основе текстовой модели GPT-J, которую можно развернуть локально. Ожидаемый недостаток этой идеи — большие «аппетиты» текстовых моделей по отношению к вычислительным ресурсам. Собственно, мой последний эксперимент состоялся только благодаря карточке A100 в сервере.

В конце февраля группа исследователей опубликовала FlexGen — решение для запуска масштабных текстовых моделей в среде с ограниченными ресурсами. В теории оно должно помочь обойтись ресурсами персонального ПК, без добавления мощных видеокарт. Под катом расскажу о FlexGen и его применимости в существующем проекте.Читать полностью »

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

В текущей статье, рассмотрим темы - n+1, пагинация и индексы. Приятного чтения!

Описание приложения

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

Почему десктопные приложения работают на веб-платформе? - 1


Где мы свернули не туда? Как получилось, что современный десктопный GUI по умолчанию использует платформу HTML/CSS/JavaScript, которая изначально не предназначена для нативной работы на десктопе? Она создана конкретно для браузера и веба. Зачем из нативного софта делать веб-страницы в браузерной оболочке?

Джефф Этвуд (автор Stack Overflow) предсказал этот феномен ещё в 2007 году. Он тогда сформулировал так называемый закон Этвуда:

Любое приложение, которое можно написать на JavaScript, будет в итоге написано на JavaScript.

Так и вышло.
Читать полностью »


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