Люди, использующие системы контроля версий исходного кода (SVN, Mercurial, Git и т.п.), наверняка часто пользуются возможностью сравнения версий файлов для просмотра внесенных пользователями изменений. Существует множество независимых программ сравнения версий (WinMerge, BeyondCompare и др.). При сравнении версий, как правило, две версии файла показываются рядом друг с другом таким образом, чтобы одинаковые (неизменившиеся) части документов были расположены напротив друг друга, а изменившиеся (добавленные и удаленные) выделяются соответствующим цветом.
Уверен, многим было бы интересно узнать, какие алгоритмы могут использоваться для реализации такого сравнения.
Читать полностью »
Рубрика «оптимизация» - 59
О подходах к сравнению версий файлов
2012-04-24 в 4:45, admin, рубрики: алгоритм, Алгоритмы, контроль версий, оптимизация, Программирование, разработка, расстояние Левенштейна, сравнение, сравнение файлов, хэширование, метки: алгоритм, Алгоритмы, контроль версий, оптимизация, расстояние Левенштейна, сравнение, сравнение файлов, хэшированиеРазмеры массивов в Java
2012-04-19 в 12:13, admin, рубрики: java, массивы, оптимизация, память, метки: java, массивы, оптимизация, памятьРазмеры объектов в 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%. Посмотрим, почему так получилось.
Читать полностью »
Слушаем свои любимые лекции в подкаст- менеджере
2012-04-13 в 9:29, admin, рубрики: android, php, лекции, оптимизация, подкасты, сервер, метки: лекции, оптимизация, серверВступление
Думаю, для многих обитателей одного из лучших IT сайтов России — Хабрахабр, не чуждо желание учиться и познавать новое, совершенствоваться и подниматься на новые ступеньки в собственном уровне развития. Каждый достигает этого по своему, но все же, на мой взгляд, прослушивание лекций на любимую тему- далеко не самый плохой и малораспространенный вариант.
Читать полностью »
Инструкция по применению Yahoo!Answers (стирать руками, нельзя гладить)
2012-03-31 в 8:45, admin, рубрики: seo, оптимизация, Социальные сети и сообщества, ссылкостроение, метки: seo, Yahoo, оптимизация, ссылкостроениеYahoo!Answers SEO guide
Yahoo!Answers (далее y!a) — социальная сеть для людей, у которых есть различные вопросы, и хотят быстро получить на них ответы. Это своеобразный набор тематических форумов для которых правила вопросов и ответов едины. Y!A является мощным инструментом оптимизации в руках СЕО оптимизаторов. Как начинающих, так и “продвинутых”.
.png)
Оптимизатор загрузки JavaScript
2012-03-15 в 10:39, admin, рубрики: javascript, архитектура, Веб-разработка, оптимизация, метки: javascript, архитектура, Веб-разработка, оптимизацияЯ закончил разработку бета-версии своего оптимизатора загрузки JavaScript — jWidget SDK.
github.com/enepomnyaschih/jwsdk/wiki
jWidget SDK — это небольшой скрипт, сборщик (прекомпилятор) вашего JavaScript. Это обертка вокруг YUICompressor, которая автоматизирует сборку проекта и дает очень гибкую конфигурацию. Инструмент совместим с любой архитектурой сервера, со всеми JavaScript-фреймворками. Инструмент бесплатный, с открытым исходным кодом и имеет лицензию LGPL.
Инструмент успешно протестирован на нескольких коммерческих проектах с разной серверной архитектурой. В том числе (не имею права дать ссылки):
— Чистый веб-сервис на Java + AJAX + JS. Особенность приложения: весь-весь-весь контент рендерится динамически через JavaScript, и приложение грузится почти мгновенно благодаря браузерному кэшированию
— Один шахматный клиент на jQuery, встроенный в сайт на Zend Framework
— Клиент одного приложения на Adobe Air
Как не пересчитывать суммы и средние каждый раз
2012-03-10 в 20:36, admin, рубрики: django, orm, sqlite, базы данных, математические формулы, оптимизация, метки: Django, orm, sqlite, базы данных, математические формулы, оптимизацияПредставим, что у нас электронная платёжная система, а в ней в базе данных таблица операций. И мы хотим посчитать, например, какого размера средняя операция. Легко, вот запрос, только долго выполняется:
> SELECT avg(amount) FROM transfer;
65.125965782378
generated in 3850 seconds
А теперь представим, что показатель должен быть свежайшим, а записи в таблицу делаются каждую секунду, и за месяц их набираются миллионы. Или другие требования, но суть та же — агрегировать те же данные каждый раз очень затратно. Обычные базы данных не предлагают таких оптимизаций. Как быть?
Читать полностью »
Блог компании IBM / IT-Лувр
2012-03-08 в 5:34, admin, рубрики: IBM, Maximo Asset Management, Лувр, музей, оптимизация, ремонт, умное здание, управление, метки: IBM, Maximo Asset Management, Лувр, музей, оптимизация, ремонт, умное здание, управление
Всемирно известный Большой королевский дворец, расположенный в Париже и знакомый каждому, от мала до велика, как самый посещаемый в мире музей «Лувр», отныне будет становится более интеллектуальным.
Компания IBM заключила соглашение с правительством Парижа на внедрение системы IBM Maximo Asset Management во все системы музея — начиная от охранных, кондиционирования, и заканчивая системами и методиками реставрации и ремонта, ведь в год в Лувре количество экспонатов, нуждающихся в заботе, достигает 65 000.
Благодаря внедрению интеллектуальной системы управления активами, ЛуврЧитать полностью »
IT-Лувр
2012-03-08 в 5:34, admin, рубрики: IBM, Maximo Asset Management, Лувр, музей, оптимизация, ремонт, умное здание, управление, метки: IBM, Maximo Asset Management, Лувр, музей, оптимизация, ремонт, умное здание, управление
Всемирно известный Большой королевский дворец, расположенный в Париже и знакомый каждому, от мала до велика, как самый посещаемый в мире музей «Лувр», отныне будет становиться более интеллектуальным.
Компания IBM заключила соглашение с правительством Парижа на внедрение системы IBM Maximo Asset Management во все системы музея — начиная от охранных, кондиционирования, и заканчивая системами и методиками реставрации и ремонта, ведь в год в Лувре количество экспонатов, нуждающихся в заботе, достигает 65 000.
Благодаря внедрению интеллектуальной системы управления активами, ЛуврЧитать полностью »
Обработка изображений / [Из песочницы] Реализация RGB-алгоритма изменения контраста изображения
2012-03-05 в 9:49, admin, рубрики: opencv, openmp, Алгоритмы, обработка изображений, оптимизация, метки: opencv, openmp, Алгоритмы, обработка изображений, оптимизация ![Обработка изображений / [Из песочницы] Реализация RGB алгоритма изменения контраста изображения Обработка изображений / [Из песочницы] Реализация RGB алгоритма изменения контраста изображения](https://www.pvsm.ru/images/8500084d02aab5ffea8d0e925eef91fe.png)
Во время работы над программой, предназначенной для обработки видео-потока, возникла необходимость реализовать алгоритм изменения контраста изображения.
Так как программа была предназначена для обработки видео, то от реализации требовалась высокая производительность, в том числе способность обрабатывать видео разрешения Full HD. Код был написан на С++ с использованием библиотеки OpenMP.
Существует несколько алгоритмов изменения контраста, часть из которых рассмотрена в этой статье [1].
Рассмотрим RGB-алгоритм изменения контраста.
Вначале мыЧитать полностью »
Клиентская оптимизация / Оптимизируем работу с шаблонами в Backbone
2012-02-24 в 10:48, admin, рубрики: backbone, javascript, оптимизация, шаблоны, метки: backbone, javascript, оптимизация, шаблоныЗнакомство с javascript-фреймворком Backbone я, как и многие, начинал с todo-туториала, на базе которого строилось дальнейшее использование фреймворка в своих проектах.
Но туториалы заканчиваются, и начинаются рабочие будни.
Думаю, многим знаком такой участок кода (из вышеупомянутого туториала):
window.AppView = Backbone.View.extend({ // Instead of generating a new element, bind to the existing skeleton of // the App already present in the HTML. el: $("#todoapp"), // Our template for the line of statistics at the bottom of the app. statsTemplate: _.template($('#stats-template').html()), ...
Давайте разберемся подробнее:
- декларациюЧитать полностью »
