Бейч маркет что это

от admin

Что такое бенчмарк. Объясняем простыми словами

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

Например, к бенчмаркам относятся биржевые и фондовые индексы. Предположим, портфель акций российских компаний за год принёс его владельцу 11% в рублях. Это много или мало? Для сравнения возьмём индекс Мосбиржи, куда входит около 40 топовых российских акций. Если этот индекс за год вырос лишь на 5% (а то и вовсе упал), то результат портфеля становится отличным. И наоборот, если за тот же год индекс Мосбиржи вырос на 20%, портфель с доходностью 11% уже не впечатляет.

Похожим образом бенчмарки работают и при управлении компанией: в качестве ориентира предприниматели выбирают некую метрику, а потом сравнивают свой результат с ней.

«Например, близкая мне по работе метрика — это отношение LTV (life time value) к стоимости привлечения клиента, — рассказал директор по развитию Ecwid в России Владимир Тарасов. — Эталоном считается показатель, равный трём. Если показатель выше, то можно ещё больше пускать денег на привлечение клиентов, а если меньше, то это знак, что что-то идёт не так или канал привлечения совсем слабоват».

Пример употребления на «Секрете»

_«Инвесторы, вложившие свои средства с 1964 года, получили за это время прибыль в 2 млн процентов — в 165 раз больше бенчмарка. Акции, которые 55 лет назад стоили $10 000, сегодня стоили бы $170 млн». _

(Из новости о том, что Уоррен Баффетт сделал миллиардерами десятки инвесторов.)

Происхождение названия

Термин «бенчмарк» (benchmark) пришёл в экономику из геодезии: так называются горизонтальные отметки, высеченные в камне, в которые можно было поместить угольник для измерения уровня. По сути, это точка отсчёта для измерения чего-либо.

Нюансы

На российском фондовом рынке за бенчмарки чаще всего принимают индекс Мосбиржи или РТС, на американском — индекс широкого рынка S&P 500. Для других классов инструментов могут быть другие бенчмарки. Например, для долгового рынка бенчмарком может выступать доходность государственных облигаций (она соответствует «безрисковой» процентной ставке), рассказал аналитик «Фридом финанс» Евгений Миронюк.

Что такое бенчмарк

Откройте счёт с тарифом «Всё включено» за 5 минут, не посещая офис.

проект «Открытие Инвестиции»

Открыть брокерский счёт

Тренировка на учебном счёте

Об «Открытие Инвестиции»

Москва, ул. Летниковская,
д. 2, стр. 4

8 800 500 99 66

Согласие на обработку персональных данных

Размещённые в настоящем разделе сайта публикации носят исключительно ознакомительный характер, представленная в них информация не является гарантией и/или обещанием эффективности деятельности (доходности вложений) в будущем. Информация в статьях выражает лишь мнение автора (коллектива авторов) по тому или иному вопросу и не может рассматриваться как прямое руководство к действию или как официальная позиция/рекомендация АО «Открытие Брокер». АО «Открытие Брокер» не несёт ответственности за использование информации, содержащейся в публикациях, а также за возможные убытки от любых сделок с активами, совершённых на основании данных, содержащихся в публикациях. 18+

АО «Открытие Брокер» (бренд «Открытие Инвестиции»), лицензия профессионального участника рынка ценных бумаг на осуществление брокерской деятельности № 045-06097-100000, выдана ФКЦБ России 28.06.2002 г. (без ограничения срока действия).

ООО УК «ОТКРЫТИЕ». Лицензия № 21-000-1-00048 от 11 апреля 2001 г. на осуществление деятельности по управлению инвестиционными фондами, паевыми инвестиционными фондами и негосударственными пенсионными фондами, выданная ФКЦБ России, без ограничения срока действия. Лицензия профессионального участника рынка ценных бумаг №045-07524-001000 от 23 марта 2004 г. на осуществление деятельности по управлению ценными бумагами, выданная ФКЦБ России, без ограничения срока действия.

Benchmarking. Введение для начинающих

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

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

Инструментарий

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

Нативная структура данных описывающая дату/время.
Все замеры сводятся к тому, что мы замеряем дату перед функцией, затем дату после функции, и берем разницу.

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

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

Единственный случай, где Date может пригодиться, это если вы заменяете скрипты, которые выполняются по несколько секунд, и разница в ± 100 мс для вас не играет никакой роли. Я вообще не рекомендую пользоваться Date для замеров.

Performance.now()

