Как стать автором
Обновить

Профилирование, ассемблер и все-все-все

Уровень сложности Сложный
Время на прочтение 19 мин
Количество просмотров 1.5K
Java *
Кейс

Привет, сегодня будет объёмная и обстоятельная статья о низкоуровневом профилировании и дигностике производительности. Многократно в комментариях к докладам и статьям пользователи высказывали пожелание увидеть не просто перечисление шаблонов "как нужно" и "как не нужно", а целостную историю. Поэтому вот вам статья про конкретный кейс и его историю :). Не удивляйтесь, что начнём мы с JPA, хотя казалось бы где оно и где ассемблер. По ходу дела вы всё поймёте.

Читать далее
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 2

Евросоюз хочет убить «Большого брата» в зародыше

Время на прочтение 1 мин
Количество просмотров 1.9K
IT-компании
Правила Евросоюза относительно приватности граждан гораздо строже, чем в США. Правозащитники Старого света ещё раз доказали, что они не допустят того киберпанковского беспредела, который возможен, если поисковые системы продолжат тотальный сбор персональной информации.

Специальная рабочая группа Еврокомиссии опубликовала отчёт, из которого следует, что крупнейшие поисковые системы, в том числе Google, Yahoo и MSN, нарушают европейские законы по защите приватных данных. Они отслеживают поисковую историю отдельных пользователей и хранят её от 18 месяцев до бесконечности, тогда как в Европе максимальный срок хранения таких сведений ограничен 6 месяцами, после чего их нужно либо удалить, либо обезличить (это нормы Data Protection Directive).

Правозащитники подчёркивают, что поисковая история представляет собой «отпечаток личных интересов, связей и намерений гражданина». При этом столь ценные сведения легко доступны не только для рекламодателей, но и для спецслужб и силовых структур, что может привести к катастрофическим последствиям для человека.
Компания Google уже ответила на требования Евросоюза официальным разъяснением, что она первой среди всех поисковых систем якобы уже сделала поисковые логи полностью анонимными. Здесь «Большой брат» явно лукавит, потому что вся «анонимная» поисковая история пользователя доступна для просмотра через его Google-аккаунт, который не является анонимным.
Всего голосов 35: ↑34 и ↓1 +33
Комментарии 59

Калибровка монитора без аппаратного калибратора

Время на прочтение 1 мин
Количество просмотров 26K
Чулан
Gamma 2.2На этой картинке не должно быть видно цветных областей. Чем отчётливее Вы их видите, тем дальше цветопередача Вашего монитора от нормальной. Если хотите это исправить, то эта заметка для Вас.

Сейчас на рынке мониторов царствуют модели с TN-матрицами, калибровать которые можно простым наклоном головы. Но даже на таких мониторах, не говоря уже о *VA/IPS, можно добиться терпимой цветопередачи, не используя аппаратные калибраторы. Этим же способом можно проверить гамма-кривые монитора при покупке.

Суть способа заключается в использовании программы ColorLineTest, также известной как CLTest. На проверку гамма кривых у Вас уйдёт около 30 секунд. За 5-10 минут можно добиться приемлемой цветопередачи. Подробные инструкции находятся в архиве с программой.

Ну а по завершении профилирования можете проверить результаты с помощью обоев от RealColor.ru.
Всего голосов 53: ↑40 и ↓13 +27
Комментарии 55

MS Doloto: оптимизация загрузки Ajax-приложений

Время на прочтение 1 мин
Количество просмотров 1.1K
Ajax *
В MSDN DevLabs выложили программу Doloto, предназначенную для оптимизации любых Ajax-приложений. В соответствии со своим названием, Doloto отсекает код до необходимого минимума, так что приложение быстрее загружается клиенту и быстрее начинает выполняться.

Программа анализирует исходники и выделяет тот фрагмент кода JavaScript, который непосредственно необходим для инициализации программы. Профилирование функций осуществляется на клиентской машине через локальный прокси-сервер http://localhost:8888 во время исполнения Ajax-приложения в браузере. При этом все «ненужные» функции помечаются метками (таймстампы). Прямо на клиентской машине генерируется оптимизированный код Ajax-приложения, в котором «ненужные» функции заменяются маленькими заглушками. Этот код потом будет загружаться в фоновом режиме или по мере необходимости, уже после инициализации основного скрипта. Оптимизированный код сохраняется на жёстком диске клиентского компьютера. Таким образом, можно оптимизировать чужие приложения, даже не имея доступа к их серверам, см. Doloto FAQ.

Программку протестировали на популярных Ajax-интерфейсах и получили впечатляющий результат.
Читать дальше →
Всего голосов 38: ↑32 и ↓6 +26
Комментарии 25

