Показано с 1 по 10 из 20

Тема: StringBuilder или StringBuffer

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию StringBuilder или StringBuffer

    Внезапно поднялась тема про профилирование java.

    Предыстория тут: http://www.owen.ru/forum/showthread....l=1#post194543

    Краткий перессказ тут: http://shipilev.net/blog/2015/voltmeter/

    jmh: http://openjdk.java.net/projects/code-tools/jmh/

    Цитата Сообщение от capzap Посмотреть сообщение
    Гы, только обратил внимание, Вас на столько раздражает, что я ни принимаю jmh
    Да. Без jmh замеры невозможны.

    Цитата Сообщение от capzap Посмотреть сообщение
    что в одном посте Вы меня учите кому чем не тыкать
    Именно. Темой "StringBuilder vs StringBuffer" не тыкайте, пожалуйста.
    TON'ом, PID'ом или ещё чем -- совсем другой вопрос.

    Цитата Сообщение от capzap Посмотреть сообщение
    а в другом намекаете что я пишу убожество? Меня вполне устраивает, что нет желтых подчеркиваний, findbugs не ругается
    Нет, не намекаю.
    Мои слова: "замер без jmh -- порнография". Остальное не обсуждалось и не подразумевалось. Да, я тоже за код без жёлтых подчёркиваний.
    Но вот замерять что-то без JMH -- извольте.

    Цитата Сообщение от capzap Посмотреть сообщение
    когда есть варианты реализации пробую все через профилировщик
    Профилировщик -- хорошо. Но сначала нужно тест на JMH, а потом уже профилировать.
    Обратный порядок неверен.

    Цитата Сообщение от capzap Посмотреть сообщение
    добавлял -verbose:gc -Xms2g -Xmx2g помогло только StringBuffer улучшить скорость выполнения
    Вот видите, это подтверждает то, что конкретный бенчмарк упирается не только в код классов Buffer/Builder, но и в сборку мусора.

    Цитата Сообщение от capzap Посмотреть сообщение
    и по поводу приведенного примера бенчмарка, слова Fork я так понимаю это что то связано с асинхронным выполнением задач, другими словами несколько потоков где преимущество имеет StringBuffer, может по этому он вровень идет
    Нет, тут всё синхронно и ровно в один поток.
    @Fork(3) заставляет jmh выполнять тест 3 раза. При этом для каждого теста java машина запускается 3 раза.
    Это нужно для того, чтобы исключить случаи, когда "от запуска к запуску самой java машины" меняется результат. Такое бывает.

    Если посмотрите логи, выполнений, то там видно, что каждый из тестов запускался 3*10*2=60 раз.

    1-ый запуск jvm: 10 прогревочных запусков (они отбрасываются), 10 измерительных (по ним усредняем)
    2-ый запуск jvm: 10 прогревочных запусков (они отбрасываются), 10 измерительных (по ним усредняем)
    3-ий запуск jvm: 10 прогревочных запусков (они отбрасываются), 10 измерительных (по ним усредняем)

    Т.е. итоговый результат -- усреднение по 30 запускам.
    Последний раз редактировалось Владимир Ситников; 29.01.2016 в 23:03.

Похожие темы

  1. HiperTerminal или ...
    от Илья Кареткин в разделе Сетевые технологии
    Ответов: 16
    Последнее сообщение: 15.07.2016, 23:27
  2. Ответов: 3
    Последнее сообщение: 20.02.2016, 16:29
  3. выходы Р или К?
    от service в разделе ПЛК1хх
    Ответов: 9
    Последнее сообщение: 11.12.2012, 14:38
  4. Ответов: 8
    Последнее сообщение: 04.04.2011, 15:38
  5. ПЛК150 или ПЛК63?
    от alex241 в разделе Подбор Оборудования
    Ответов: 3
    Последнее сообщение: 28.01.2010, 12:44

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •