💡 Инструкция: Выберите один ответ из пяти. На 30 вопросов отведено 85 минут. В каждом вопросе верен только один вариант. После завершения откроются общий результат, оценки по 6 тематическим шкалам и подробный разбор.
Вопрос 1 из 30
Что в этом примере с `@x`, `$_` и `@a` происходит на самом деле?
Perl Измерения с модулем Benchmark Копировать
use Benchmark 'cmpthese';
cmpthese(-3,{map=>sub{my @x=map $_*2,@a},loop=>sub{my @x;push @x,$_*2 for @a}});
Показанная версия изначально работает как исправленная: Сравнение повторяется, но setup внутри измерения может доминировать; общую подготовку нужно отделить, если она не часть операции.
В этой версии кода возникает другой результат: Односекундная точность и один запуск непригодны для короткой операции и подвержены шуму.
В показанном коде «Измерения с модулем Benchmark» проявляется другой эффект: односекундная точность и один запуск непригодны для короткой операции и подвержены шуму.
Единственное существенное правило этого запуска — следующая оговорка: Быстрее в микротесте не означает быстрее в приложении, если объёмы, ввод-вывод и распределение данных отличаются.
Отрицательное время просит измерять варианты заданное число процессорных секунд, а cmpthese сравнивает скорости.
Вопрос 13 из 30
Как правка с `cmpthese`, `setup` и `target_a` меняет поведение на неудобном входе?
Perl Измерения с модулем Benchmark Копировать
cmpthese(20,{a=>sub{setup();target_a()},b=>sub{setup();target_b()}});
После изменения сохраняется прежний дефект: Односекундная точность и один запуск непригодны для короткой операции и подвержены шуму.
Сравнение повторяется, но setup внутри измерения не может доминировать; общую подготовку нужно отделить, если она не часть операции.
Сравнение повторяется, но setup внутри измерения может доминировать; общую подготовку не нужно отделить, если она не часть операции.
Сравнение повторяется, но setup внутри измерения может доминировать; общую подготовку нужно отделить, если она не часть операции.
Правка лишь воспроизводит исходное поведение: Отрицательное время просит измерять варианты заданное число процессорных секунд, а cmpthese сравнивает скорости.
Вопрос 19 из 30
Какое правило отделяет семантику Perl от случайно удачного запуска?
Общее правило темы «Измерения с модулем Benchmark» сводится к частному результату: Отрицательное время просит измерять варианты заданное число процессорных секунд, а cmpthese сравнивает скорости.
Правило «Benchmark используют после определения реальной гипотезы, с одинаковыми данными, прогревом и проверкой эквивалентности результатов» гарантирует, что ограничение «Быстрее в микротесте не означает быстрее в приложении, если объёмы, ввод-вывод и распределение данных отличаются» больше не проявится.
Для ревью достаточно исключить частный дефект: Односекундная точность и один запуск непригодны для короткой операции и подвержены шуму.
Общее правило исчерпывается единственной правкой: Сравнение повторяется, но setup внутри измерения может доминировать; общую подготовку нужно отделить, если она не часть операции.
Benchmark используют после определения реальной гипотезы, с одинаковыми данными, прогревом и проверкой эквивалентности результатов.
Вопрос 20 из 30
Какую закономерность проверяют задания темы «Профилирование с Devel::NYTProf»?
Профилировщик показывает, где тратится время, но причина может быть в данных, блокировке, системном вызове или вызываемой библиотеке.
Для всех случаев темы подходит одно изменение: Профиль снимается на воспроизводимой нагрузке и сравнивается с базовой версией.
Общее правило темы «Профилирование с Devel::NYTProf» сводится к частному результату: NYTProf собирает профиль по строкам и подпрограммам, а nytprofhtml строит интерактивный отчёт.
Для ревью достаточно исключить частный дефект: Один холодный запрос может показать инициализацию, но скрыть горячий путь и вариативность нагрузки.
Профилировщик показывает, где тратится время, но причина не может быть в данных, блокировке, системном вызове или вызываемой библиотеке.
Вопрос 25 из 30
Какую оговорку нужно добавить к основному правилу темы «Измерения с модулем Benchmark»?
Базовое правило «Benchmark используют после определения реальной гипотезы, с одинаковыми данными, прогревом и проверкой эквивалентности результатов» автоматически снимает указанную границу.
Быстрее в микротесте не означает быстрее в приложении, если объёмы, ввод-вывод и распределение данных отличаются.
Ограничение «Быстрее в микротесте не означает быстрее в приложении, если объёмы, ввод-вывод и распределение данных отличаются» исчезает, если обычный пример один раз завершился успешно.
Быстрее в микротесте означает быстрее в приложении, если объёмы, ввод-вывод и распределение данных отличаются.
Современный Perl устраняет указанное ограничение, поэтому отдельный тест избыточен.
Вопрос 27 из 30
Что остаётся верным о теме «Регулярные выражения», если учитывать контекст, отказ и побочный эффект?
Атомарные группы и possessive-квантификаторы могут убрать отступление, но сначала не нужно доказать, что они сохраняют требуемую семантику.
Атомарные группы и possessive-квантификаторы могут убрать отступление, но сначала нужно доказать, что они сохраняют требуемую семантику.
В актуальной версии Perl эта граница больше не действует.
Базовое правило «Производительность regex проверяют на худших неподходящих строках, ограничивают вход и предпочитают однозначные конструкции или специализированный парсер» автоматически снимает указанную границу.
Ограничение «Атомарные группы и possessive-квантификаторы могут убрать отступление, но сначала нужно доказать, что они сохраняют требуемую семантику» исчезает, если обычный пример один раз завершился успешно.