Профилирование PHP-кода

Время на прочтение 3 мин
Количество просмотров 34K
PHP *
Профилирование PHP-кода

Рано или поздно каждый из нас сталкивается с унаследованным кодом и его оптимизацией. Дебаггер и профилировшик в такой ситуации — лучшие помощники программиста. У тех кто работает с PHP, благодаря Дерику Ретансу (Derick Rethans) есть хороший инструмент — xDebug. Информации касательно xDebug много даже в рунете, поэтому речь в этой статье пойдет не о нем.

Наткнувшись на упоминание о профилировщике для PHP я сразу подумал об xDebug ( о проприетарных инструментах от Zend я давно уже успел позабыть ), но на этот раз ошибся — речь пойдет об XHProf.
XHProf

Этот профилировшик был разработан специально для Facebook, а исходный код его был открыт в марте 2009 года.
Читать дальше →
Всего голосов 25: ↑21 и ↓4 +17
Комментарии 20

Visual Studio 2010: работа с новым профайлером

Время на прочтение 3 мин
Количество просмотров 8.1K
Visual Studio *
Перевод
Мне уже довелось демонстрировать, как новая итоговая страница профайлера позволяет проще находить и исправлять проблемы производительности, но порой для поиска требуется больше усилий. В этот раз я углублюсь в своем рассказе в другую фичу VS2010, которая называется Function Details View (детали функции).

Снова для демонстрации я буду использовать приложение PeopleTrax, которое вы можете скачать с CodeBox. У меня есть отчет, который я собрал ранее используя функцию CPU Sampling в профайлере, в котором приложение сильно нагружает CPU (по крайне мере на одном ядре).
Читать дальше →
Всего голосов 73: ↑53 и ↓20 +33
Комментарии 22

Профилирование приложений в Visual Studio 2010

Время на прочтение 6 мин
Количество просмотров 45K
Visual Studio *
Сегодня мы будем замерять производительность нашего приложения с помощью Visual Studio Profiling Tool.

Visual Studio Profiling Tool позволяет разработчикам измерять, оценивать производительность приложения и кода. Эти инструменты полностью встроены в IDE, чтобы предоставить разработчику беспрерывный контроль.
В этом руководстве мы по шагам профилируем приложение PeopleTrax используя Sampling и Instrumentation методы профилирования, чтобы выявить проблемы в производительности приложения.

image

Много картинок.
Читать дальше →
Всего голосов 63: ↑48 и ↓15 +33
Комментарии 24

Работа с Tier Interaction Profiler ( TIP )

Время на прочтение 6 мин
Количество просмотров 1.9K
.NET *
Перевод
Это малоизвестная функция входящая в состав Visual Studio 2010 Premium которой я хочу посвятить немного времени и познакомить вас с ней. Она полезна когда вы пытаетесь определить почему ваше приложение ASP.NET не работает с такой производительностью с которой должно было бы, и как построены запросы приложения к базе данных, улучшают ли они производительность или снижают.
Читать дальше →
Всего голосов 34: ↑26 и ↓8 +18
Комментарии 16

Профилирование python приложений

Время на прочтение 2 мин
Количество просмотров 16K
Python *
Краткая заметка с линками и примерами о профайлинге:
  1. производительности: hotshot или python profile/cProfile + визуализатор логов kcachegrind (есть порт под windows, аналог WinCacheGrind)
  2. использование памяти: dowser с web-интерфейсом

Читать дальше →
Всего голосов 39: ↑35 и ↓4 +31
Комментарии 22

Javascript и canvas в игре «Жизнь» Джона Конвея

Время на прочтение 14 мин
Количество просмотров 20K
JavaScript *
Напишем эту алгоритмическую игру [1] так, чтобы извлечь из неё максимальную образовательную пользу в области алгоритмов, языка Javascript, хорошего стиля программ, умения оптимизировать код. Центральным местом обсуждения будет не игра, а код, способы реализации, оптимизация.

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

Недавно проведённый на Хабре опрос [3] показал реальную картину — 20% программистов написали когда-либо её работающую реализацию, а порядка 10% о ней не слышали. Что ж, тем интереснее будет оставшимся 80% узнать, что можно извлечь из реализации игры.
Читать дальше →
Всего голосов 70: ↑61 и ↓9 +52
Комментарии 23

Веб-сайтам грозит штраф 50 тыс. евро за установку кнопки Facebook Like

