megarazor

никогда не любил атлоны; информация к размышлению

магическим образом разбор одного и того же иерархического текста одним и тем же java кодом на интелмаке осуществляется в разы быстрее чем на атлонвинде с аналогичной системной конфигурацией.

2.5Мб текста в формате xml обрабатываются apache xmlbeans и jaxp xpath. два источника: файл и уже подготовленная строка, оба содержат идентичный текст.

тест #1: синтаксис
на маке xmlbeans разбирает строку за 300мс, на атлоновинде - за 400мс. ожидаемо. файл же на маке разбирается значительно быстрее, ~200мс /* что уже удивительно, я всегда думал что оперативная память не просто так свое название имеет */ против ожидаемых 700мс [и даже длительнее] на атлонвинде.

тест #2: семантика
валидация разобранного текста на обеих платформах выполняется за примерно одинаковое время, что неудивительно /* однако почему-то валидация при разборе файла на обеих платформах осуществляется стабильно быстрее валидации при разборе строки, почти в два раза */.

xpath-запрос, подсчитывающий число определенных структур в исходном тексте, выполняется на маке за ~1c, тогда как на атлонвинде за 1.5с.

а вот теперь магия и волшебство. будучи реализован "руками" при помощи разбора через xmlbeans с последующим перебором и подсчетом на чистой java, упомянутый запрос выполняется на маке чуть-чуть медленнее (~1.2с), а вот на атлонвинде он выполняется 5с /* и это уже нихуя не "чуть-чуть" медленее :) */!

и таких загадок хватает на весь фильм ©. с чем это связано: с реализацией ли jvm, с особенностями ли управления ресурсами, - не знаю и вобщем не особо и хочу знать.
Tags: ,