Возвращает временную метку измеряемую в миллисекундах с точностью до одной тысячной миллисекунды.

Для Node.js измерение идет с отсчетом от начала выполнения текущего потока выполнения, а для браузеров от события PerformanceTiming.navigationStart.

Замер времени выполнения функции выглядит вот так:

Performance.now() не только точнее чем Date, но и куда удобнее. Вам не придется проводить каких-либо дополнительных манипуляций с переводом даты в timestamp и обратно, вы сразу получаете число в удобных единицах измерения.

Benchmark.js

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

Benchmark.js довольно гибко позволяет писать тесты. Я вообще использую их в связке с mocha, чтобы их можно было удобно запускать в нужных папках, не запуская при этом ненужные.

Распространенные Ошибки

Замеры производительности только кажутся простым делом. На самом деле есть много подводных камней, которые могут испортить вам всю малину: от компилятора и самого js, до операционной системы.

Оптимизация компилятора

Ошибка характерная только для микробенчмарков и можно ее выразить во фразе:

Давайте посмотрим на функцию для измерения цены получения значения длинны массива.

Функция для замера

*- Этот и все нижеприведенные результаты являются средним значением для тысячи вызовов.

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

Так вот, казалось бы в чем проблема Hrodvitnir? А в том, что это все наглая ложь и не правда. Давайте-ка, запустим вот эту функцию:

А теперь внимание вопрос: мы один раз обратились к полю и выполнили на две операции в секунду меньше.

Ну давайте честно: две операции разницы это разница в 0.28%, и мы можем этим смело пренебречь, и считать оба этих результата эквивалентными. А вот это, в свою очередь должно нас озаботить.

Дело в том, что этот способ замерять время обращения к полю уже устарел. И устарел он примерно тогда же, когда js перестал быть интерпретируемым.

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

И это не единственный вариант, как такое может произойти.

Компилятор умеет манипулировать кодом в циклах, умеет встраивать функции, и т. д. Конкретно эта оптимизация называется LICM.

Вместо этого, мы можем проверить обращение к полю вот так:

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

Замер одних и тех же данных

Это та ошибка, которая водила меня некоторое время за нос.

В качестве аргумента выступает массив от 1 до 1,000,000.

Ниже приведен метод из моей библиотеки, которым мы отфильтровываем все нечетные значения:

В общем-то, неплохо, быстрее даже чем нативный filter и быстрее, чем lodash.
Мы с вами, даже это проверили в статье Нативный — не значит быстрый

Но если мы замерим эту функцию на еще раз на неотсортированном массиве, то получим уже вот такой результат:

На неотсортированном массиве фильтрация идет в два раза дольше. При чем и у меня, и у lodash, и у нативной реализации.

Читать:
Gdipfontcachev1 dat что это за файл

А казалось, всего-то проверили на другом массиве.

Однократный замер

Давайте снова обратимся к замеру отсортированного массива из предыдущего примера и сделаем несколько разовых замеров:

No Результат Средний накопленный
1 30 30
2 27 28.5
3 18 25
4 24 24.75
5 13 22.4

Как видите, первый замер отличается от последнего более чем в два раза, при этом среднее неумолимо отклоняется от первой строчки.

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

Замер в разных условиях

Эта ошибка косвенно связана с предыдущей: делайте замеры выключив все лишние программы.
Чем чище диспетчер задач тем лучше.

Просто, если вы делаете замеры, а параллельно открываете/закрываете браузер, играете в игры и т. д., то, я готов поспорить, что некоторые бенчмарки наверняка покажут причудливые результаты.

Желательно вообще никак не трогать машину. Чем меньше взаимодействия с ней, тем точнее результаты.

Хорошие практики

С вариантами, как запороть тесты мы разобрались, теперь давайте поговорим о том, как сделать их репрезентативнее.

Профилактика оптимизаций компилятора

(О боже, я сказал это вслух).

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

Чтобы такого не происходило, вам надо как можно сильнее «наследить»: в последнем примере мы записывали результат в массив и поэтому компилятор не вынес общий код за цикл. Только таким образом вы можете замерить именно то, что хотели.

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

Лучше делать так:

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

Замеры на разных данных

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

Я поясню, проверяйте на лучших из возможных, на худших из возможных, проверяйте на наборе из средних данных. У вас должна быть полноценная картина о том, насколько ваш код хорош.
В этом плане бенчмарки, как юнит-тесты — покрытие должно быть полным.