Время на прочтение 2 мин
Количество просмотров 5K
Социальные сети и сообщества
Германия отличается даже от европейских соседей — в этой стране наиболее ревностно следят за соблюдением законов о защите приватных данных. Любые попытки внедрить отслеживающую технологию здесь могут наткнуться на судебный запрет. Немецкие домовладельцы заставляют Google удалять дома с фотографий Street View, снифферы в автомобилях Street View тоже впервые обнаружили именно в Германии. Даже функцию распознавания лиц на Facebook хотят поставить вне закона. А теперь в Германии нашли ещё одну онлайновую фичу, которая нарушает права граждан: это кнопка Facebook Like (Gefällt mir).
Читать дальше →
Всего голосов 97: ↑76 и ↓21 +55
Комментарии 197

Запоздалая оптимизация

Время на прочтение 3 мин
Количество просмотров 7.9K
Программирование *
Перевод
Вашему вниманию предлагается перевод статьи Дениса Форбса (Dennis Forbes) "The Sad Reality of Post-Mature Optimization". Превосходные иллюстрации также взяты из оригинальной статьи.

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

На каком этапе разработки пора обратить внимание на производительность? В какой момент оптимизация перестает быть преждевременной и становится своевременной?

Читать дальше →
Всего голосов 133: ↑121 и ↓12 +109
Комментарии 171

Вышел PhpStorm 3.0

Время на прочтение 1 мин
Количество просмотров 4K
PHP *
Доступна для загрузки новая версия PhpStorm — среды разработки для PHP от компании JetBrains. Закачка идет быстро и нас здесь хорошо знают — так что буду краток.

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

  • Анализ кода и поиск дубликатов помогут вам найти потенциальные ошибки и код низкого качества, рефакторинг — безопасно улучшить его
  • Диаграммы классов UML помогут охватить взглядом структуру проекта и семантическое представлений изменений — локальных или из VCS
  • Просмотр результатов профилирования c помощью Xdebug и Zend Debugger
  • Поддержка PhpUnit 3.6 и всех опций командной строки
  • CoffeeScript
  • Рекурсивная синхронизация папок и гибкая настройка исключений FTP/SFTP
  • Microsoft TFS, граф ревизий для git
  • Новый интерфейс для всех операционных систем

Подробности и картинки

Уже скоро: релиз WebStorm 3.0 — поддержка Node.JS, JSLint и JSTestDriver

Работайте с удовольствием!

P.S. Ошибки — в трекер, вопросы — в форум, работа над 3.0.1 уже идет!
Всего голосов 92: ↑90 и ↓2 +88
Комментарии 173

Прагматичный подход к производительности

Время на прочтение 7 мин
Количество просмотров 2.2K
Проектирование и рефакторинг *
Перевод
Является преждевременная оптимизация дорогой в ад? Или подход «потом исправим» превращает программистов из «специалистов» в презираемую всеми «школоту»?

Эти вопросы не имеют четких ответов, тем не менее, в этой статье я постараюсь описать мой собственный подход к производительности. Что я делаю для того, чтобы мои системы работали с приличной скоростью, но не нарушали прочих требований, таких как модульность, сопровождаемость и гибкость.
Читать дальше →
Всего голосов 81: ↑70 и ↓11 +59
Комментарии 26

Профилирование программ в QNX Momentics

Время на прочтение 3 мин
Количество просмотров 15K
Программирование *
Из песочницы

Общие сведения



QNX Momentics Professional Edition (PE) основанная на платформе Eclipse — это полнофункциональный и высокоинтегрированный профессиональный комплект разработчика, который содержит все необходимое для построения и оптимизации приложений для ОСРВ QNX Neutrino. Благодаря широкому набору удобных инструментов – от средств встраивания на процессорную плату до средств удаленной диагностики – комплект QNX Momentics PE обеспечивает единую, гибкую программную среду для всего цикла разработки.

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

В данном руководстве по шагам профилируем учебное, многопоточное приложение sy21 с помощью инструментов QNX System Profiler и QNX Application Profiler, для демонстрации возможностей средств профилирования в QNX Momentics.

Читать дальше →
Всего голосов 34: ↑30 и ↓4 +26
Комментарии 4

Начала отладки и профилирования веб-приложений

Время на прочтение 8 мин
Количество просмотров 17K
Разработка веб-сайтов *
Туториал
Из песочницы

Вступление


Много существует статей на Хабре, описывающих интересные и сложные аспекты веб-разработки, но много существует читателей, которые, находясь в начале своей карьеры веб-разработчика, хотели бы видеть материал, который позволил бы сделать первый шаг от «PHP за 24 часа» до разработки на серьезном уровне, и я хотел бы поделиться своим опытом в этом деле.

