Почему фильтр с побочными эффектами работает лучше, чем реализация на основе Spliterator?

Что касается вопроса Как пропустить четные строки Stream, полученные из Files.lines, я следовал принятому подходу к ответам, реализующему мой собственный метод ---- +: = 0 =: + ---- на основе ---- +:= 1 =: + ---- интерфейс, например:который я могу использовать следующим образом:Однако, измеряя производительность этого подхода по сравнению со следующим, который использует ---- +: = 4 =: + ---- с побочными эффектами, я заметил, что следующий работает лучше:Я тестировал производительность с JMH и не включаю загрузку файлов в тест.Я предварительно загрузил его в массив.Затем каждый тест начинается с создания ---- +: = 6 =: + ---- из предыдущего массива, затем фильтрации четных строк, а затем применения ---- +: = 7 =: + ---- кизвлеките значение поля ---- +: = 8 =: + ---- и, наконец, операцию ---- +: = 9 =: + ---- .Вот один из тестов (вы можете проверить все ---- +: = 10 =: + ---- здесь, а здесь у вас есть файл данных примерно из 186 строк ):Я не понимаю, почему подход ---- +: = 12 =: + ---- имеет лучшую производительность (~ 80ps /ms), чем ---- +: = 13 =: + ---- (~50ps /ms)?
7 голосов | спросил Miguel Gamboa 5 Maypm17 2017, 19:35:20

0 ответов


Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132