Бенчмарки как критерий естественного отбора                         Сергей Катков                              Intel Corp.
Материалы, размещенные в данной презентации (далее по тексту — "материалы"), предоставлены корпорацией Intel (далеепо текс...
Что такое бенчмаркБенчмарк – это тест на производительность.Бенчмарк может измерять:• Кол-во операций в секунду• Среднее/М...
Пользователи – Бенчмарк – ПроизводителиПользователи                           Бенчмарк                   Производители    ...
Типы бенчмарок    Реальные приложения                                  Микро-бенчмарки    Бенчмарки библиотек             ...
Синтетические бенчмаркиBusiness Applications Performance Corporation         Embedded Microprocessor Benchmark Consortium ...
SPEC - бенчмарки      CPU                                             NFS                                Graphics         ...
SPEC – Java бенчмарки    SPECjbb2005 – оценка производительности серверов для      типичных бизнес приложений на Java. Эму...
SPEC – что можно найти?                                                  ?     Лицензия                                   ...
А подходит ли мне синтетическая бенчмарка?                                Хммм..                     А похоже ли мое прило...
Как создаются синтетические бенчмарки? •   Выбор целевой аудитории для бенчмарка •   Контакты с тем, кто оперирует на этом...
Некоторые из аттрибутов хорошего бенчмарка • Повторяемость результата – что делать, если вы все время   получаете разный р...
Специфика Java - GC (Garbage Collection) List<IterationStatus> result = new ArrayList<IterationStatus>(); private long tes...
Специфика Java - GC (Garbage Collection) private long test() {     long time = System.nanoTime();     func(); // метод, со...
Специфика Java - JIT (Just In Time compilation) private long test() {     long time = System.nanoTime();     for(int i = 0...
Специфика Java - JIT (Just In Time compilation) private long test() {                                      Если Вы тестиру...
Специфика Java - JIT (Just In Time compilation) private long test() {     for(int i = 0; i < N; i++) { // разогрев        ...
Заключение • Используйте бенчмарки для оценки производительности • Оценивайте релевантность бенчмарки Вашим целям • Исполь...
Вопросы19   Бенчмарки как критерий естественного отбора
Upcoming SlideShare
Loading in...5
×

CodeFest 2012. Катков С. — Бенчмарки как критерий естественного отбора

615

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
615
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "CodeFest 2012. Катков С. — Бенчмарки как критерий естественного отбора"

  1. 1. Бенчмарки как критерий естественного отбора Сергей Катков Intel Corp.
  2. 2. Материалы, размещенные в данной презентации (далее по тексту — "материалы"), предоставлены корпорацией Intel (далеепо тексту — "Intel") в качестве услуги потребителям, потенциальным потребителям ее продукции и потенциальнымклиентам исключительно в информативных целях.Обозначения и наименования Intel, Intel®, логотип Intel, являются наименованиями и/или товарными знаками, права накоторые принадлежат корпорации Intel или ее подразделениям на территории США и других стран.*Другие наименования и товарные знаки являются собственностью своих законных владельцев.Результаты тестирования и рейтинговые показатели, полученные с применением конкретных компьютерных систем и/илиих компонентов, отражают приблизительную производительность продукции Intel по данным упомянутого тестирования.Всякое отличие в компоновке или конфигурации аппаратных средств или программного обеспечения может сказаться нареальных показателях производительности. Для оценки производительности тех или иных систем или компонентов передих приобретением покупателям следует обратиться к другим источникам информации. Дополнительные сведения орезультатах тестирования и о показателях производительности продукции Intel доступны в Интернете по адресуhttp://www.intel.com/performance/resources/limits.htm либо по телефону в США 1-800-628-8686 или 1-916-356-3104.Copyright © 2011 Intel Corporation. Данные материалы охраняются авторским правом и защищены нормами международногозаконодательства об охране авторских прав и соответствующих международных соглашений. Без предварительногописьменного согласия корпорации Intel не допускается их копирование, воспроизведение, внесение в них изменений,публикация, загрузка, размещение их в Интернете, пересылка или распространение любыми способами. Если даннымдокументом недвусмысленно не предусмотрено иное, корпорация Intel и ее поставщики не предоставляют пользователюкаких-либо прав собственности, как явных, так и подразумеваемых, в отношении каких-либо патентов, авторских прав,товарных знаков или сведений, составляющих коммерческую тайну. Иные права могут быть предоставлены Вам корпорациейIntel либо в письменной форме, либо путем внесения соответствующих положений в документацию, сопровождающуюматериалы.МАТЕРИАЛЫ ПРЕДОСТАВЛЯЮТСЯ ПО ПРИНЦИПУ "КАК ЕСТЬ", БЕЗ КАКИХ-ЛИБО ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ ГАРАНТИЙ,ВКЛЮЧАЯ, В ЧИСЛЕ ПРОЧЕГО, ГАРАНТИЙ В ОТНОШЕНИИ ИХ РЫНОЧНЫХ КАЧЕСТВ, НЕНАРУШЕНИЯ ПРАВ НАИНТЕЛЛЕКТУАЛЬНУЮ СОБСТВЕННОСТЬ ИЛИ ПРИГОДНОСТИ К ИСПОЛЬЗОВАНИЮ В ТЕХ ИЛИ ИНЫХ КОНКРЕТНЫХ ЦЕЛЯХ. НИПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ КОРПОРАЦИЯ INTEL ИЛИ ЕЕ ПОСТАВЩИКИ НЕ НЕСУТ КАКОЙ-ЛИБО ОТВЕТСТВЕННОСТИ ЗАУЩЕРБ (ВКЛЮЧАЯ, В ЧИСЛЕ ПРОЧЕГО, УПУЩЕННУЮ ВЫГОДУ, ПОСЛЕДСТВИЯ ПРИОСТАНОВКИ ПРЕДПРИНИМАТЕЛЬСКОЙДЕЯТЕЛЬНОСТИ ИЛИ ПОТЕРЮ ДАННЫХ), ВЫТЕКАЮЩИЙ ИЗ ФАКТА ИСПОЛЬЗОВАНИЯ МАТЕРИАЛОВ, ЛИБО НЕВОЗМОЖНОСТИИХ ИСПОЛЬЗОВАТЬ, ЧТО РАСПРОСТРАНЯЕТСЯ И НА ТЕ СЛУЧАИ, КОГДА КОРПОРАЦИЯ INTEL БЫЛА ПРЕДУПРЕЖДЕНА ОВОЗМОЖНОСТИ НАНЕСЕНИЯ ТАКОГО УЩЕРБА. УЧИТЫВАЯ, ЧТО ЗАКОНОДАТЕЛЬСТВО, ДЕЙСТВУЮЩЕЕ В РЯДЕ ЮРИСДИКЦИЙ,НЕ ДОПУСКАЕТ ОГРАНИЧЕНИЯ ИЛИ ОТКАЗА ОТ ОТВЕТСТВЕННОСТИ ЗА ПОБОЧНЫЙ ИЛИ КОСВЕННЫЙ УЩЕРБ, ИЗЛОЖЕННОЕВЫШЕ ПОЛОЖЕНИЕ МОЖЕТ К ВАМ НЕ ОТНОСИТЬСЯ. Корпорация Intel и ее поставщики не гарантируют точности или полнотытекстовой или графической информации, ссылок и иного содержания материалов. Корпорация Intel вправе в любое время ибез предварительного уведомления вносить любые изменения в указанные материалы, а равно и в продукцию, описаниемкоторой они служат. Корпорация Intel не берет на себя каких-либо обязательств по обновлению материалов. 2 Бенчмарки как критерий естественного отбора
  3. 3. Что такое бенчмаркБенчмарк – это тест на производительность.Бенчмарк может измерять:• Кол-во операций в секунду• Среднее/Максимальное время исполнения одной операции• Энерго-эффективность одной операции• Масштабируемость• ...Все что угодно, связанное с производительностью3 Бенчмарки как критерий естественного отбора
  4. 4. Пользователи – Бенчмарк – ПроизводителиПользователи Бенчмарк Производители Продукт Продукт Продукт Продукт4 Бенчмарки как критерий естественного отбора
  5. 5. Типы бенчмарок Реальные приложения Микро-бенчмарки Бенчмарки библиотек Синтетические бенчмарки5 Бенчмарки как критерий естественного отбора
  6. 6. Синтетические бенчмаркиBusiness Applications Performance Corporation Embedded Microprocessor Benchmark Consortium Standard Performance Evaluation Corporation Transaction Processing Performance Council Общепризнанные бенчмарки сделанные некоммерческими организациями Brands, logos and product names appearing on this page are trademarks or registered trademarks of their respective holders.6 Бенчмарки как критерий естественного отбора
  7. 7. SPEC - бенчмарки CPU NFS Graphics Workstation Power MPI/OMP Java Client/Server SIP SOA Virtualization Mail Servers Web Servers7 Бенчмарки как критерий естественного отбора
  8. 8. SPEC – Java бенчмарки SPECjbb2005 – оценка производительности серверов для типичных бизнес приложений на Java. Эмулирует обработку заказов для оптового поставщика. SPECjEnterprise2010 – оценка производительности всей системы, на которой работает сервер приложений, база данных и соответствующая инфраструкутра. SPECjms2007 – оценка производительности серверов использующих JMS (Java Message Service) SPECjvm2008 – оценка производительности JRE (состоит из нескольких реальных приложений и синтетических приложений тестирующих core Java API). SPECpower_ssj2008 – комбинированная бенчмарка, оценивающая производительность и потребление энергии одновременно.8 Бенчмарки как критерий естественного отбора
  9. 9. SPEC – что можно найти? ? Лицензия Описание Результаты Участие9 Бенчмарки как критерий естественного отбора
  10. 10. А подходит ли мне синтетическая бенчмарка? Хммм.. А похоже ли мое приложение на синтетическую бенчмарку? Подробно изучайте описание бенчмарки Поищите другие бенчмарки Настройте бенчмарку10 Бенчмарки как критерий естественного отбора
  11. 11. Как создаются синтетические бенчмарки? • Выбор целевой аудитории для бенчмарка • Контакты с тем, кто оперирует на этом рынке для определения стандартых сценариев • Сбор статистики об всех типах операций со многих приложений из этой области • Создания сценария на основе пропорций типов операций • Тестирование • Определение правил запуска бенчмарка, чтобы сделать возможным корректное сравнение результатов • Ревью бенчмарка всеми компетентными сторонами • Выпуск бенчмарка Для любого бенчмарка важно, чтобы она была широко признана средой. Иначе ей не будут доверять и не будут использовать!11 Бенчмарки как критерий естественного отбора
  12. 12. Некоторые из аттрибутов хорошего бенчмарка • Повторяемость результата – что делать, если вы все время получаете разный результат? • Репрезентативность – сценарий должен соответствоать реальному использованию. • Легкость запуска – бенчмарк прийдется запускать много раз, вы можете например тьюнить систему. Запуск бенчмарки не должен быть головной болью. • Верифицируемость – бенчмарк должен убедиться, что работа реально выполнялась. • Метрики должны быть ясны – вы четко должны понимать, что именно вы получаете. • Анализируемость – бенчмарк должен позволять анализировать свое поведение.12 Бенчмарки как критерий естественного отбора
  13. 13. Специфика Java - GC (Garbage Collection) List<IterationStatus> result = new ArrayList<IterationStatus>(); private long test() { long time = System.nanoTime(); for(int i = 0; i < N; i++) { long startResponseTime = System.nanoTime(); func(); // метод, выполняющий математическое вычисление result.add(new IterationStatus(System.nanoTime() - startResponseTime), …); // Создаем очень большое кол-во новых объектов => GC } long endTime = System.nanoTime(); double avgTime = ((double)(endTime – startTime)) / N; return (long) (1000000000d / avgTime); // Кол-во операций в секунду }13 Бенчмарки как критерий естественного отбора
  14. 14. Специфика Java - GC (Garbage Collection) private long test() { long time = System.nanoTime(); func(); // метод, создающий большое кол-во новых объектов // Возможно при втором запуске этого метода, произойдет вызов GC, // Но мы этого не увидим => неверный результат long endTime = System.nanoTime(); return endTime – startTime; }14 Бенчмарки как критерий естественного отбора
  15. 15. Специфика Java - JIT (Just In Time compilation) private long test() { long time = System.nanoTime(); for(int i = 0; i < N; i++) { func(); // тестируемый метод } long endTime = System.nanoTime(); double avgTime = ((double)(endTime – startTime)) / N; return (long) (1000000000d / avgTime); // Кол-во операций в секунду } Если N мало, то мы будем измерять Интерпретатор Используйте разогрев!!!15 Бенчмарки как критерий естественного отбора
  16. 16. Специфика Java - JIT (Just In Time compilation) private long test() { Если Вы тестируете for(int i = 0; i < N; i++) { // разогрев апплет, который будет исполняться только один func(); // тестируемы метод раз, то Вы получите } слишком оптимистичный результат!!! long time = System.nanoTime(); for(int i = 0; i < N; i++) { func(); // тестируемы метод } long endTime = System.nanoTime(); double avgTime = ((double)(endTime – startTime)) / N; return (long) (1000000000d / avgTime); // Кол-во операций в секунду }16 Бенчмарки как критерий естественного отбора
  17. 17. Специфика Java - JIT (Just In Time compilation) private long test() { for(int i = 0; i < N; i++) { // разогрев private void func() { func(); // тестируемы метод double x = Math.sqrt(2012d); } } long time = System.nanoTime(); for(int i = 0; i < N; i++) { func(); // тестируемы метод } long endTime = System.nanoTime(); double avgTime = ((double)(endTime – startTime)) / N; return (long) (1000000000d / avgTime); // Кол-во операций в секунду } Результат вычислений нигде не используется, JIT может просто выбросить этот код.17 Бенчмарки как критерий естественного отбора
  18. 18. Заключение • Используйте бенчмарки для оценки производительности • Оценивайте релевантность бенчмарки Вашим целям • Используете бенчмарки, которые признаны или которым Вы целиком доверяете • Критически относитесь к результатам бенчмарок, которые получены из недостоверных источников • Если Вы создаете свой бенчмарк: • Убедитесь, что бенчмарк реально тестирует, то что Вы ожидаете • Убедитесь, что тестирумый код реально работает • Сравните полученный результат с ожиданием • Проверьте бенчмарк в разных условиях и сравните результаты • Объясните и докажите себе, что полученный результат действительно правильный18 Бенчмарки как критерий естественного отбора
  19. 19. Вопросы19 Бенчмарки как критерий естественного отбора
  1. ¿Le ha llamado la atención una diapositiva en particular?

    Recortar diapositivas es una manera útil de recopilar información importante para consultarla más tarde.

×