игра брюс 2048
Главная / Программирование / Введение в оптимизацию приложений с использованием компиляторов Intel / Тест 4

Введение в оптимизацию приложений с использованием компиляторов Intel - тест 4

Упражнение 1:
Номер 1
Что из перечисленного относят к хорошему стилю программирования?

Ответ:

 (1) наличие безусловных переходов 

 (2) наличие операторов выхода из цикла 

 (3) модульность 

 (4) наличие меток 

 (5) короткие имена переменных 

 (6) ничего из перечисленного 


Номер 2
Что из перечисленного относят к плохому стилю программирования?

Ответ:

 (1) наличие циклических конструкций 

 (2) использование глобальных переменных 

 (3) длинные имена функций 

 (4) наличие операторов типа if 

 (5) ничего из перечисленного 


Номер 3
Каким образом сказывается использование глобальных переменных?

Ответ:

 (1) никаким образом 

 (2) остаётся слишком мало имён для локальных 

 (3) увеличивается размер кода из-за длинных глобальных имён 

 (4) усложняется оптимизация 

 (5) зачастую усложняется читаемость кода 


Упражнение 2:
Номер 1
Что такое область видимости переменной?

Ответ:

 (1) область, в которой нельзя определять другие переменные с таким же именем 

 (2) область памяти, значения из которой может принимать указатель 

 (3) область значений переменной 

 (4) контекст, для которого переменная определена 

 (5) базовый блок, в котором определяется переменная 


Номер 2
Какие цели преследует правильное форматирование кода?

Ответ:

 (1) ускоряет инлайнинг 

 (2) разделяет области видимости переменных 

 (3) код становится проще читать 

 (4) компиляторные оптимизации упрощаются 

 (5) ничего из перечисленного 


Номер 3
Какие цели преследует правильное разбиение программы на процедуры и функции?

Ответ:

 (1) стандартизация 

 (2) сериализация 

 (3) растеризация 

 (4) декомпозиция 

 (5) абстрактизация 


Упражнение 3:
Номер 1
Какие недостатки имеют оптимизации процедурного уровня?

Ответ:

 (1) могут быть использованы для процедур, но не для функций 

 (2) учитывают массивы только константной длинны 

 (3) не могут быть использованы в нагруженных функциях 

 (4) каждый вызов процедуры для них – "чёрный ящик" 

 (5) не учитывают данные типа запись 


Номер 2
Какие недостатки имеют оптимизации процедурного уровня?

Ответ:

 (1) могут быть использованы для процедур, но не для функций 

 (2) они лишены недостатков 

 (3) не учитываются переменные типа указатель 

 (4) неизвестны свойства глобальных переменных 

 (5) не производится векторизация 


Номер 3
Какие недостатки имеют оптимизации процедурного уровня?

Ответ:

 (1) недостаточная сериализация переменных 

 (2) неоптимальная работа с памятью 

 (3) неизвестны многие свойства переданных в процедуру параметров 

 (4) они лишены недостатков 

 (5) не производятся оптимизации циклических конструкций 


Упражнение 4:
Номер 1
Для включения межфайловой оптимизации необходимо использовать ключ компилятора

Ответ:

 (1) /Qipf 

 (2) /Qmulti-file 

 (3) /Qipo 

 (4) /Om 


Номер 2
Для выключения межпроцедурных оптимизаций используется ключ компилятора

Ответ:

 (1) /Qip- 

 (2) /Qip-disable 

 (3) /Qipo-disable 

 (4) /Qno-ipo 


Номер 3
Какой вид межпроцедурной оптимизации используется по умолчанию?

Ответ:

 (1) никакой межпроцедурной оптимизации 

 (2) оптимизации без учёта переменных типа "указатель" 

 (3) оптимизации внутри одного файла 

 (4) многофайловый межпроцедурный анализ 


Упражнение 5:
Номер 1
Когда требуются динамические структуры данных?