В моей библиотеке используется паттерн стратегия и при определенных длинах массивов выбираются определенные алгоритмы и вследствие этого я делаю проверки на массивах длинными от 10,000,000 до 75 элементов.

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

Замеры на боевых данных

Нет лучше данных для проверки, чем данные из продакшена. Особенно, если они покрывают лучшие и худшие варианты.

Если лучшие и худшие варианты априори не возможны, то можно их пропустить.

Если мы проверяем производительность функции, которая обрабатывает нажатие клавиш в текстовое поле из расчета, что клавиши будут нажиматься не чаще, чем 10 символов в секунду, то нет смысла проверять на частоте в 200 символов в секунду.

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

Ведение статистики

Мало собрать данные по производительности кода. Надо их еще правильно обработать, чтобы сделать корректные выводы.

Я, лично, работаю с межквартильным средним.

Формула проста — удаляем 25% самых медленных значений, удаляем 25% самых быстрых значений, а для оставшихся высчитываем среднее. Это позволяет удалить выбросы из выборки и оценивать результаты по средним значениям.

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

Интерпретация значений

У нас есть функция:

У нее есть результат:

А теперь давайте подумаем: это много или мало? Вот на машине помощнее будет в два раза быстрее, а на машине послабее в два раза медленнее. И что нам делать?

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

Возможно это будет ранее написанный вами функционал, и тогда вы сможете оценивать прогресс/регресс вашего кода.

Итоги

Бенчмаркинг это очень увлекательное занятие, которое помогает вовремя заметить проблемные места в коде, и сделать его лучше. Но это кроме того еще и занятие сопряженное со своими трудностями.

В этой статье я старался ответить на вопросы, которые у меня возникали в свое время, старался осветить некоторые интересные моменты.

Бенчмаркинг — что это и как применяется

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

1. Что такое бенчмаркинг простыми словами

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

Согласитесь, перенимать опыт от успешных компаний — это в целом хорошее дело, потому что повышается качество услуг/товаров, снижается стоимость на рынке за счет конкуренции. Причём бенчмаркинга применением практически во всех сферах бизнеса. Сложно назвать отрасль, в котором бы этот подход не давал результаты.

За примерами далеко ходить не надо. Наверняка вы замечали, что любые новые идеи в смартфонах быстро появляются у других моделей (например, две сим карты, две камеры, блокировка по отпечаткам пальцев и т.д.) То же самое в любой бытовой технике, в автомобилях, в компьютерных программах и т.д.

Большинство компаний черпают успешные и хорошие идею друг у друга. В итоге получаются товары высокого качества.

Какие цели бенчмаркинга

  • Избежать ранее совершенных ошибок;
  • Выявить слабые стороны и проблемные места своей деятельности;
  • Адаптировать успешные приёмы конкурентов для собственного успеха;
  • Повысить характеристики продуктов/услуг за счет снижения стоимости, улучшения функционала и качества;
  • Поддерживать высокий уровень конкурентоспособности;

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

Бенчмаркинг не является «маркетинговой разведкой», поскольку он анализирует только открытые источники информации.

2. Виды бенчмаркинга

Выделяют следующие виды:

  1. Внутренний (производственный, как устроен процесс);
  2. Функциональный (сравнение функций работы предприятия);
  3. Конкурентный (на основе показателей в открытом доступе);
  4. Товарный (сравнение товаров);
  5. Усредненный (когда сложно выбрать явно лучший показатель, берут средние значения между несколькими компаниями);
  6. Бенчмаркинг бизнес-процесса;

3. Этапы проведения бенчмаркинга

Для проведения бенчмаркинг потребуется целый ряд последовательных этапов. Всего можно выделить 5 шагов.

1 Определяется проблемная область компании. Иногда заранее это сложно сделать. В этом случае можно анализировать своих прямых конкурентов.

2 Отбор конкурентов.

Выделим пошаговый набор действий:

  • Составляется список всех фирм для анализа;
  • Фильтрация;
  • Ранжирование (успешные, средние, плохие);

3 Составление команды для сравнения (отбор профессионалов, которые будут заниматься сравнением).

4 Сбор и анализ информации. Про этот пункт мы поговорим далее.

5 Внедрение опыта конкурентов.

Не всегда для анализа берутся конкуренты. Возможно некоторые элементы бизнеса реализуются совершенно в других сферах деятельности.

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

4. Какую информацию собирать и анализировать

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

Похожие статьи