Особенности веб-приложения делают его разделенным на две части: клиентскую и серверную. На стороне клиента работает код на JavaScript (может быть, где-то можно найти и VBScript, но мы, пожалуй, не будем рассматривать этот случай), на серверной же — много что, в принципе, но мы рассмотрим PHP, наиболее популярный язык для серверной части веб-приложений. Так же интересно было бы поговорить об отладке и профилировании Flash-приложений на клиентской стороне, но затронутая тема и так обширна, так что пока оставим это.

Так же можно отнести к задачам отладки клиентского кода анализ и валидацию HTML кода. Это, вроде бы, задача не совсем из области программирования, но также немаловажная.

Некоторые части рассмотренных задач уже рассматривались в других статьях, и я предоставил на них ссылки.
Читать дальше →
Всего голосов 32: ↑27 и ↓5 +22
Комментарии 26

PhpStorm 4: результат с первой попытки!

Время на прочтение 1 мин
Количество просмотров 31K
Блог компании JetBrains Разработка веб-сайтов *PHP *
Сделайте еще шаг к идеальной продуктивности ;)

image

Представляем вниманию хабрасообщества PhpStorm 4.0:

  • Полная поддержка PHP 5.4
  • Встроенный Code coverage для PHPUnit
  • Новые PHP code inspections
  • Сообщения PHP Code Sniffer прямо в редакторе
  • Встроенный Drupal-стиль
  • Лучшая в индустрии поддержка JavaScript (включая ECMAScript Harmony)

Читать дальше →
Всего голосов 102: ↑90 и ↓12 +78
Комментарии 225

Нормальное профилирование node.js приложений

Время на прочтение 3 мин
Количество просмотров 11K
Node.JS *

Предисловие


Одним из камней преткновения при разработке на node.js является более сложная, по сравнению с другими современными языками, отладка. Из-за асинхронной структуры кода в большом приложении найти утечку памяти или место интенсивного использования процессора становится затруднительно без специализированных утилит. В разное время для node.js уже создавались инструменты профилирования, но большинство из них либо просто не достаточно удобные, либо перестали поддерживаться разработчиками.

Поиски


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

Первым делом я решил посмотреть не оправился ли node-inspector, который после перехода на node.js 0.6.x перестал поддерживать профилирование CPU и Heap. Оказалось, что в новой версии node-inspector неработающий профайлинг окончательно исключён и теперь это просто debugger. Немного покопавшись в коде старой версии, мне всё же удалось завести профилирование CPU и Heap на node 0.8.x, однако это решение не было идеальным. Чтобы вывести его из состояния «поделки» необходимо было бы заменить устаревший интерфейс WebKit-консоли на современный, переписав приличное количество кода и исправить некоторые проблемы производительности. В целом, решение на основе консоли WebKit мне кажется очень не гибким, поэтому я бросил эту затею и продолжил поиски.

Вот оно


Читать дальше →
Всего голосов 31: ↑29 и ↓2 +27
Комментарии 11

Одержимость производительностью или опыт профилирования в виртуальной среде

Время на прочтение 9 мин
Количество просмотров 14K
Блог компании Parallels Разработка веб-сайтов *
Давайте будем откровенны: неэффективно работающее приложение у большинства разработчиков вызывает дискомфорт. Подчас погоня за производительностью имеет почти спортивную природу, не связанную с прямыми обязанностями. На хабре, как и в жизни многих из нас, найдется немало впечатляющих примеров побед над неэффективностью разного толка. В общем, хороший разработчик не понаслышке знаком с инструментами и техниками профилирования. В этой же статья я хотел бы рассмотреть процесс профилирования в виртуальной среде Parallels Desktop 9 для Mac и VMWare Fusion 5. Под катом ждут тесткейсы, разбор полетов и внутренности гипервизора в самом брутальном виде.
Читать дальше →
Всего голосов 16: ↑16 и ↓0 +16
Комментарии 6

Полиция Чикаго составила список из 400 предполагаемых будущих преступников

Время на прочтение 2 мин
Количество просмотров 32K
Data Mining *
Американская полиция уже несколько лет экспериментирует с автоматической обработкой статистики о преступлениях. Например, в 2011 году в городе Санта-Крус (Калифорния) начали использовать в экспериментальном режиме программу предсказания преступлений. Там на базе статистики преступлений за последние несколько лет вычисляется частотность каждого типа преступлений в разных районах города — и соответствующим образом составляются маршруты для полицейских патрулей с указанием «горячих точек».



Полицейский отдел Чикаго вывел дата-майнинг на новый уровень — и объединил статистику с профилированием. Например, в прошлом году местная пресса писала о том, что полиция составила список наблюдения. В него внесены около 400 граждан, которые по профилю наиболее склонны совершить преступление в ближайшем будущем.
Читать дальше →
Всего голосов 52: ↑41 и ↓11 +30
Комментарии 75