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

Если вы любите серфить в интернете с мобильного устройства и периодически замечали, что при посещении Википедии ваш смартфон разряжается значительно быстрее, чем при чтении статей на Хабре, то теперь этому есть разумное объяснение.
Команда исследователей из Стенфордского Университета провела работу по изучению зависимости разряда батареи от того, какой сайт при этом был открыт в мобильном браузере.
В качестве тестируемого аппарата было выбрано устройство на Android с 3G-интернетом, на котором открывались популярные сайты, среди которых такие как CNN, BBC, Gmail, Amazon, Microsoft, eBay, Yahoo, Facebook, IMDB, Apple и Wikipedia.

«Плохие» сайты разряжают батарею мобильных устройств
Читать полностью »

Люди, использующие системы контроля версий исходного кода (SVN, Mercurial, Git и т.п.), наверняка часто пользуются возможностью сравнения версий файлов для просмотра внесенных пользователями изменений. Существует множество независимых программ сравнения версий (WinMerge, BeyondCompare и др.). При сравнении версий, как правило, две версии файла показываются рядом друг с другом таким образом, чтобы одинаковые (неизменившиеся) части документов были расположены напротив друг друга, а изменившиеся (добавленные и удаленные) выделяются соответствующим цветом.
Уверен, многим было бы интересно узнать, какие алгоритмы могут использоваться для реализации такого сравнения.
Читать полностью »

Размеры объектов в Java уже обсуждались на Хабре, например, здесь или здесь. Мне бы хотелось подробнее остановиться на размерах многомерных массивов — простая вещь, которая для меня стала неожиданной.

Оптимизируя вычислительный алгоритм по памяти, я наткнулся на то, что при определённых (вполне разумных) входных параметрах создаётся массив float[500][14761][2]. Сколько он может занимать в памяти (на HotSpot 1.6.0_26 32bit, если кому интересно)? Я примерно прикинул, что 500*14 761*2*sizeof(float) = 500*14 761*2*4 = 59 044 000 байт плюс какой-то оверхед. Решив проверить, как на самом деле, я воспользовался Eclipse Memory Analyzer (невероятно волшебная вещь, рекомендую!) и обнаружил, что «Retained Heap» для этого массива составляет 206 662 016 байт! Неплохой оверхед — 350%. Посмотрим, почему так получилось.
Читать полностью »

Вступление

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

Yahoo!Answers SEO guide

Yahoo!Answers (далее y!a) — социальная сеть для людей, у которых есть различные вопросы, и хотят быстро получить на них ответы. Это своеобразный набор тематических форумов для которых правила вопросов и ответов едины. Y!A является мощным инструментом оптимизации в руках СЕО оптимизаторов. Как начинающих, так и “продвинутых”.

image

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

Я закончил разработку бета-версии своего оптимизатора загрузки JavaScript — jWidget SDK.

github.com/enepomnyaschih/jwsdk/wiki

jWidget SDK — это небольшой скрипт, сборщик (прекомпилятор) вашего JavaScript. Это обертка вокруг YUICompressor, которая автоматизирует сборку проекта и дает очень гибкую конфигурацию. Инструмент совместим с любой архитектурой сервера, со всеми JavaScript-фреймворками. Инструмент бесплатный, с открытым исходным кодом и имеет лицензию LGPL.

Инструмент успешно протестирован на нескольких коммерческих проектах с разной серверной архитектурой. В том числе (не имею права дать ссылки):

— Чистый веб-сервис на Java + AJAX + JS. Особенность приложения: весь-весь-весь контент рендерится динамически через JavaScript, и приложение грузится почти мгновенно благодаря браузерному кэшированию
— Один шахматный клиент на jQuery, встроенный в сайт на Zend Framework
— Клиент одного приложения на Adobe Air

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

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

> SELECT avg(amount) FROM transfer;
65.125965782378
generated in 3850 seconds

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

Как не пересчитывать суммы и средние каждый разЧитать полностью »

Блог компании IBM / IT ЛуврВсемирно известный Большой королевский дворец, расположенный в Париже и знакомый каждому, от мала до велика, как самый посещаемый в мире музей «Лувр», отныне будет становится более интеллектуальным.

Компания IBM заключила соглашение с правительством Парижа на внедрение системы IBM Maximo Asset Management во все системы музея — начиная от охранных, кондиционирования, и заканчивая системами и методиками реставрации и ремонта, ведь в год в Лувре количество экспонатов, нуждающихся в заботе, достигает 65 000.

Благодаря внедрению интеллектуальной системы управления активами, ЛуврЧитать полностью »

IT ЛуврВсемирно известный Большой королевский дворец, расположенный в Париже и знакомый каждому, от мала до велика, как самый посещаемый в мире музей «Лувр», отныне будет становиться более интеллектуальным.

Компания IBM заключила соглашение с правительством Парижа на внедрение системы IBM Maximo Asset Management во все системы музея — начиная от охранных, кондиционирования, и заканчивая системами и методиками реставрации и ремонта, ведь в год в Лувре количество экспонатов, нуждающихся в заботе, достигает 65 000.

Благодаря внедрению интеллектуальной системы управления активами, ЛуврЧитать полностью »

Обработка изображений / [Из песочницы] Реализация RGB алгоритма изменения контраста изображения

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

Так как программа была предназначена для обработки видео, то от реализации требовалась высокая производительность, в том числе способность обрабатывать видео разрешения Full HD. Код был написан на С++ с использованием библиотеки OpenMP.

Существует несколько алгоритмов изменения контраста, часть из которых рассмотрена в этой статье [1].

Рассмотрим RGB-алгоритм изменения контраста.
Вначале мыЧитать полностью »


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