Ответ:

 (1) в случае, когда имеется очень часто изменяемый итератор цикла 

 (2) когда величина итератора может выходить за пределы типа данных  

 (3) для создания больших структур данных, размер которых не известен во время компиляции 

 (4) когда требуется в одной переменной хранить и строку и число 

 (5) когда отсутствует статистика запусков 


Номер 2
В чем неудобства динамического выделения памяти

Ответ:

 (1) данные становятся фрагментированными 

 (2) динамические объекты не могут обмениваться информацией со статическими объектами 

 (3) нет возможности набрать статистику запусков 

 (4) пропадает детерминированность кода 

 (5) массивы попадают в более медленную область памяти 


Номер 3
Динамическое выделение памяти

Ответ:

 (1) ведет к отказу от использования статистики запусков 

 (2) использует менеджер памяти  

 (3) используется для разделения блоков программы 

 (4) обязательно при обработке быстроизменяющихся переменных 

 (5) необходимо для хранения структурированных данных 


Упражнение 6:
Номер 1
Выберите верные утверждения

Ответ:

 (1) количество регистров обычно превосходит количество переменных в программе 

 (2) для распределения регистров используется метод рисования 

 (3) одна из базовых задач кодогенератора – распределение регистров 


Номер 2
При распределении регистров выполняется:

Ответ:

 (1) определение областей жизни переменных 

 (2) выделение наиболее значимых регистров 

 (3) сортировка регистров по размеру 

 (4) выделение области памяти для блока регистров 


Номер 3
В чем особенность хранения списков в динамической памяти?

Ответ:

 (1) элементы могут быть расположены в памяти случайным образом 

 (2) элементы в любой момент могут быть уничтожены сборщиком мусора 

 (3) в списке должно быть больше пяти элементов 


Упражнение 7:
Номер 1
Для чего могут быть использованы зависимости по данным в процессе кодогенерации?

Ответ:

 (1) для составления недостающих участков кода 

 (2) для определения возможности переиспользования данных 

 (3) для выделения несовместимых функций в отдельный граф несовместимости 

 (4) для определения несоответствия кода репрезентативной выборке 


Номер 2
Для чего используется планирование инструкций?

Ответ:

 (1) для предсказания вероятностей переходов 

 (2) для повышения инструкционного параллелизма 

 (3) для сравнения прохождения контрольных точек программы с запланированным временем 

 (4) для составления графа несовместимостей 


Номер 3
Каким образом осуществляется планирование инструкций?

Ответ:

 (1) изменением порядка инструкций 

 (2) составлением вероятностного плана переходов 

 (3) составлением списка времен прохождения контрольных точек программы 

 (4) распределением инструкций внутри графа несовместимостей 


Упражнение 8:
Номер 1
В чем особенность хранения списков в динамической памяти?

Ответ:

 (1) элементы могут быть расположены в памяти случайным образом 

 (2) элементы в любой момент могут быть уничтожены сборщиком мусора 

 (3) в списке должно быть больше пяти элементов 


Номер 2
Каким образом можно улучшить размещение элементов списка в динамической памяти

Ответ:

 (1) отказавшись от сборщика мусора 

 (2) при помощи инлайнинга 

 (3) при помощи контейнеров 

 (4) используя несколько процессоров 


Номер 3
Связанный динамический список хуже линейного потому что

Ответ:

 (1) снижается вероятность попадания в кэш при последовательном обходе элементов 

 (2) множество возможных типов данных меньше 

 (3) добавляются накладные расходы на хранение ссылки 

 (4) данные ссылок постоянно меняются, а элементы перемещаются друг относительно друга 


Номер 4
Статический список лучше динамического потому что

Ответ:

 (1) не требует накладных расходов по выделению памяти 

 (2) может содержать элементы произвольного размера 

 (3) моделируется на основе статистики 

 (4) может содержать данные типа "запись" 




Главная / Программирование / Введение в оптимизацию приложений с использованием компиляторов Intel / Тест 4