|
|
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Коллеги кто нибудь знает утилиты для подсчета cache miss/ cache hit в Java приложениях ? Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2017, 19:36 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
semensemenovichКоллеги кто нибудь знает утилиты для подсчета cache miss/ cache hit в Java приложениях ? Заранее спасибо. Там в общем то легко сделать свою внутреннюю статистику зачем еще один уровень над JPA городить. Обычно если не в кеше то пишешь в лог, что в кеше не оказалось иду в базу. По логу можно собрать в том же Splunk всю статистику когда и при каких обстоятельств не было в кеше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2017, 22:02 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
semensemenovichКоллеги кто нибудь знает утилиты для подсчета cache miss/ cache hit в Java приложениях ? Заранее спасибо. это от языка не зависит 1) счетчики performance для Linux - для любого приложения покажут. Я не использовал, хотя было нужно, т.к. работал "на живую" на продакшен сервере и ставить под рутом приложения, с которыми я первый раз сталкиваюсь, мне было боязно. 2) Intel VTune вроде с Java работать умел/умеет https://software.intel.com/en-us/node/544058 если не побаловаться, а по серьезному... то кроме Intel VTune при всем богатстве выбора - другой алтернативы нет AFAIK. Но он платный. Java на нем НЕ профилировал, но вроде он с Java умеет работать. Последняя trial версия, которую год назад видел, была вообще не рабочая ))) саппорт Intel рекомендовал взять/найти предыдущие версии ))) или купить ))) На фига выкладывать на сайт нерабочие trial версии - мне не понятно ))) такой хитрый маркетинг наверное ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2017, 00:51 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
VTuneAnalyzing Hardware Metrics VTune Amplifier also provides an advanced profiling option of optimizing Java applications for the CPU microarchitecture utilized in your platform. Although Java and JVM technology is intended to free a developer from hardware architecture specific coding, once Java code is optimized for the current Intel microarchitecture, it will most probably keep this advantage for future generations of CPUs. You may use theHardware Event-based Sampling Collection data collection that monitors hardware events in the CPU's pipeline and can identify coding pitfalls limiting the most effective execution of instructions in the CPU. The CPU Metrics Reference are available and can be displayed against the application modules, functions, and Java code source lines. You may also run the Hardware Event-based Sampling Collection with Stacks when you need to find out a call path for a function called in a driver or middleware layer in your system. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2017, 01:17 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
как-то так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2017, 09:15 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
semensemenovichЯ про https://en.wikipedia.org/wiki/CPU_cache Это задача далеко выходящая за рамки классического программирования на Java. Спешу спросить. А какие решения ты будешь принимать на основе полученных данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2017, 09:46 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
maytonsemensemenovichЯ про https://en.wikipedia.org/wiki/CPU_cache Это задача далеко выходящая за рамки классического программирования на Java. Спешу спросить. А какие решения ты будешь принимать на основе полученных данных? Высокопроизводительные приложения на Java Прошу только не задавайте мне вопрос почему мы не пишем на С и С++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2017, 12:39 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev, chabapok, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2017, 12:42 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
chabapokкак-то так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Коллега, простите за немный вопрос, а Вы не знаете аналогичной тулы для MacOs ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2017, 12:46 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
semensemenovichmaytonпропущено... Это задача далеко выходящая за рамки классического программирования на Java. Спешу спросить. А какие решения ты будешь принимать на основе полученных данных? Высокопроизводительные приложения на Java Прошу только не задавайте мне вопрос почему мы не пишем на С и С++. Я не буду спрашивать про С++. Обычно производительность современного приложения (бизнес-приложения) зависит от производительности сети (если вы ее используете) дисков и БД. И тюнить кеши процессора следует в том случае когда вы исчерпали возможности тюнинга алгоритма и того что я перечислил выше. Что у вас за алгоритм? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2017, 14:19 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
maytonОбычно производительность современного приложения Ох коллега как же вы далеки от разработки по настоящему серьезного софта. То о чем Вы говорите это разработка энтерпрайз бизнес приложений. Я занимаюсь несколько другими задачами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2017, 18:05 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Так приблизьте меня, коллега. Устал я уже далеко так сидеть. Что за алгоритм-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2017, 18:07 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
maytonТак приблизьте меня, коллега. Устал я уже далеко так сидеть. Что за алгоритм-то? Для начала простой вопрос Что быстрее ArrayList или LinkedList ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2017, 18:08 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
semensemenovichmaytonТак приблизьте меня, коллега. Устал я уже далеко так сидеть. Что за алгоритм-то? Для начала простой вопрос Что быстрее ArrayList или LinkedList ? О боже. Так издалека? Тогда отвечу. Смотря на каких операциях. И давайте перейдем сразу к мясному меню. Что там? Расчет сопротивления материалов? Рендеринг 3D? Копание bitcoins? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2017, 18:15 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
maytonsemensemenovichпропущено... Для начала простой вопрос Что быстрее ArrayList или LinkedList ? О боже. Так издалека? Тогда отвечу. Смотря на каких операциях. И давайте перейдем сразу к мясному меню. Что там? Расчет сопротивления материалов? Рендеринг 3D? Копание bitcoins? Конкретно я сортирую данные ))) Надо написать так дизайно хранения данных в памяти чтоб это было наиболее дружественно с точки зрения кешей CPU и соответственно достигалась бы скорость сортировки большая или равная той что выдает JDK Arrays.sort ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2017, 18:17 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
maytonТогда отвечу. Смотря на каких операциях. Какая из этих структур наиболее эффективно дает использование кешей CPU (минимизирует CACHE MISSES) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2017, 18:19 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
semensemenovichmaytonТогда отвечу. Смотря на каких операциях. Какая из этих структур наиболее эффективно дает использование кешей CPU (минимизирует CACHE MISSES) Ну...я-бы взял Array т.к. есть больше гарантий что соседние элементы (если они примитивы) располагаются рядышком в адресной памяти и соотв у меня больше контроля над ситуацией. Я могу работать блоками кратными кешам и соотв повышать эффективность отклика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2017, 18:23 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
semensemenovichmaytonпропущено... О боже. Так издалека? Тогда отвечу. Смотря на каких операциях. И давайте перейдем сразу к мясному меню. Что там? Расчет сопротивления материалов? Рендеринг 3D? Копание bitcoins? Конкретно я сортирую данные ))) Надо написать так дизайно хранения данных в памяти чтоб это было наиболее дружественно с точки зрения кешей CPU и соответственно достигалась бы скорость сортировки большая или равная той что выдает JDK Arrays.sort А какой тип данных сортируется? Какой ключ? И каково value? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2017, 18:26 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
semensemenovichа Вы не знаете аналогичной тулы для MacOs ? Не знаю, я не яблофил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2017, 19:17 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
semensemenovichНадо написать так дизайно хранения данных в памяти чтоб это было наиболее дружественно с точки зрения кешей CPU и соответственно достигалась бы скорость сортировки большая или равная той что выдает JDK Arrays.sort Кроме кэшей в процессоре есть целая куча других агрегатов, которые задействованы в алгоритме. И перфоманс каунтеры есть далеко не у всех агрегатов. Обычно на сколь-нибудь реальной (и даже синтетической) задаче, если вы оптимизируете алгоритм под дружественный для одного агрегата - то он будет недружественным для других агрегатов. А так, чтобы угодить всем и сразу - не бывает. Разумеется, это не означает, что вопрос производительности надо вообще забыть, а лишь означает, что особо надежд на подобного рода оптимизации лучше не возлагать. Расскажу вам поучительную историю из личного опыта. Решил я разобраться с утилитой perf, заодно и код для оптимизации подвернулся - пример mandelbrot с сайта benchmarks game. Тут надо сделать такую ремарку. То, что на этом сайте меряется неправильно - это ясно. Однако основная цель была не мерять перфоманс - а пощупать утилиту perf. И вобщем, я внимательно посмотрел код: нашел несколько мест в которых можно, согласно моим представлениям, улучшить показатели - и поправил этот код. И ожидаемые показатели действительно улучшились, при этом все остальные либо остались на том же уровне, либо тоже улучшились. Ну супер же? Только вот, единственное, что возросло - это время исполнения. Перформенс-тюнер от бога, бгг ) На самом же деле, немножко поразмыслив над ситуацией, я понял, что там далеко не все обвешено счетчиками производительности, по крайней мере на amd. И я грубо говоря, переписав алгоритм, стал более активно использовать агрегат, у которого нет счетчика, и за счет этого получилась просадка. Эти все моменты, пока их сам не пощупаешь - они все равно не очевидны. Все равно тебе кажется - "щас вот тут подкручу - и станет лучше", но в большинстве случаев из этого ничего не получится. Касаемо Arrays.sort - это, мне кажется, вообще канонический случай, в котором подкрутить уже ничего не выйдет. Единственное что - это если известны некоторые особенности значений данных, которые лежат в массиве, то может можно как-то оптимизировать под эти конкретные особенности, за счет просадки на данных без этих особенностей. Вообще же, оптимизировать Arrays.sort - это примерно как сказать, что килограмм недостаточно килограммистый, англосаксы из международной палаты мер и весов охренели и диктуют миру неверное значение килограмма - и поэтому срочно нужен новый импортозамещенный эталон, дайте денег на это... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2017, 20:19 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
chabapok, добавлю еще несколько наблюдений 1) Лет несколько назад я был не кодером а ДБА. Натурально. И вот как-то я заметил неоптимальность в юзкейсах биллинговой системы. Я заметил что оператору приёма платежей не удобно искать услуги за последний месяц и сортировку по дате услуги. Оператор делал проще. Он выбирал ВСЕ услуги клиента за все года и выводил на экранчик PowebBuilder приложения top 10 услуг по дате. Я забил тревогу. Я видел в Oracle планы курсоров которые бегают по всем услугам с 1996 года. Но оператору было пофиг он просто делал свою работу. Ему лень сделать мышко-клик указывая последний месяц но не лень подождать пару-минут другую. Я крепо задумался. Сортировка - зло. Она не нужна для всей выборки. Нужна сортировка последнего периода или двух. 2) Еще одно наблюдение. Очень часто задачи на собеседование предсавляют собой "сферическую сортировку" в вакууме. Выставляются требования как в контестерах. Алгоритм должен работать не более чем 3000 мс и сортировать 1Гиг целых чисел (к примеру). При этом за кадром остаются следующие вопросы - каким образом эти данные туда попали? Телепортировались? Возможно они качались через wget/ftp/scp e.t.c. и прочее. - как быстро процесс потребитель (consumer) или пользователь сможет этот 1Гиг данных осознать (обработать). Не лучше-ли ему дать Iterator от TreeMap? Не лучше-ли подготовить структуру данных наподобие TreeMap и тихонечко поддерживать ее в актуальном состоянии в памяти а то и вовсе в БД (BerkeleyDB/B+Tree)? 3) Сортировка - самый тяжелый по КПД алгоритм. Можно сказать это краш-тест для канала памяти. В worst сценариях она двигает каждый элемент коллекции и если у вас был 1Гиг worst данных - то весь Гиг будет перелопачен в памяти. Никакому байтику не будет пощады. И с этой вводной я начинаю. Я не осуждаю сам алгоритм сортировки. К нему нет претензии. Я спрашиваю. Вам реально необходимо на каждое пользовательское событие сортировать? Или есть какие-то обходные сценарии? Можно-ли изменить SR таким образом чтобы убрать сортировку за скобки нашего бизнес процесса? Что-там с producer? Это БД? А пускай сортирует. У нее есть бесконечный объем $TMP и способность генерировать сортированные курсоры гораздо гибче чем мы напишем на Java. SQL - реально лучший DSL для выборок. А мы прогоним цикл транформаций на java уже по сортированной ResultSet и выдадим красивый и быстрый результат. Не знаю что там у автора с MacOS. Явно не сервак. Не ставят серваки на Mac обычно. 4) Борьба с Arrays.sort. Выше автор попросил чтобы мы не спрашивали его о С++. Но я замечу в скобках что часть внутренних функций типа строковых операций переписана на С++ для повышения перформанса. И возможно что на некоторых методах Arrays::sort работает не java-кода а intrinsic. В этом случае автор попадает в смешное положение. Впрочем автору это надо проверить. Вообще человеку но осознать даже мегабайт сортированных данных. Ему нужна более мелкая под-выборка. Вот ради этого и стоит пересматривать ТЗ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2017, 21:34 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
chabapoksemensemenovichНадо написать так дизайно хранения данных в памяти чтоб это было наиболее дружественно с точки зрения кешей CPU и соответственно достигалась бы скорость сортировки большая или равная той что выдает JDK Arrays.sort Кроме кэшей в процессоре есть целая куча других агрегатов, которые задействованы в алгоритме. И перфоманс каунтеры есть далеко не у всех агрегатов. Обычно на сколь-нибудь реальной (и даже синтетической) задаче, если вы оптимизируете алгоритм под дружественный для одного агрегата - то он будет недружественным для других агрегатов. А так, чтобы угодить всем и сразу - не бывает. Разумеется, это не означает, что вопрос производительности надо вообще забыть, а лишь означает, что особо надежд на подобного рода оптимизации лучше не возлагать. Расскажу вам поучительную историю из личного опыта. Решил я разобраться с утилитой perf, заодно и код для оптимизации подвернулся - пример mandelbrot с сайта benchmarks game. Тут надо сделать такую ремарку. То, что на этом сайте меряется неправильно - это ясно. Однако основная цель была не мерять перфоманс - а пощупать утилиту perf. И вобщем, я внимательно посмотрел код: нашел несколько мест в которых можно, согласно моим представлениям, улучшить показатели - и поправил этот код. И ожидаемые показатели действительно улучшились, при этом все остальные либо остались на том же уровне, либо тоже улучшились. Ну супер же? Только вот, единственное, что возросло - это время исполнения. Перформенс-тюнер от бога, бгг ) На самом же деле, немножко поразмыслив над ситуацией, я понял, что там далеко не все обвешено счетчиками производительности, по крайней мере на amd. И я грубо говоря, переписав алгоритм, стал более активно использовать агрегат, у которого нет счетчика, и за счет этого получилась просадка. Эти все моменты, пока их сам не пощупаешь - они все равно не очевидны. Все равно тебе кажется - "щас вот тут подкручу - и станет лучше", но в большинстве случаев из этого ничего не получится. Касаемо Arrays.sort - это, мне кажется, вообще канонический случай, в котором подкрутить уже ничего не выйдет. Единственное что - это если известны некоторые особенности значений данных, которые лежат в массиве, то может можно как-то оптимизировать под эти конкретные особенности, за счет просадки на данных без этих особенностей. Вообще же, оптимизировать Arrays.sort - это примерно как сказать, что килограмм недостаточно килограммистый, англосаксы из международной палаты мер и весов охренели и диктуют миру неверное значение килограмма - и поэтому срочно нужен новый импортозамещенный эталон, дайте денег на это... Коллега спасибо за помощь и экспертизу Подскажите, пожалуйста, а какие еще значимые агрегаты есть у процессора ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2017, 23:34 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
maytonКакой ключ? И каково value? bytes ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2017, 23:34 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
chabapok Вообще же, оптимизировать Arrays.sort Я не оптимизирую Arrays.sort Просто мои данные преставлены не в виде Java объектов в в виде серилизованного потока байтов в специальном виде. И надо из отсортировать со скорость как если бы это была сортировка аналогичного массива объектов при помощи Arrays.sort. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2017, 23:37 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
mayton не java-кода а intrinsic. Работает всегда асеммблерный код в конечном итоге ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2017, 23:59 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Нужно смотреть доку по конкретному процу от производителя. Они есть как у интел, так и у амд. Там в каждой микроархитектуре по-разному. И в доках там все разрисовано более-менее подробно. Где вы упретесь в "бутылочное горлышко" - предугадать практически невозможно, и в зависимости от того так, или иначе написана ваша реализация, бутылочное горлышко будет в том, или ином месте. Просто про эти кэшмиссы полон интернет - и стало "модно" это оптимизировать. У меня, например, создалось впечатление, что довольно легко просадить шину память-кэш, просто сделав одновременно по кэшмиссу каждым ядром. В этом случае (на конкретно моем компе) мало того, что идут просто кэшмиссы, так еще и шина передачи перегружена - и каждое ядро ждет не только свои данные - но освобождения шины, и это тоже занимает время. И счетчика на это нет. Это чисто по ощущениям. Возможно, на серверах пропускная способность этой шины выше, и такой проблемы нет. Еще у меня в проце есть некий общий stalled-cycles-backend, который говорит, мол 50% времени проц ничего не делал, это пропущенные циклы. А что именно он ждал - это ты уже сам догадывайся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 00:59 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
semensemenovichПросто мои данные преставлены не в виде Java объектов в в виде серилизованного потока байтов в специальном виде. И надо из отсортировать со скорость как если бы это была сортировка аналогичного массива объектов при помощи Arrays.sort().Э-э-э ... И как вы себе это представляете, если у Arrays.sort() нет ни одной сигнатуры для сортировки "сериализованного потока байт"? Ну и опять-таки, с "классическим" вариантом соперничать собрались или с Arrays. parallel Sort()? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 05:57 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
semensemenovichmaytonКакой ключ? И каково value? bytes В таком виде? Код: java 1. 2. 3. 4. А какова длина ключа и значения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 09:00 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
maytonsemensemenovichпропущено... bytes В таком виде? Код: java 1. 2. 3. 4. А какова длина ключа и значения? ЯПросто мои данные преставлены не в виде Java объектов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 09:38 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovsemensemenovichПросто мои данные преставлены не в виде Java объектов в в виде серилизованного потока байтов в специальном виде. И надо из отсортировать со скорость как если бы это была сортировка аналогичного массива объектов при помощи Arrays.sort().Э-э-э ... И как вы себе это представляете, если у Arrays.sort() нет ни одной сигнатуры для сортировки "сериализованного потока байт"? Ну и опять-таки, с "классическим" вариантом соперничать собрались или с Arrays. parallel Sort()? ЯЯ не оптимизирую Arrays.sort ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 09:39 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
semensemenovich, Это просто поразительно. Из тебя информацию надо тянуть клещами. Я давно невстречал в форуме таких стеснительных А теперь слушай месседж. Эффективность любого алгоритма сортировки Основана на том что мы знаем гистограмм у данных которую надо сортировать Когда я тебя спрашивал о длине ключа то я хотел выйти на оценку этой возможности. В некоторых случаях подсчет неуникальных ключей будет эффективнее самой сортировки. Иногда анализ монотонных последовательностей даёт возможности применить слияние и Переключить алгоритм на другой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 09:49 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
maytonsemensemenovich, Это просто поразительно. Из тебя информацию надо тянуть клещами. Я давно невстречал в форуме таких стеснительных А теперь слушай месседж. Эффективность любого алгоритма сортировки Основана на том что мы знаем гистограмм у данных которую надо сортировать Когда я тебя спрашивал о длине ключа то я хотел выйти на оценку этой возможности. В некоторых случаях подсчет неуникальных ключей будет эффективнее самой сортировки. Иногда анализ монотонных последовательностей даёт возможности применить слияние и Переключить алгоритм на другой. 1) На ты мы с Вами не переходили. 2) mayton Эффективность любого алгоритма сортировки Основана на том что мы знаем гистограмм у данных которую надо сортировать Да в курсе я. А к чему это Вы собственно ? Как это относится к мониторингу счетчиков процессора, о которых я завел тему. Сортировку я вообще привел пример как задачу над которой я работаю. Хотите мне поведать о других способах оптимизации алгоритма сортировки ? Спасибо, мне это не нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 09:57 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Ну ок. Спасибо за прямоту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 10:22 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
semensemenovichКак это относится к мониторингу счетчиков процессора, о которых я завел тему. Сортировку я вообще привел пример как задачу над которой я работаю. Работой называется не всякая деятельность, а только полезная. Ваш мониторинг счётчиков процессора - бесполезное занятие. Что вам на самом деле нужно - догадаться трудно. Некоторые участники обсуждения пытались. но не смогли, так как похоже вы сами не понимаете. Высокопроизводительные вычисления (high performance computing) - это термин. Обозначает не то, что вы думаете и чем занимаетесь, а вычисления с распараллеливанием. Распараллеливание бывает между ядрами процессора, потоками, компьютерами в кластере и внутри GPU. Для сортировки возможны все эти способы, но мне неохота гадать, какой вам нужен. При распараллеливании скорость работы растёт обычно медленнее, чем число процессоров (Amdahl law - правило Амдаля) из-за того, что часть задачи остаётся нераспараллеленной. Но бывает явления суперлинейного ускорения (superlinear speedup), когда скорость растёт быстрее, чем число процессоров из-за того, что данные делятся на блоки, достаточно малые, чтобы попасть в кэш процессора. Таким образом, если бы у вас была настоящая работа, то можно было бы рассмотреть настройку алгоритма на использование суперлинейного ускорения (что более полезно, чем подсчёт попаданий в кэш), но у вас нет понимания задачи, поэтому углубляться не буду. В общем, попробуйте сообразить, что вам на самом деле надо (это не то, что вы тут написали). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 10:59 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Partisan MsemensemenovichКак это относится к мониторингу счетчиков процессора, о которых я завел тему. Сортировку я вообще привел пример как задачу над которой я работаю. Работой называется не всякая деятельность, а только полезная. Ваш мониторинг счётчиков процессора - бесполезное занятие. Что вам на самом деле нужно - догадаться трудно. Некоторые участники обсуждения пытались. но не смогли, так как похоже вы сами не понимаете. Высокопроизводительные вычисления (high performance computing) - это термин. Обозначает не то, что вы думаете и чем занимаетесь, а вычисления с распараллеливанием. Распараллеливание бывает между ядрами процессора, потоками, компьютерами в кластере и внутри GPU. Для сортировки возможны все эти способы, но мне неохота гадать, какой вам нужен. При распараллеливании скорость работы растёт обычно медленнее, чем число процессоров (Amdahl law - правило Амдаля) из-за того, что часть задачи остаётся нераспараллеленной. Но бывает явления суперлинейного ускорения (superlinear speedup), когда скорость растёт быстрее, чем число процессоров из-за того, что данные делятся на блоки, достаточно малые, чтобы попасть в кэш процессора. Таким образом, если бы у вас была настоящая работа, то можно было бы рассмотреть настройку алгоритма на использование суперлинейного ускорения (что более полезно, чем подсчёт попаданий в кэш), но у вас нет понимания задачи, поэтому углубляться не буду. В общем, попробуйте сообразить, что вам на самом деле надо (это не то, что вы тут написали). Господи сколько же неадекватов налетело. Один человек из 100 может рассказать о том как мониторить агрегаты процессора -а остальные за неимением квалификации начинают за жизнь учить и рассказывать как космические корабли бороздят большой театр. Вы всю эту байды своим джуниорам рассказывайте и лохам на собеседовании. А я с Вами слава Богу не работаю и даст Бог не встречусь в реальной жизни. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 11:40 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Коллеги ну есть же для троллинга ПТ. Ну зачем превращать тему в болтовню, отличную от темы топика и лить сюда кучу своих мыслей, которые близко не лежали с темой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 12:25 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Partisan MВысокопроизводительные вычисления (high performance computing) - это термин. ЯВысокопроизводительные приложения Я конечно понимаю что тут есть общее слово "Высокопроизводительные" - ну и что из этого ? Собственно далее весь текст про распараллеливание и рассказы о том что мне реально нужно выглядит как вброс с потолка. Blazkowicz, Мой Вам совет не поддавайтесь стадному чувству - если один человек выдал тонну типа умного текста - а другой сказал ему про неадекватность - это еще не значит что у другого мания величия типа "я самый умный". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 12:39 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
semensemenovichМой Вам совет не поддавайтесь стадному чувству - если один человек выдал тонну типа умного текста - а другой сказал ему про неадекватность - это еще не значит что у другого мания величия типа "я самый умный". Даже не знаю что ответить. Могу, разве что, предложить поискать бревно в своём глазу. Поверьте, эту картинку я тут пощу не так уж и часто. И поведение других участников дискусии считаю на много более адекватным чем ваше здесь хамство. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 12:45 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
BlazkowiczsemensemenovichМой Вам совет не поддавайтесь стадному чувству - если один человек выдал тонну типа умного текста - а другой сказал ему про неадекватность - это еще не значит что у другого мания величия типа "я самый умный". Даже не знаю что ответить. Могу, разве что, предложить поискать бревно в своём глазу. Поверьте, эту картинку я тут пощу не так уж и часто. И поведение других участников дискусии считаю на много более адекватным чем ваше здесь хамство. Это здоровое хамство, призванное отрезвить типа экспертов и знатоков - а то вместо начатой темы мне бы еще долго рассказывали про алгоритмы сортировки и параллельные вычисления. У нас, видимо, разные представления об адекватности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 12:49 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Есть мнение такое, что на иностранных форумах пытаются решить проблему топик-стартера, а на русских доказывают ТСу какой он му**к. Мне этот топик напомнил один вопрос на стеке https://stackoverflow.com/questions/11227809/why-is-it-faster-to-process-a-sorted-array-than-an-unsorted-array Проблема актуальная как для С++ так и для JAVA. Тут возникла мысль, - можно переписать свой код на C++ и изучать проблемы взаимодействия с процессором там. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 12:49 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
HettЕсть мнение такое, что на иностранных форумах пытаются решить проблему топик-стартера, а на русских доказывают ТСу какой он му**к. Есть такое. С той лишь разницей, что до stackoverflow адекватных англоязычных форумов не было в принципе. Всё более-менее адекватное было в мейл архивах, статьях, но никогда в форме обсуждения. А у stackoverflow отличная политика модерирования и оценок, которая и привела к успеху ресурса. А рунет, просто остался таким же как был. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 12:54 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Беда в том что тс задаёт вопрос в топике java не про java. Ну то есть на границе технологий. А когда ты пытается понять специфику оптимизацией или того анализа - автор как То странно отмалчивается либо говорит дескать это не про это... Да и вообще Сортировка его не интересует. Тогда я спрашаваю. А что его собственно в этом топике интересует относительно java? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 14:56 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
maytonБеда в том что тс задаёт вопрос в топике java не про java. На форуме нет топика "Оптимизации CPU". С таким же успехом С++ ники заявили бы что я задаю вопрос в топике С++ не про С++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 16:03 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
semensemenovichНа форуме нет топика "Оптимизации CPU".Зато есть два топика, для людей, не умеюших гуглить man и msdn. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 16:14 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovsemensemenovichНа форуме нет топика "Оптимизации CPU".Зато есть два топика, для людей, не умеюших гуглить man и msdn. Топик надо переименовать из Java в RTFM ;) Задаешь вопрос - а тебе на него отвечают "Чо в Гугле Шо ли Забанили )" Ладно всем спасибо за внимание. Пойду в stackOverFlow спрашивать ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 16:21 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Древний ЧАВО XFree86/2, первая пара вопрос-ответ: В. Вы должны ... О. Я никому ничего не должен. Очень рекомендуется к осмыслению и запоминанию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 16:26 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovДревний ЧАВО XFree86/2, первая пара вопрос-ответ: В. Вы должны ... О. Я никому ничего не должен. Очень рекомендуется к осмыслению и запоминанию. Вы бы лучше что по теме порекомендовали глядишь форум бы превратился из застойной полной срача помойки в экспертную площадку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 16:27 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
semensemenovichВы бы лучше что по теме порекомендовалиТо, что порекомендовал я - вы проигнорировали. Как, впрочем, и остальные рекомендации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 16:40 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovsemensemenovichВы бы лучше что по теме порекомендовалиТо, что порекомендовал я - вы проигнорировали. Как, впрочем, и остальные рекомендации. Если Вы про "FreeBSD hardware CPU counters" то не проигнорировал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 16:43 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
semensemenovichиз застойной полной срача помойки в экспертную площадку. Мвуха-ха. Это юношеский максимализм вдруг проснулся? Эксперты такой фигней себя особо не утруждают. У нас тут узкий кружок любителей поумничать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 16:59 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Blazkowiczsemensemenovichиз застойной полной срача помойки в экспертную площадку. Мвуха-ха. Это юношеский максимализм вдруг проснулся? Эксперты такой фигней себя особо не утруждают. У нас тут узкий кружок любителей поумничать. Да окей окей ради Бога. Умничайте дальше ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 17:01 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
semensemenovichГосподи сколько же неадекватов налетело. Один человек из 100 может рассказать о том как мониторить агрегаты процессора -а остальные за неимением квалификации начинают за жизнь учить и рассказывать как космические корабли бороздят большой театр. Вы всю эту байды своим джуниорам рассказывайте и лохам на собеседовании. А я с Вами слава Богу не работаю и даст Бог не встречусь в реальной жизни. На самом деле, вы изначально неверно поставили вопрос. Скажем так, без учета особенностей менталитета. Дело в том, что особенность мышления типичного россиянина в том, что он хочет всегда все за всех решать, и, разумеется, лучше всех знает, что нужно или ненужно всем и каждому. А раз он знает это лучше всех - то, очевидно, он эксперт. А раз эксперт, то от него ожидают чего-то большего. Таким бОльшим является, например, не просто ответить на поставленный вопрос - а _спасти_ отвечающего. И поэтому когда вы спрашиваете вопрос, то первое о чем россиянин думает - это не ваш вопрос, а мысль "сейчас я его спасу!". И для этого нужно посмотреть на проблему более глобально, поэтому вместо вашего вопроса сначала мысленно задается вопрос "зачем это ему?". И дальнейшее движение произойдет, только если ответ на этот вопрос будет понятен, а иначе вам просто скажут, что это ненужно. И фишка в том, что учебные цели - это практически вся инфа, а вот практические цели - это НЕ вся инфа. И поэтому если вы сформулируете вопрос так, что как будто вам это нужно для учебных целей - то мозг отвечающего как бы проходит ворота на которых написано "а зачем это ему?", и только после этого начинает думать над конкретным ответом, и только тогда можно получить ответ. На самом деле, меня тоже бесит привычка интернет-экспертов (в том числе реальных, а не диванных) вместо конкретного ответа просто заявить, что это мне ненужно и точка. Решение о том, что нужно а что нет, принимаю только я! А когда просто говорят "ненужно" даже если действительно ненужно - хочется хамить и убивать. К сожалению, очень много народу не способно этого понять. И поэтому, фишкой "это для учебных целей" я пользуюсь, и обычно она помогает. К сожалению, не всегда, потому что они иногда подозревают, что цель практическая. По этой причине, практические вопросы, которые проходят в ворота "а зачем это?" лучше задавать в практическом ключе. Касаемо этого вопроса - вы уже спалились, что цель практическая. Это значит, они не понимают зачем это вам, и поэтому ответа про кэш вам не дадут, можете забыть. Возможно, они смогут выведать у вас особенности данных и что-нибудь предложить. В этом случае, в их понимании, они вас "спасут". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 18:34 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
chabapoksemensemenovichГосподи сколько же неадекватов налетело. Один человек из 100 может рассказать о том как мониторить агрегаты процессора -а остальные за неимением квалификации начинают за жизнь учить и рассказывать как космические корабли бороздят большой театр. Вы всю эту байды своим джуниорам рассказывайте и лохам на собеседовании. А я с Вами слава Богу не работаю и даст Бог не встречусь в реальной жизни. На самом деле, вы изначально неверно поставили вопрос. Скажем так, без учета особенностей менталитета. Дело в том, что особенность мышления типичного россиянина в том, что он хочет всегда все за всех решать, и, разумеется, лучше всех знает, что нужно или ненужно всем и каждому. А раз он знает это лучше всех - то, очевидно, он эксперт. А раз эксперт, то от него ожидают чего-то большего. Таким бОльшим является, например, не просто ответить на поставленный вопрос - а _спасти_ отвечающего. И поэтому когда вы спрашиваете вопрос, то первое о чем россиянин думает - это не ваш вопрос, а мысль "сейчас я его спасу!". И для этого нужно посмотреть на проблему более глобально, поэтому вместо вашего вопроса сначала мысленно задается вопрос "зачем это ему?". И дальнейшее движение произойдет, только если ответ на этот вопрос будет понятен, а иначе вам просто скажут, что это ненужно. И фишка в том, что учебные цели - это практически вся инфа, а вот практические цели - это НЕ вся инфа. И поэтому если вы сформулируете вопрос так, что как будто вам это нужно для учебных целей - то мозг отвечающего как бы проходит ворота на которых написано "а зачем это ему?", и только после этого начинает думать над конкретным ответом, и только тогда можно получить ответ. На самом деле, меня тоже бесит привычка интернет-экспертов (в том числе реальных, а не диванных) вместо конкретного ответа просто заявить, что это мне ненужно и точка. Решение о том, что нужно а что нет, принимаю только я! А когда просто говорят "ненужно" даже если действительно ненужно - хочется хамить и убивать. К сожалению, очень много народу не способно этого понять. И поэтому, фишкой "это для учебных целей" я пользуюсь, и обычно она помогает. К сожалению, не всегда, потому что они иногда подозревают, что цель практическая. По этой причине, практические вопросы, которые проходят в ворота "а зачем это?" лучше задавать в практическом ключе. Касаемо этого вопроса - вы уже спалились, что цель практическая. Это значит, они не понимают зачем это вам, и поэтому ответа про кэш вам не дадут, можете забыть. Возможно, они смогут выведать у вас особенности данных и что-нибудь предложить. В этом случае, в их понимании, они вас "спасут". Да собственно я не просил меня спасать. Я просто думал что коллеги как то мониторят такие счетчики под макосью и всего то просил поделиться как :) Я был в курсе про Intel VM Analyzer, был в курсе про FreeBsd Counters; Про команду perf под Linux не слышал - спасибо. Но дело в том что у меня MacBook. И мне ну очень лениво только из за счетчиков ставить на него Linux, я фанат яблока. Вот собственно и весь топик ))) Но сдается мне что народ банально не знает как такие счетчики под макосью профилировать - а темка цепляет - вот и пишут все подряд что в голову придет. Плюс вопрошающий (тобишь я) там чего то выпендриваться начал - непорядок - надо бы и заодно потролить и повоспитывать ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 18:48 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Можно виртуалку поставить и там запустить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 18:50 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
semensemenovichЯ просто думал что коллеги как то мониторят такие счетчики под макосью и всего то просил поделиться как :) Казалось бы, при чем тут Java? semensemenovichПро команду perf под Linux не слышал - спасибо. Как же так-то? http://www.brendangregg.com/linuxperf.html semensemenovichНо дело в том что у меня MacBook. И мне ну очень лениво только из за счетчиков ставить на него Linux, я фанат яблока. Так там же операционка тоже форк Unix-а. semensemenovichНо сдается мне что народ банально не знает как такие счетчики под макосью профилировать Нафига нам - формошлеперам такая ерунда? semensemenovich- а темка цепляет - вот и пишут все подряд что в голову придет. Цепляют хамы, которые ничего из себя не представляя, с ходу хамят уважаемым участникам форума. semensemenovichнадо бы и заодно потролить и повоспитывать ))) Моралиста видно за версту. Воспитатель ты наш. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 19:23 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Blazkowicz ничего из себя не представляя, Blazkowiczс ходу хамят уважаемым участникам форума. " - В нашу партию будут избраны только достойнейшие. - Простите а кто будет решать кто достойнейший а кто нет ? - Как кто - достойнейшие ))) " Уважаемый, по моему мнению Ваш троллинг и прочая оторванная от технических аспектов риторика не выдает в Вас эксперта и наводит на мысль что как раз Вы ничего из себя не представляете. BlazkowiczТак там же операционка тоже форк Unix-а. Спасибо КЭп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 19:29 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
semensemenovichне выдает в Вас эксперта и наводит на мысль что как раз Вы ничего из себя не представляете. Дык я этого и не скрываю в отличие от вас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 19:32 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Blazkowiczsemensemenovichне выдает в Вас эксперта и наводит на мысль что как раз Вы ничего из себя не представляете. Дык я этого и не скрываю в отличие от вас. Ну и славно, на это поскольку конструктива в данном разговоре ровно 0 предлагаю закончить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 19:39 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
semensemenovich предлагаю закончить А получится? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 19:40 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
BlazkowiczТак там же операционка тоже форк Unix-аLinux Is Not UniX ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 19:49 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
chabapok Это значит, они не понимают зачем это вам Это то и пугает То есть народ не занимается при разработке ПО учетом Temporal Locality и Spatial Locality (что это описано тут https://stackoverflow.com/questions/16699247/what-is-cache-friendly-code). Я бы понял если бы меня спросили о том как расположены данные в памяти, а также о том как я осуществляю к ним доступ, но вместо этого "эксперты" начали рассказывать мне о методах оптимизации сортировок а также о методах распаралеливания вычислений; Что это ? люди просто тролят ? Или РЕАЛЬНО не понимаю что такое разработка ПО с использованием Data Oriented Design. Я даже вопрос про ArrayList and LinkedList задал - "эксперт" даже видимо не понял к чему это и принял это за джунское оскорбление после чего и вовсе перешел на ты и на личности. Я бы поклонился и нарек мастером того кто бы начал разговаривать по теме - но ведь ни одного человека не нашлось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 20:45 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
semensemenovich, я вас прошу простить если я вас обидел. Но я здесь в форуме с 2004 года. И троллить я не умею. Не моё это. Но если проследить переписку по топику - то руку на отсечение даю что топик для меня выглядел как консультация по оптимизации чего-то. Я спрашивал навоящие вопросы. Вы - отвечали. Вы не возражали. Я думал - парень бъется головой об выгрузку из БД или еще там чего. Ну... блин. Трешак вобщем. Вы - бы сразу сказали что вы изучаете Cache Friendly в общем без отсносительно к конкретному алгоритму. Я-бы понял. Еще раз прошу меня извинить. Я думаю что коллеги подтвердят и впишутся что я - известный здесь читатель и писатель и если-б троллил то был-бы уже давно зобанен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 21:09 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
semensemenovichДа собственно я не просил меня спасать. Ооо, чувак... Это вы еще спасибо скажите, что спасать решили. Могли решить и защитить... Насчет макоси - надо было сразу сказать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 21:19 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
semensemenovichТо есть народ не занимается при разработке ПО учетом Temporal Locality и Spatial LocalityИ это вполне логично, т.к. все эти "дружественные к кэшу" алгоритмы предполагают вполне конкретную монополизацию железа. Оглядывая свою эпсилон-окрестность, я вижу, что куча софта крутится в пробирках. Даже тогда, когда софт в пробирках не крутится, монополизация одного ящика одним приложением - редкость. А разводить толерастические сопли ради ещё одного лентяя, которому сложно задать корректный вопрос в тематическом форуме - увольте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 21:34 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, которому сложно задать корректный вопрос в тематическом форуме - увольте. ЯКоллеги кто нибудь знает утилиты для подсчета cache miss/ cache hit в Java приложениях ? И что здесь, простите, некорректного, то что утилиты работают не только для Java приложений ? Я надеялся что тут найдутся люди которые пишут на Java и задумываются реально о кешах процессора а не просто бряцают этим на форумах толком не понимая как эти знания можно и нужно применять в работе для увеличения производительности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 21:40 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorovвполне конкретную монополизацию железа. Моя последняя оптимизация в коде как раз с улучшением Spatial locality привела к росту перфоманса в полтора раза и это было видно и на моей рабочей макоси и на линуксовых серверах и у клиентов на солярке. Так что, умоляю, не надо со мной делиться своей типа экспертизой в стиле "Все тлен" и "Все мы когда нибудь умрем". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 21:44 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
semensemenovichТо есть народ не занимается при разработке ПО учетом Temporal Locality и Spatial Locality (что это описано тут https://stackoverflow.com/questions/16699247/what-is-cache-friendly-code). Есть такой Роман Елизаров. У него есть доклады про это, можно поискать на ютуб. Простые смертные этим не занимаются так как это java, она сама все это делает или не делает. Программист не имеет возможностей на это нормально влиять. semensemenovichЧто это ? люди просто тролят ? Или РЕАЛЬНО не понимаю что такое разработка ПО с использованием Data Oriented Design. Недостающие части вашего вопроса были выпытаны у вас, а то что выпытать не вышло - было додумано каждым самостоятельно. semensemenovichЯ даже вопрос про ArrayList and LinkedList задал - "эксперт" даже видимо не понял к чему это и принял это за джунское оскорбление после чего и вовсе перешел на ты и на личности. надо спрашивать более прямо. А у вас какой-то флирт с намеками. Это тоже неправильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 21:53 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
chabapokПрограммист не имеет возможностей на это нормально влиять. Да еще как имеет эти возможности. Java вообще от плюсов отличается тем что не дает гибкости настроек всяких барьеров память предоставляя только дуболобный volatile ну и шкафообразный гц заставляет использовать. Во всем остальном тут есть все те же механизмы что и в плюсах и уж точно в Java возможно оптимизировать код с учетом кешей процессора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 21:59 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
semensemenovichИ что здесь, простите, некорректного, то что утилиты работают не только для Java приложений ?Характер моей работы, так уж получилось, прокачивает скилл "отсекать нужное от всякой хни". Если бы ваш вопрос был "условно корректен", то задавали бы его теме про хрюниксы и звучал бы он примерно так: "Использую MacOS версии X.Y, для тонкой оптимизации приложения нужно получить данные с аппаратных счётчиков процессора. Пользовался тем-то, не устраивает то-то." И всё - нет вопросов что и почему вы оптимизируете. Просто потому, что речь сразу идёт о вполне конкретных инструментах и методах работы с этими инструментами. А это сильно отличается от вашего "я тут Обстрактной хренью занят, но даже гуглить ничего не стал". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 22:04 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovsemensemenovichИ что здесь, простите, некорректного, то что утилиты работают не только для Java приложений ?Характер моей работы, так уж получилось, прокачивает скилл "отсекать нужное от всякой хни". Если бы ваш вопрос был "условно корректен", то задавали бы его теме про хрюниксы и звучал бы он примерно так: "Использую MacOS версии X.Y, для тонкой оптимизации приложения нужно получить данные с аппаратных счётчиков процессора. Пользовался тем-то, не устраивает то-то." И всё - нет вопросов что и почему вы оптимизируете. Просто потому, что речь сразу идёт о вполне конкретных инструментах и методах работы с этими инструментами. А это сильно отличается от вашего "я тут Обстрактной хренью занят, но даже гуглить ничего не стал". Мне давеча кто то говорил что jmh позволяет снимать данные этих счетчиков. Это вроде как к джавистам, не ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 22:07 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
semensemenovichМне давеча кто то говорил что jmh позволяет снимать данные этих счетчиков. http://openjdk.java.net/projects/code-tools/jmh/ Code Tools: jmh JMH is a Java harness for building, running, and analysing nano/micro/milli/macro benchmarks written in Java and other languages targetting the JVM. Но, вероятно, вы сможете ткнуть меня носом в мои заблуждения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 22:15 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Вот здесь говорят что JMH под макосью статистику не собирает - нужен perf. Однако интересен вот этот ответ: If you're ok with disabling macOS kernel security (loading only signed kernel module), you can use Intel Performance Counter Monitor . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 22:16 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Вот что из "проговорённого" вы уже проверили на своей системе? Да пять минут гуглежа без единого вопроса на форуме полноценно загружают рабочий день человека, которому интересно решить свою задачу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 22:22 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Если бы никто не задавал вопросов на форуме то и гуглешь бы не помог. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 22:25 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
HettМожно виртуалку поставить и там запустить. Думаю что виртуалка нам покажет парадоксальный результат. Нам сложно будет отделить эффект влияния гостевой ОС на кеш L3 от нашего полезного эффекта от приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 22:26 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
"Нет, вы посмотрите на этого поца ..." Мне, значит, помог, а ему, видите ли - нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 22:26 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov"Нет, вы посмотрите на этого поца ..." Мне, значит, помог, а ему, видите ли - нет. Боюсь спросить, кто Вам помог ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 22:28 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
semensemenovichБоюсь спросить, кто Вам помог ? Следите за рукамиКогда вы соизволили уточнить, что у вас - MacOS X, я спросил у гугла "FreeBSD CPU Counter". В первом десятке ссылок было две результативные: 1. Штатный PMC: может не быть в MacOS X или его функционала недостаточно, но это уже вам проверять - я быстренько пробежался по man-страничкам; 2. Intel VTune, о котором вам уже говорили. Я пробежался по списку изменений и обнаружил запись "с версии такой-то совместим с макосью версии сякой-то". Опять-таки - вам проверять. P.S. Могу обоснованно предположить, что если бы на форумах было меньше идиотских вопросов, то выдача гугла была бы ещё более результативной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 22:39 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovsemensemenovichБоюсь спросить, кто Вам помог ? Следите за рукамиКогда вы соизволили уточнить, что у вас - MacOS X, я спросил у гугла "FreeBSD CPU Counter". В первом десятке ссылок было две результативные: 1. Штатный PMC: может не быть в MacOS X или его функционала недостаточно, но это уже вам проверять - я быстренько пробежался по man-страничкам; 2. Intel VTune, о котором вам уже говорили. Я пробежался по списку изменений и обнаружил запись "с версии такой-то совместим с макосью версии сякой-то". Опять-таки - вам проверять. P.S. Могу обоснованно предположить, что если бы на форумах было меньше идиотских вопросов, то выдача гугла была бы ещё более результативной. Я призываю лично Вас не реагировать больше на мои посты в форуме. Форум публичный - я как и все буду постить вопросы. Но лично Вы обходите их стороной. Никто Вас лично не заставляет мне отвечать и чего то там гуглить. Не нравится вопрос, идиотский, ткнули в другую тему форума и жизнь стала немного светлее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 22:46 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
semensemenovichЯ призываю лично Вас не реагировать больше на мои посты в форуме"Не указывайте мне, что я должен делать и я не стану объяснять, куда вам надо пройти". Так доходчивее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 22:48 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovsemensemenovichЯ призываю лично Вас не реагировать больше на мои посты в форуме"Не указывайте мне, что я должен делать и я не стану объяснять, куда вам надо пройти". Так доходчивее? Я не указываю, я призываю. Нормальный человек стороной обходит идиотские вопросы я не разводит соплями по стеклу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 22:49 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
chabapokфлирт с намеками. Очень красиво пишите))))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2017, 07:27 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
semensemenovichНормальный человек стороной обходит идиотские вопросы я не разводит соплями по стеклу. Вот и я говорил что не получится. Закатываешься истерикой по каждому коментарию. Не нравятся ответы - не отвечай, а то развел своих соплей на весь форум. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2017, 08:31 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Вы бы хоть набросали код какой оптимизируете в джава по кэш миссам. А то оптимизируете оптимизируете, и тут бац надо посчитать как на оптимизировали, и на оптимизировали ли вовсе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2017, 20:45 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
no56892Вы бы хоть набросали код какой оптимизируете в джава по кэш миссам. А то оптимизируете оптимизируете, и тут бац надо посчитать как на оптимизировали, и на оптимизировали ли вовсе. Местные гуру запинали меня ногами. На этом форуме можно только идиотские вопросы про Java.util.properties задавать про джарники в джейбосе и прочую фигню - такая лажа тут в почете и корифеи с удовольствием подтирают джунам *ады. Мой вопрос местные карифаны не оценили Так что не будет Вам никакого кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2017, 21:25 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
no56892Вы бы хоть набросали код какой оптимизируете в джава по кэш миссам. А то оптимизируете оптимизируете, и тут бац надо посчитать как на оптимизировали, и на оптимизировали ли вовсе. Недавно просматривал статьи по SLRU, 2Q, ARC, e.t.c. и заметил что все методы "эффективного кеширования" не имеют никакой общей теоретической формулы эффективности. Во всех случаях авторы брали какие-то конкретные данные из внешнего мира. Файлы в файловой системе. URL-s на прокси или в игровом клиенте. Тоесть говорить к примеру о том что 2Q лучше LRU можно только после прогона на реальных выборках. С повторами... характерными для веб-сервинга, актокорреляциями и прочее. Мне кажется что тут есть аналогия с топиком. Мы не можем просто говорить о том что где-то в космосе существует стек аппаратных кешей и мы кодим исходя из cache friendly. Некоторые отсылки к кешам есть в семинаре по Disruptor . Но дизраптор это та еще херня. Попробуй его натянуть на реальное приложение. Бесконечный тюннинг получается. Тут подкрутил - там упало. А может Unsafe memory как в Hazelcast ? Вариант! Но кто этот Хозел-Каст купил с лицензией и отреверс-инжинерит? Или кто исходники Apache Cassandra разберет? Чтоб проанализировать юзает ли эта тётка cache-friendly или нет. Из практики БД еще пример. Ты тут из кожи вон лез... оптимизировал аналитический SQL query. Скобками его загнал в определенный order joins. Хинтов добавил. Пабеда! Быстро летает ночью. День начинается и капец. Конкуренция sessions. Бафер пул "вымывается" другими query. Фигли.. у тебя индексных чтений больше. Всё затормозило и сдулось. А прерыдущий план - вообще по дискам бегал. Мультиблочным. Медленнее данные собирал но никому не конкурировал. И нахер тогда я старался? Директивно всё оптимизировал когда все по дефолту прилично работало. По рукам себя линейкой.... Вобщем сорян за лирическое отступление. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2017, 22:14 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
maytonsemensemenovichпропущено... Какая из этих структур наиболее эффективно дает использование кешей CPU (минимизирует CACHE MISSES) Ну...я-бы взял Array т.к. есть больше гарантий что соседние элементы (если они примитивы) располагаются рядышком в адресной памяти и соотв у меня больше контроля над ситуацией. .... 1) послать в топку стандартные коллекции, взять http://fastutil.di.unimi.it/ IMHO в 95% случаев нужны/требуются именно примитивные типы. При боксинге/un-боксинге говорить о производительности просто неприлично. 2) если работа с датами - то joda time. Говорить о производительности вычислений с датами при immutable типах просто неприлично. У joda тоже не все хорошо со скорости, сериализация/десериализия timestimp сделана через одно место AFAIK. Хотел переписать, но руки не дошли. 3) Очень жаль, что нет нормального способа java String туда же (в топку) послать (((, многие с java String через unsafe работают... но на мой взгляд это совсем извращение, пытался код из И-нета повторить - от смены версии java все начинает падать....unsafe он и есть unsafe. IMHO & AFAIK как-то так, а уж потом промахи кэша В JAVA смотреть. Смысла смотреть промахи кэша (за исключением synchronize/Lock/Atomic) - не вижу. Ну посмотрел ты на них и что? Есть промахи кеша, есть промахи предсказателя переходов, есть ошибки TLB ... повлиять в коде то все равно на них никак не можешь (можно частично повлиять настройками командной строки JVM). А 95 % времени можно терять ни в прикладном коде, а в JVM, GC или вообще где нибудь в между-thread пространстве. IMHO & AFAIK ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2017, 00:07 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
semensemenovichЯ просто думал что коллеги как то мониторят такие счетчики под макосью и всего то просил поделиться как :) Я был в курсе про Intel VM Analyzer, был в курсе про FreeBsd Counters; Про команду perf под Linux не слышал - спасибо. Но дело в том что у меня MacBook. .... Может быть с этого стоило начинать? В первом посте есть слова Java, но вот о mac'е нет ни слова. а то как в анекдоте "сколько программистов нужно, что бы вкрутить лампочку? Ни одного, it is a hardware problem". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2017, 00:14 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev, Возникли следующие мысли: 1. Наш сферический алгоритм в вакууме (далее САВ ) должен иметь понятие о том в окружение какого железа он существует. Cortex? Intel? Amd? Здесь надо признать что мы делаем шаг в сторону от классического java кодинга и пытаемся приоткрыть занавес платформы. 2. После того как мы получили тип железа - мы далжны собрать максимум сведений о топологии кешей и о всех их количественных Характеристиках. Чуть позже я приаттачу поясняющую картинку. 3. Мы должны ввести в САВ вектор параметров который даст нём возможность регулировать влияние на каши и топологию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2017, 09:52 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevМожет быть с этого стоило начинать? В первом посте есть слова Java, но вот о mac'е нет ни слова. а то как в анекдоте "сколько программистов нужно, что бы вкрутить лампочку? Ни одного, it is a hardware problem". А типа это бы как то помогло ))) Единственный кто примерно тут указал как это делается для MAC - это был я (погуглил и скинул линку) )))) Остальные КОНСТРУКТИВНЫЕ ответы были для Linux и FreeBsd. То есть народ вообщем не особо в курсе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2017, 11:24 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
semensemenovichТо есть народ вообщем не особо в курсе. Потому что оно нахрен никому не нужно и к Java отношения не имеет. Кому вообще упал fine tuning под процессор на Java под десктопную платформу? JIT в следующей версии поменяется и все ваши оптимизации пойдут лесом. Зачем выжимать что-то из десктопного CPU вообще загадка. Вопрос про MacBook вообще убил. Вы многопользовательские сервера на них хостите? Или big data обсчитываете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2017, 11:36 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
BlazkowiczsemensemenovichТо есть народ вообщем не особо в курсе. Потому что оно нахрен никому не нужно и к Java отношения не имеет. Кому вообще упал fine tuning под процессор на Java под десктопную платформу? JIT в следующей версии поменяется и все ваши оптимизации пойдут лесом. Зачем выжимать что-то из десктопного CPU вообще загадка. Вопрос про MacBook вообще убил. Вы многопользовательские сервера на них хостите? Или big data обсчитываете? У тебя там джун в соседней ветке никак не может java.util.Properties сконфигурить - отправляйся как ты туда экспертизу повышать, тем более как ты сам сказал BlazkowiczПотому что оно нахрен никому не нужно А здесь, быть может, появятся люди которым это таки нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2017, 11:38 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
semensemenovichМестные гуру запинали меня ногами. Вы им льстите. semensemenovichНа этом форуме можно только идиотские вопросы про Java.util.properties задавать про джарники в джейбосе и прочую фигню - такая лажа тут в почете и корифеи с удовольствием подтирают джунам *ады. Невероятно. На форуме по Java обсуждают Java API, а не макось. Вот так неожиданность. semensemenovichМой вопрос местные карифаны не оценили Мммм. Какой крутой вопрос. Апплодисменты. Побольше бы таких крутых вопросов. Только в профильном бы форуме. semensemenovichТак что не будет Вам никакого кода. Обидели мышку... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2017, 11:39 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
semensemenovichУ тебя там джун в соседней ветке никак не может java.util.Properties сконфигурить - отправляйся как ты туда экспертизу повышать, тем более как ты сам сказал Я там уже всё разрулил. У меня в этой ветке истерику никак не свернут. semensemenovichА здесь, быть может, появятся люди которым это таки нужно. Они уже на подходе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2017, 11:44 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
BlazkowiczЯ там уже всё разрулил. Хороший мальчик, возьми с полки пирожок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2017, 12:34 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Пару лет назад 18093734 я поднимал тему трех бенчмарков. В разрезе популярных ЯП (C++/Python/Delphi/C# e.t.c) и изначально заданными задачами. А именно: 1) CPU 2) Доступ к памяти 3) Производительность I/O Из всех трех удалось реализовать только первый (CPU). Бенчмарк граф. алгоритма трассировки луча с использованием вещественных чисел. Фактически нужный код был написан. Спасибо сообществу. Остались неоконченными универсальные shell-скрипты для тестинга всех ЯП на всех платформах. Эта цель так и осталась целью. Что впрочем не мешало активным мемберам тихонько тестить 2-3 разных ЯП на своих конфигурациях и репортить таблички с отчотами. Отчоты пролили много интересных фактов. Как например провальные результаты Python по сравнению с другими системами. Это кстати ставит под сомнение тезис Зимаргла к том что Python быстрее чем "C" и тезис другого чела в ПТ который доказывал что строки в Python это самые быстрые строки в мире ... впрочем кто это был я забыл да и топик уже не помню. Приятно также порадовал компиллятор Rust который в рамках небольших погрешностей был где-то быстрее чем С/C++ реализации. Но остались еще 2 теста которые я так и не смог сформулировать в виде постановки. И мой интерес к этому топику возник именно в разрее теста номер (2). Я долго думал какую постановку взять для тестирования бенчмарков по memory но так и не придумал. Мне нужны были алгоритмы которые мощно и равномерно грузят полный диапазон бортовой памяти вашей рабочей станции или сервера (2/4/8/16G) и не только диапазон но и также интенсивные аллокации-деаллокации (malloc/free, new/delete e.t.c.). И здесь алгоритмы сортировки не подходили. Они обычно не используют явные аллокации-деаллокации и соотв мой тест был-бы не полным. Как вариант я рассматривал реализации кешей (LRU/2Q/MQ/ARC) + некая гипотетическая задача которая будет делать интенсивные поисковые операции по кешам. Например поиск пароля по хешу. Ну ... что-то вроде rainbow-table (по сабжу я не знаю пока как работает радужня табличка но надеюсь что ей полюбому нужен какой-то доступ к дисковым хранилищам уже расчитанных хешей объем которых уже давно превысил оперативку. Это как раз удобная постановка для кеша). Сюда-же можно включить несколько бенчмарков. 1) Рост кеша (population) 2) Стационарная фаза (обычная работа) 3) Деградация (вытеснение старых ключей полностью новыми) Но вобщем-то если у кого-то будут мысли - то пишите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2017, 15:00 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
mayton... У Сергея Куксенко есть роскошная презентуха по теме https://jug.ru/2014/10/сергей-куксенко-железные-счётчики-н/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2017, 19:55 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
semensemenovich, хороший плакат https://shipilev.net/talks/devoxx-Nov2012-perfMethodology-mindmap.pdf скачал себе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2017, 22:34 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
На 16-й минуте - примерно такой фрагмент слайда. PMU события: -Платформозависимые сильно различаются у разных производителей могут сильно менятся у одного производителя при смене микроархитектуры. Это то о чем я говорил где-то выше. Это не просто выходит за рамки Java. Это даже в native выходит за рамки обычного анализа. Нам придется учитывать что стоит на борту. Intel или AMD. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2017, 23:26 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
semensemenovichА типа это бы как то помогло ))) Единственный кто примерно тут указал как это делается для MAC - это был я (погуглил и скинул линку) )))) Остальные КОНСТРУКТИВНЫЕ ответы были для Linux и FreeBsd. А конструктивных ответов, как это делается на ZX Spectrum, IBM z-Series и прочих платформах даже от Вас нету ((( Вы тут практическую помощь хотите получить или докторскую диссертацию по IT-технологиям с анализом 100500 существующих операционных систем и аппаратных платформ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2017, 11:58 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev, Он решил зобанится. Жаль. Сабж был интересен только стартовал как то слишком скомкано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2017, 13:18 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Да не интересен топик ни разу, т.к. сильно OS-specific. В линуксах есть perf, которого нет в BSD-подобных, в которых, вроде, dtrace. И все они отличаются от виндовых счётчиков, где есть ещё и ETL. P.S. Чтобы хоть немного остаться "в теме явы": Java-разработчики не осознают проблему с профилировщиками . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2017, 15:52 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovДа не интересен топик ни разу, т.к. сильно OS-specific По моему наоборот это делает его интересным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 11:50 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
maytonОн решил зобанится Это не я решил, это модераторы. Полагаю что этот ник скоро снова забанят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 11:52 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Семен.Семенович, это все замечательно. Но нам нужна повестка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 11:54 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
maytonСемен.Семенович, это все замечательно. Но нам нужна повестка. Кроме Вас лично тема никому больше неинтересна, скорее даже раздражает. Гуру не чувствуют себя сильными в теме и поэтому им это неинтересно. Начинаются отмазки в стиле "это не совсем Java". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 12:22 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Семен.СеменовичКроме Вас лично тема никому больше неинтересна, скорее даже раздражает. Ему она тоже не интересна в контексте MacOS. Так что ты тут один. Семен.СеменовичГуру не чувствуют себя сильными в теме и поэтому им это неинтересно. Напонимаю что флейм начался с твоего хамства. Семен.СеменовичНачинаются отмазки в стиле "это не совсем Java". От чего отмазки-то? ROFL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 12:30 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
BlazkowiczЕму она тоже не интересна в контексте MacOS. Так что ты тут один. Я так понимаю она ему в принципе интересна как и мне. А ОС -специфике приклеились гуру как к отмазке от собственной слабости в теме. BlazkowiczНапонимаю что флейм начался с твоего хамства. Хамство началось с попыток так называемых экспертов дать мне экспертный ответ да еще с эпитетами на тему того что мне якобы нужно или ненужно. BlazkowiczОт чего отмазки-то? ROFL. Отмазки от собственной слабости в теме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 12:34 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Вот настоящий эксперт делает доклад ровно по теме на Java конференции https://jug.ru/2014/10/сергей-куксенко-железные-счётчики-н/ И он не говорит публике о том что нам это ненужно О то что это ОС - специфик И проче бла бла ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 12:39 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Семен.СеменовичОтмазки от собственной слабости в теме. Ну, то есть ты тут тупо потроллить. Создал тему к форуму отношения не имеющую, про экзотическую, с точки зрения тюнинга, проприетарную ось. Чтобы в каждом втором комментарии лошить всех кто решил поучаствовать в обсуждении. При этом особенно забвано смотрится что для тебя, как человека занимающегося производительностью в Java, доклады Шипилева и Куксенко это прямо открытие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 12:39 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
BlazkowiczНу, то есть ты тут тупо потроллить. Тупо троллить начал ты, а я с самого начала был серьезен - серьезнее не придумать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 12:41 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Семен.СеменовичИ он не говорит публике о том что нам это ненужно О то что это ОС - специфик Потому что там про серверную платформу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 12:42 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Blazkowiczдоклады Шипилева и Куксенко это прямо открытие. Я эти доклады уже 100 лет назад видел, жаль что для многих экспертов это открытие. Впрочем неудивительно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 12:42 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
BlazkowiczСемен.СеменовичИ он не говорит публике о том что нам это ненужно О то что это ОС - специфик Потому что там про серверную платформу. Да какая разница. Java же :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 12:43 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Семен.СеменовичmaytonСемен.Семенович, это все замечательно. Но нам нужна повестка. Кроме Вас лично тема никому больше неинтересна, скорее даже раздражает. Гуру не чувствуют себя сильными в теме и поэтому им это неинтересно. Начинаются отмазки в стиле "это не совсем Java". У меня здесь другой интерес. Я уже говорил что делаю бенчмарки memory. И возможно я сделаю форк от этого топика. А пока я хотел просто проговорить названия технологий, утилит и архитектур о которых собсно будет идти речь. Чистая java уже не канает. Нужна информация из environment. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 12:53 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
maytonСемен.Семеновичпропущено... Кроме Вас лично тема никому больше неинтересна, скорее даже раздражает. Гуру не чувствуют себя сильными в теме и поэтому им это неинтересно. Начинаются отмазки в стиле "это не совсем Java". У меня здесь другой интерес. Я уже говорил что делаю бенчмарки memory. И возможно я сделаю форк от этого топика. А пока я хотел просто проговорить названия технологий, утилит и архитектур о которых собсно будет идти речь. Чистая java уже не канает. Нужна информация из environment. Ну из утилит которые бы позволили снимать показания счетчиков - уже все представили в топике. А дальше просто нужна теоретическая подготовка о том как работают кеши. Например глубокое понимание как работают кеши, что такое False Sharing что такое аннотация @Contentend, что такое Cache Line. Инфы полным полно в докладах уже упомянутых Сергея и Алексея. На интереснее всего трогать эти кеши руками. Например наблюдать как при правильном Spatial Locality скорость сортировки увеличивается в разы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 13:02 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Семен.Семенович, мои бенчмарки касаются семейства языков программирования (С++/C#/Java/Delphi). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 13:11 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
maytonСемен.Семенович, мои бенчмарки касаются семейства языков программирования (С++/C#/Java/Delphi). Язык программирования тут не так важен. Кстати а вы знаете как перфоманс оверхед вносит просто вызов virtual функции ? Это актуально например когда в компараторе мы дергаем функцию сравнения из внешнего апи (virtual call) или напрямую инлайним сортировку в компаратор. В С++ есть возможность сделать метод невиртуальным ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 13:18 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Семен.СеменовичmaytonСемен.Семенович, мои бенчмарки касаются семейства языков программирования (С++/C#/Java/Delphi). Язык программирования тут не так важен. Давай соберем в список что вообще важно для того чтобы САВ (сферический алгоритм в вакууме) работал быстро. Мы предполагаем что сам алгоритм уже написан. Принципиально он не меняется (не меняется асимптоматика). Но - регулируя свойства структур данных и конфигурации: (разрядность структур, padding, адресацию, опции компилляции 32/64-pointers, размер блока данных которым мы оперерируем, кратность этого блока L1/L2, использование систем команд FPU/SSE) и используя априорные сведенья о состоянии кешей ДО ТОГО как мы начали эксперимент, - используя сведения об операционной системе, о классах мультизадачности (сюда-же приоритеты и affinity threads/processes) - используя сведенья о железе на борту Intel/AMD и их специфичных свойствах. Управляя режимами экономии. Выключая их. (Дада дорогие друзья на ваших модных лаптопах тактовая частота плавает и сложно гарантировать нужное число мегафлопов при повторных запусках. Про машины эконом класса такие как планшеты и телефоны я вообще молчу. Вся их история создания - это цепочка прорывов в области экономии тепла и электричества). Используя всякие Bust, Burst, управление тактовой частотой и оверклокингом. - используя иммитационное моделирование нашего САВ с разными характеристиками (я об этом писал выше). Использование генетических алгоритмов для отбора наилучшей конфигурации САВ. Вот так мы можем получать какой-то профит. Профит заключается в ФАКТИЧЕСКОМ уменьшении времени работы нашего САВ (такая себе цель №1). Профие профиты такие как "дружественность" к кешу я рассматриваю с большим подозрением. Я не считаю что это цель. Это скорее странное пожелание которое не ведет нас к цели №1. Оно ведет нас к другим самым разным целям например к благоприятной работе других процессов ОС. Но это все - вторичные цели. Если вы считаете что все что я перечислял выше - неважно. Тогда я вас спрошу. А что вообще важно? Вы хотите достигать перформанса для вашей пользователькой задачи но при этом хотите оставаться в мире pure-Java? Не выйдет, дорогие друзья. Собственно зрелость senior java developer или architect начинается тогда, когда ты понимаешь что тебе уже не хватает java. Есть еще и реальный мир с железом и его сложными свойствами. И тюнить просто САВ больше нет возможности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 13:44 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Фразой "Язык программирования тут не так важен" я имел ввиду лишь одно: для понимания как работают кеши - ЯП неважен. >>Профие профиты такие как "дружественность" к кешу я рассматриваю с большим подозрением Это говорит о том что Вы никогда не занимались низкоуровневым джава перфомансом, а тюнили диск, сеть и расставляли хинты к запросам в оракле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 13:48 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Семен.Семенович>>Профие профиты такие как "дружественность" к кешу я рассматриваю с большим подозрением Это говорит о том что Вы никогда не занимались низкоуровневым джава перфомансом, а тюнили диск, сеть и расставляли хинты к запросам в оракле. Может быть. Я вообще в программирование пришел из администрирования. Но это офтопик. С моим главным тезисом maytonПрофит заключается в ФАКТИЧЕСКОМ уменьшении времени работы нашего САВ (такая себе цель №1). вы согласны? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 14:07 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
maytonвы согласны? Согласен с чем ? С тем что увеличение производительности это уменьшение времени работы ? Ну в большинстве случаев да. Хотя наверное можно ставить в качестве задачи и количество занимаемой памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 14:18 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Семен.Семеновичmaytonвы согласны? Согласен с чем ? С тем что увеличение производительности это уменьшение времени работы ? Ну в большинстве случаев да. Отлично. Хотя наверное можно ставить в качестве задачи и количество занимаемой памяти. Нет-нет. Мы тогда запутаемся. Оптимизация памяти - это другая задача. И если у нас была мемоизация как часть оптимизации перформанса, то оптимизация памяти в первую очередь ударит по вопросу хранения расчетных данных, материализовнных views, программных кешей и прочее. А это автоматически приведет нас к отказу от цели №1. Тоесть цель №1 любыми средствами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 14:25 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
maytonТоесть цель №1 любыми средствами. Не всегда. Иногда качеством кода не жертвуют ради выигрыша в 10 мс. Зависит от людей. Но в целом да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 14:31 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
ОК. Продолжим. Мне сложно оперировать с сферическим железом в вакууме. Поэтому я буду опираться на конкретное. Я приаттачу скрин с описанием железа вполне себе бюджетной рабочей станции и попробую порассуждать что там есть и что я могу использовать для оптимизации кешей (пока без привязки к ЯП). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 15:06 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Что нам будет интересно. 1) Количество ядер и количество threads. 2) Размеры кешей данных L1/L2/L3. Топология. Я нагуглил картинку которая по чистой случайности действительно соответствует архитектуре кешей Intel-Core-i3. Она не полная. Но если что - дорисуем на ней недостающие связи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 15:10 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Глядя на вторую картинку. Можно заметить что несмотря на 4 вычислительных CPU-Thread Здесь по терминологии. В разных книгах по железу очень часто путают процессы и потоки. В Windows/Unix архитектура потоков также отличается и во избежание терминологических споров я буду писать CPU-Thread имея в виду одно из четырех модулей или АЛУ которые нарисованы на картинке и отдельно я буду писать Java-Thread имея в виду другое. У Елизаорва или Куксенко (я не помню щас точно) есть утверждение о том что для AMD например такое понятие как ядро (Kernel) уже давно стало маркетинговой приманкой и в реальности размыто и не соответствует понятию ядра в "старых" системах. Тоесть это точно не процессор. Поэтому и я расслаблюсь и не буду ни с кем спорить. Я просто аппелирую к картинке и топологии. Есть какая-то хрень имеющая свойсва АЛУ и она СЧИТАЕТ и она использует кеши. Остальное мне не важно. Посмотрите. На картинке Core0 содержит внутри себя Thread-0,Thread-2. При этом вся эта система топологически связана с кешом данных L1 размером 32к. И кешом L2 размером 256к. Далее. Гипотеза 1. Реально мы можем без конкуренции использовать только 2 процесса(потока) операционной системы которые мы должны закрепить строго за определённым набором CPU-Threads. САВ должен конфигурироваться исходя из имеющейся топологии. По определенным причинам. Меня не устраивает работа стандартного Windows-диспетчера. Специфика задачи такая что Я решаю где стартовать поток и для меня это ВАЖНО. Но я полностью признаю пользу автоматической диспетчеризации для других потоков ОС. Далее. Гипотеза 2. Существуют посторонние процессы ОС и той-же JVM которые влияют на L1/L2 результат нашей разработки САВ. Я не знаю что с этим делать! Я не знаю как минимизировать их влияние! Я предполагаю что только объем транзакций по памяти и их кучность позволит мне в какой-то мере владеть данными в L1/L2 Отсюда следует что САВ должен максимально МНОГО и ИНТЕНСИВНО использовать L1/L2. САВ должен состоять из 2х вычислительных потоков (Worker-Threads) которые должны быть закреплены за физическими CPU-Threads 0,2. САВ должен в каждый момент времени наполнять L1/L2 актуальным стеком информации нужным ТОЛЬКО для решения его (САВ) задачи. Далее я беру паузу. И занимаюсь для себя этим вопросом. А именно. - можно ли закрепить конкретный java-thread за определённым набором CPU-Thread. - покурить taskset - покурить start - покурить JavaProcessBuilder - покурить опенсорцные библиотеки affinity для Java и нативного кода. У кого есть мысли по поводу Гипозез - прошу пишите каменты. P.S. Картинка с топологией неполна. Я-бы дорисовал больше связей. Если у кого есть мысли - пишите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 15:38 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
maytonЧто нам будет интересно. 1) Количество ядер и количество threads. 2) Размеры кешей данных L1/L2/L3. Нет. Автор темы не понял задачу и неправильно её поставил. В действительности ему не надо измерять процент попаданий в кеш. Но если ему охота заниматься фигнёй, то зачем ему давать советы, как это лучше делать. Пусть организация, в которой он работает, и даёт ему задания на фигню. Я уже примерно объяснил, что на самом деле нужно. Повторяю, чтобы здешний флейм кого-нибудь не сбил с толка. Для выскопроизводительных вычислений нужно распараллеливание вычислений. Оно бывает в кластере компьютеров, внутр компьютера между процессорами/ядрами, и внутри GPU. Эти способы могут применяться и совместно. Например, в библиотеке машинного обучения Microsoft CNTK есть одновременное распараллеливание в кластере, между несколькими GPU в одном компьютере и внутри GPU (библиотеки машинного обучения требуют большого объйма вычислений, поэтому их авторы стараются применить распараллеливание). При распараллеливании производительность обычно растёт медленнее числа процессоров (правило Амдаля). Но иногда наблюдается явление суперлинейного ускорения - когда приозводительность растёт быстрее числа процессоров). Оно вызвано тем, что для распараллеливания набор данных делится на части и размер одной части может стать достаточно маленьким для её попадания в кеш. Подробно об этом написано в литературе по высокопроизводительны вычислениям. Но суперлинейное ускорение не очень важно - если и есть, то даёт прирост корости в проценты, ну в десятки процентов. Важнее избежать ошибки "ложного распараллеливания", когда программа кажется распараллеленной, но на самом деле нет из-за общих переменных и других причин. В таких случаях производительность растёт медленнее чем по правилу Амдаля. Это явление надо обнаружить и устранить вызвавшую его ошибку. Итак, надо разработать способ распараллеливания. При этом требование испольщовать только Java - глупость,показывающая неготовность автора темы решать задачу. Довольно успешная библиотека машинного обучения H2O написана на Java, но для организации работы в кластере использует Hadoop. На этом участие в теме прекращаю ввиду её флеймовости. Автор может сколько влезет размышлять о свойствах кеша. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 15:49 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Partisan MНет. Автор темы не понял задачу и неправильно её поставил. Какую задачу я не понял ? Я начинал с какой то задачи ? Еще раз повторю - правильность понимания задачи проверяйте у своих джунов. Partisan MВ действительности ему не надо измерять процент попаданий в кеш. В действительности чем больше мы работам с кешом тем сильнее наблюдаем прирост производительности - это и ежу понятно. Partisan MНо если ему охота заниматься фигнёй, то зачем ему давать советы, как это лучше делать. Пусть организация, в которой он работает, и даёт ему задания на фигню. Фигня это нанимать таких псевдоэкспертов как Вы. Это и ежу понятно что в случае распараллеливания и деления вычислений на чанки мы получаем прирост производительности. https://ru.wikipedia.org/wiki/Green_threads Вот Вам еще ссылка по теме, как раз выделением кванта времени под каждую задачу. Тут еще бонусом и уход от Context Switching получаем. Только какое это имеет отношение к задаче ? Мы не всегда можем распараллелить то что уже и так распараллелено и дальше начинаем ускорять внутри одного потока. Далее встает вопрос об организации хранения структур которые будут обрабатываться одним тредом (без распараллеливания). Все тот же вопрос про LinkedList и ArrayList. Эксперт блин. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 16:03 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Partisan M, спасибо за мысли. Я думал про GPU. Я конечно погорячился когда сказал что рассуждаю безотносительно ЯП и алгоритма. Язык появляется когда ты думаешь как это реализовать для бизнеса. Я читал разные статьи по майнинг биткоинов и криптографические задачи с использованием Nvidia/CUDA e.t.c. Но у всех у них есть своя специфика. Например - очень хороший параллелизм. Например можно запустить на 512 ядрах подбор пароля по хешу. При этом каждое ядро имеет свой диапазон паролей. При довольно средней производительности каждого CPU, общая производительность умножается на 512. То-же самое с рисованием текстур. Каждый процессор рисует отдельную свою текстуру в общую память. Блокировок по памяти нет. Там - грязный доступ. Поэтому все очень красиво летает и бегает. Ну вобщем я сначала сделал ошибку обозвав наш алгоритм САВ. Действительно майнинг паролей и рендеринг текстур тоже подходят под определение САВ. Но я думаю что такой класс алгоритмов нам не подходит. Семеныч? Что скажешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 16:06 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
maytonДалее. Гипотеза 1. Реально мы можем без конкуренции использовать только 2 процесса(потока) операционной системы которые мы должны закрепить строго за определённым набором CPU-Threads. Да, мопвашуять, не ваша эта проблема! СтоИт у меня на полке книга, оригинал которой был издан в 1997 (2-е издание), а перевод - в 1998. И уже там рассказывается, что нормальный планировщик потоков нормальной системы обязан учитывать сродство кэшей (cache affinity). Вы (и особенно автор топика) правда считаете, что аппаратные счётчик, доступ к которым сурово зависит от операционной системы надо обсуждать в рамках виртуальной ява-машины? Может, объясните, мне, убогому, чем профилирование одной разделяемой библиотеки отличается от профилирования другой разделяемой библиотеки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 16:06 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
maytonСеменыч? Что скажешь? А что тут сказать. Фейспалм да и только. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 16:08 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Семен.СеменовичВ действительности чем больше мы работам с кешом тем сильнее наблюдаем прирост производительности - это и ежу понятно. В бытность своего занятия Dbms Oracle мы часто сравнивали две ентерпрайзные БД по т.н. Buffer Cache Hit Ratio. И вот что мы заметили. На очень плохих по перформансу БД этот коэффициент был великолепен и на хороших он был - так себе. Это не было системой. Было и наоборот. И это не было искусственной накруткой счетчика. Просто так легли карты. Была одна бестолковая транзакция которая долбила в какой-то блок и поднимала счетчик ввысь. Но эта ее бестолковость не делала пользы для продуктивной БД в целом. И я для себя сделал вывод. Мы можем смотреть в этот счетчик. Но в совокупности с другими метриками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 16:13 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovmaytonДалее. Гипотеза 1. Реально мы можем без конкуренции использовать только 2 процесса(потока) операционной системы которые мы должны закрепить строго за определённым набором CPU-Threads. Да, мопвашуять, не ваша эта проблема! СтоИт у меня на полке книга, оригинал которой был издан в 1997 (2-е издание), а перевод - в 1998. И уже там рассказывается, что нормальный планировщик потоков нормальной системы обязан учитывать сродство кэшей (cache affinity). Вы (и особенно автор топика) правда считаете, что аппаратные счётчик, доступ к которым сурово зависит от операционной системы надо обсуждать в рамках виртуальной ява-машины? Может, объясните, мне, убогому, чем профилирование одной разделяемой библиотеки отличается от профилирования другой разделяемой библиотеки? Василий. Я тебя умоляю... Я-же пишу. Гипотеза. Это значит что я ПРЕДПОЛАГАЮ что это так. И вообще. Зачем так бурно реагируешь? Давай - пиши опровержение. Я не против. Но только без лишних эмоций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 16:16 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Семен.СеменовичmaytonСеменыч? Что скажешь? А что тут сказать. Фейспалм да и только. Да я не про это. Я про то что САВ нам в топике не подходит. Нам нужен бизнес-САВ. БСАВ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 16:21 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
maytonЗачем так бурно реагируешь?Потому, что толерантность хороша только гомеопатических дозах. Если человек гонит пургу - не надо выискивать жемчужное зёрнышко в навозной куче. Если человек занимается финальной оптимизацией - его квалификация должна быть на соответствующем уровне. Он же не домашним хобби занят и не фрилансит задёшево. Или когда сеньор задаёт вам юниорские вопросы, вы тоже начинаете терпеливые объяснения основ? Или, всё-таки, указываете на неполное служебное? Ну и старое правило нетикета не надо забывать: "Правильно сформулированный вопрос должен содержать, как минимум, половину ответа". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 16:24 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
maytonСемен.Семеновичпропущено... А что тут сказать. Фейспалм да и только. Да я не про это. Я про то что САВ нам в топике не подходит. Нам нужен бизнес-САВ. БСАВ. Мой опыт показал, что существует теоретический подход к правильной организации данных в памяти. И этот подход не зависит ни от операционной системы, ни от бизнес задачи. Можно сколько угодно обсуждать что на Земле каждый день меняется температура, однако законы термодинамики при этом не меняются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 16:25 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovПотому, что толерантность хороша только гомеопатических дозах. Если человек гонит пургу - не надо выискивать жемчужное зёрнышко в навозной куче. Золотые слова. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 16:26 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Семен.СеменовичМой опыт показал, что существует теоретический подход к правильной организации данных в памяти. И этот подход не зависит ни от операционной системы, ни от бизнес задачи. Можно сколько угодно обсуждать что на Земле каждый день меняется температура, однако законы термодинамики при этом не меняются. Смотри. Выше Партизан написал дескыть при правильном параллелизме - берите Хадуп и всё у вас летает. Все верно. Он попал пальцем в небо. Но он говорил об классе задач. Это задачи с высокой степенью параллелизма. Это все что соответствует map-reduce. Это select ... group by. Это аналитика. Это копание биткоинов и подбор паролей. Эти все задачи идеально параллелятся. Особенно если читаемые данные редко пересекаются. Но я щас говорю не о задачах параллелизма а о задачах concurrency. Когда идет OLTP. Когда идут интенсивные модификации памяти. Когда есть много блокировок. Когда данные пересекаются постоянно и много. Когда LRU. Когда EhCache. Когда InfiniSpan. Вот о чем я. Я изначально говорил о другом КЛАССЕ задач. Так вот я тебя повторно спрашиваю. Тебе нужен какой класс задач? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 16:32 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
maytonТак вот я тебя повторно спрашиваю. Тебе нужен какой класс задач? Для какого класса задач создали ArrayList ? Да для любого правда ? Зачем задавать такие вопросы ? Считайте что я пишу JDK коллекции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 16:35 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Семен.СеменовичСчитайте что я пишу JDK коллекции. Ну хоть какая-то ясность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 16:36 |
|
||
|
Cache miss/hit detector in Java
|
|||
|---|---|---|---|
|
#18+
Представляю себе ДагаЛи пишущего ArrayList. "Ой блин зачем я тут думаю о кеш локалити - можно же распараллелить работу с эррей листом - закон же ландау у меня и чанки. Гуру со скуля там че то умное про это писали." Цирк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2017, 16:36 |
|
||
|
|

start [/forum/topic.php?all=1&fid=59&tid=2122635]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
86ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
171ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 534ms |

| 0 / 0 |
