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

Некоторые системные файлы Windows забиты мусором метаданных от Adobe - 1
Доля мусора Adobe XMP в системных файлах Explorer.exe и ApplicationFrame.dll

Объём системных файлов Windows вырос с 250-350 МБ в Windows 98 до 700-800 МБ в Windows XP, а затем до 10-15 ГБ в Windows 7 и продолжает расти. Если вы задавались вопросом, почему дистрибутив Windows 10 занимает так много места на диске, а система потребляет так много оперативной памяти (по сравнению с Linux), то знайте, что маленькая, очень маленькая часть вины за это лежит на компании Adobe. Именно Adobe разработала и продвигает технологию Extensible Metadata Platform (XMP), которая раздувает размер файлов (например, PNG), а затем эти раздутые файлы PNG включаются в состав системных бинарников Windows.

Доля XMP невелика в общем объёме дистрибутива Windows 10 (всего лишь 5341271 лишний байт), хотя в отдельных файлах значительная часть занята лишними метаданными. И это не какие-то цифровые подписи от крякнутой программы Sound Forge, с помощью которой создавались системные WAV-файлы для Windows 95, а совершенно ненужные и неинформативные метаданные PNG.
Читать полностью »

Всем привет! Хочу поделиться своим переводом статьи React is Slow, React is Fast: Optimizing React Apps in Practice автора François Zaninotto. Надеюсь, это кому-то будет полезным.

Краткое содержание:

  1. Измерение производительности React
  2. Почему ты обновился?
  3. Оптимизация через разбиение на компоненты
  4. shouldComponentUpdate
  5. Recompose
  6. Redux
  7. Reselect
  8. Остерегайтесь объектных литералов в JSX
  9. Заключение

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

Хорошая новость в том, что если вы действительно заботитесь о производительности, то сделать React приложение очень быстрым довольно легко. Об этом — далее в статье.Читать полностью »

Мы создаём онлайн-конструктор учетно-отчетных систем. Конструктор позволяет без программирования создать учётное веб-приложение со “стандартной” логикой. Под стандартной логикой имеется ввиду то, что в приложении не будет кнопок в виде бананов, которые делают ровно то, о чём вы подумали. Хотя при желании, логика приложения может быть расширена использованием языков программирования JavaScript (client side, server side), SQL (и вот тогда уже эти кнопки можно сделать).

В статье будут рассмотрены вопросы:

  • Выбора архитектуры приложения при переходе на сервисную модель. Точнее шардинг веб-сервера и бд между пользователями.
  • Оптимизация выполнения динамического кода. Т.е. того кода, который не знает к чему он обращается. Кода использующего метаданные для работы.
  • “Безопасная” архитектура (конечно относительно, как и всё связанное с этой темой) разграничения прав пользователей.
  • Сохранность данных пользователей.

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

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

Часть 0
Часть 1, общие оптимизации

В прошлый раз мы получили ускорение в среднем в 2,5 раза без изменения подхода. В этот раз я покажу, как применять SIMD-подход и получить ускорение еще в 3,5 раза. Конечно, применение SIMD для обработки графики не является ноу-хау, можно даже сказать, что SIMD был придуман для этого. Но на практике очень мало разработчиков используют его даже в задачах обработки изображений. Например, довольно известные и распространенные библиотеки ImageMagick и LibGD написаны без использования SIMD. Отчасти так происходит потому, что SIMD-подход объективно сложнее и не кроссплатформенный, а отчасти потому, что по нему мало информации. Довольно просто найти азы, но мало детальных материалов и разбора реальных задач. От этого на Stack Overflow очень много вопросов буквально о каждой мелочи: как загрузить данные, как распаковать, запаковать. Видно, что всем приходится набивать шишки самостоятельно.

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

Примеры реальных патчей в PostgreSQL: часть 3 из N - 1

Сегодня я хотел бы вновь рассказать о некоторых патчах, принятых за последнее время в PostgreSQL (а также утилиту pg_filedump). Аналогичные статьи, опубликованные на Хабре ранее, набрали достаточно много плюсиков, что заставляет думать, что они представляют для кого-то интерес. Если вы пропустили предыдущие статьи, вот они — раз, два, три. Несмотря на то, что рассмотренные патчи были написаны мной, не стоит забывать о вкладе людей, которые их ревьювили и тестировали. Проделанная этими людьми работа зачастую оказывается больше и сложнее работы самого автора. Особо активное участие в разработке рассмотренных пачтей приняли Федор Сигаев, Robert Haas, Tom Lane, Дмитрий Иванов, Григорий Смолкин, Andres Freund, Анастасия Лубенникова и Tels. Читать полностью »

Микрооптимизации важны: предотвращаем 20 миллионов системных вызовов - 1

Эта публикация — логическое продолжение поста «Как настройка переменной окружения TZ позволяет избежать тысяч системных вызовов». Здесь мы рассмотрим характерную ситуацию, когда микрооптимизации (например, удаление системного вызова) очень сильно влияют на производительность.

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

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

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

Lead

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

Доброго времени суток. Уже столько сказано о методах деконволюции изображений, кажется добавить больше нечего. Однако всегда найдется алгоритм лучше и новее предыдущих. Не так давно был описан итерационный алгоритм, имеющий линейную скорость сходимости при малых затратах памяти, стабильный и хорошо распараллеливаемый. А через некоторое время он был улучшен еще и до квадратичной сходимости. Встречайте: (Fast) Iterative Shrinkage-Thresholding Algorithm.

Еще один алгоритм для восстановления смазанных изображений - 1
Читать полностью »

Всем известно, что преждевременная оптимизация — это плохо и надо себя одёргивать когда, возникает желание пооптимизировать не вовремя. Однако на практике чаще бывает ситуация когда естественное (и, возможно, интуитивно правильное) желание пооптимизировать подавляется по принципу «если вообще не оптимизировать — это не будет преждевременно». Либо так:

Своевременная оптимизация - 1

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

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

Стратегия без тактики – это самый медленный путь к победе.
Тактика без стратегии – это просто суета перед поражением.
Сунь Цзы.

image

Холистический маркетинг включает себя:

  • Внешний маркетинг: коммуникации, продукт, каналы.
  • Маркетинг отношений: покупатели, партнеры, конкуренты.
  • Внутренний маркетинг: топ-менеджмент, отдел продаж, другие отделы.
  • Социальная ответственность: этика, право, общество.

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

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


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