спасибо за помощь!
Подробнее о работе
Гарантия сервиса Автор24
Уникальность не ниже 50%
Введение
При решении вычислительных задач немаловажной является задача выбора компилятора. Компилятор – это инструмент разработчика программного обеспечения (ПО), позволяющий транслировать программу на языке высокого уровня в эквивалентную программу, близкую к машинному коду. Разработчику важно, чтобы код, сгенерированный компилятором был, по возможности, оптимальным по затратам вычислительных ресурсов и ресурсов памяти.
Целью данной работы является проведение сравнительного анализа наиболее часто используемых компиляторов на производстве.
Поставленная цель обусловила необходимость решения следующих подзадач:
• ознакомиться с компиляторами языка С;
• изучить возможности выбранных на предыдущем шаге компиляторов;
• разработать и провести тестирование выбранных компиляторов.
Содержание
Введение 3
1.1. Процесс компиляции 4
1.2. Обзор компиляторов 7
1.2.1. Visual C 7
1.2.2. GNU Compiler Collection 8
1.2.3. Clang 10
Глава 2. Обзор задач 11
2.1. Накладные расходы 11
2.2. Тестовые задачи 12
Глава 3. Результаты тестирования 14
3.1. Результаты бенчмарка 1 14
3.2. Результаты бенчмарка 2 20
Заключение 23
Список литературы 24
Приложение 25
Листинг 1. benchmark_eratosthenes.cpp 25
Листинг 2. benchmark_qs.cpp 26
Заключение
В результате данной работы было произведено тестирование компиляторов: clang 3.4, clang 3.2, gcc 4.8, gcc 4.6, cl 18, cl 16 на тестовых задачах «Решето Эратосфена» и быстрая сортировка массива чисел типа double. Измерялось время выполнения кода, сгенерированного компилятором без включения оптимизации во время компиляции и с включением различных оптимизаций.
На данных тестовых задачах видно, что при включенных опциях оптимизации все рассматриваемые компиляторы генерировали код, который выполнялся быстрее, чем без них.
В процессе проведенных в работе исследований получены следующие результаты:
1. задача «Решето Эратосфена»
a) в качестве массива в реализации использован vectorbool:
o опция оптимизации O1 наилучший результат показывает gcc 4.8;
o опция оптимизации O2 и O3 наилучший результат показывает clang 3.4
b) в качестве массива в реализации использован vectorchar:
с оптимизацией O1, O2 и O3 быстрее остальных отработал код, сгенерированный cl 18.
2. Быстрая сортировка массива:
с оптимизацией O1, O2 и O3 быстрее остальных отработал код, сгенерированный cl 16.
Как и ожидалось, компиляторы от Microsoft неплохо проявили себя в тестах, даже выиграв второй тест (это может объясняться тем, что компиляторы Microsoft оптимизированы под Windows, а gcc и clang являются кроссплатформенными).
Список литературы
1. Першиков В. И., Савинков В. М. Толковый словарь по информатике / Рецензенты: канд. физ.-мат. наук А. С. Марков и д-р физ.-мат. наук И. В. Поттосин. — М.: Финансы и статистика, 1991
2. Aho, Sethi, Ullman, Compilers: Principles, Techniques, and Tools, Addison-Wesley, -2 ed. 2007
3. Microsoft Visual Studio 2010 [Электронный ресурс] – Режим доступа:
http://msdn.microsoft.com/ru-ru/library/vstudio/52f3sw5c(v=vs.100).aspx
4. GCC, the GNU Compiler Collection [Электронный ресурс] – Режим доступа: https://gcc.gnu.org/
5. The LLVM Compiler Infrastructure [Электронный ресурс] – Режим доступа: http://llvm.org/
6. clang: a C language family frontend for LLVM [Электронный ресурс] – Режим доступа: http://clang.llvm.org/
7. The LLVM Target-Independent Code Generator [Электронный ресурс] – Режим доступа: http://llvm.org/docs/CodeGenerator.html
8. Sedgewick, Robert (1992). Algorithms in C++. Addison-Wesley. ISBN 0-201-51059-6. , p. 16
9. GCC 4.6 Release Series Changes, New Features, and Fixes [Электронный ресурс] – Режим доступа: https://gcc.gnu.org/gcc-4.6/changes.html
10. GCC 4.8 Release Series Changes, New Features, and Fixes[Электронный ресурс] – Режим доступа: https://gcc.gnu.org/gcc-4.8/changes.html
Не подошла эта работа?
Закажи новую работу, сделанную по твоим требованиям
Введение
При решении вычислительных задач немаловажной является задача выбора компилятора. Компилятор – это инструмент разработчика программного обеспечения (ПО), позволяющий транслировать программу на языке высокого уровня в эквивалентную программу, близкую к машинному коду. Разработчику важно, чтобы код, сгенерированный компилятором был, по возможности, оптимальным по затратам вычислительных ресурсов и ресурсов памяти.
Целью данной работы является проведение сравнительного анализа наиболее часто используемых компиляторов на производстве.
Поставленная цель обусловила необходимость решения следующих подзадач:
• ознакомиться с компиляторами языка С;
• изучить возможности выбранных на предыдущем шаге компиляторов;
• разработать и провести тестирование выбранных компиляторов.
Содержание
Введение 3
1.1. Процесс компиляции 4
1.2. Обзор компиляторов 7
1.2.1. Visual C 7
1.2.2. GNU Compiler Collection 8
1.2.3. Clang 10
Глава 2. Обзор задач 11
2.1. Накладные расходы 11
2.2. Тестовые задачи 12
Глава 3. Результаты тестирования 14
3.1. Результаты бенчмарка 1 14
3.2. Результаты бенчмарка 2 20
Заключение 23
Список литературы 24
Приложение 25
Листинг 1. benchmark_eratosthenes.cpp 25
Листинг 2. benchmark_qs.cpp 26
Заключение
В результате данной работы было произведено тестирование компиляторов: clang 3.4, clang 3.2, gcc 4.8, gcc 4.6, cl 18, cl 16 на тестовых задачах «Решето Эратосфена» и быстрая сортировка массива чисел типа double. Измерялось время выполнения кода, сгенерированного компилятором без включения оптимизации во время компиляции и с включением различных оптимизаций.
На данных тестовых задачах видно, что при включенных опциях оптимизации все рассматриваемые компиляторы генерировали код, который выполнялся быстрее, чем без них.
В процессе проведенных в работе исследований получены следующие результаты:
1. задача «Решето Эратосфена»
a) в качестве массива в реализации использован vectorbool:
o опция оптимизации O1 наилучший результат показывает gcc 4.8;
o опция оптимизации O2 и O3 наилучший результат показывает clang 3.4
b) в качестве массива в реализации использован vectorchar:
с оптимизацией O1, O2 и O3 быстрее остальных отработал код, сгенерированный cl 18.
2. Быстрая сортировка массива:
с оптимизацией O1, O2 и O3 быстрее остальных отработал код, сгенерированный cl 16.
Как и ожидалось, компиляторы от Microsoft неплохо проявили себя в тестах, даже выиграв второй тест (это может объясняться тем, что компиляторы Microsoft оптимизированы под Windows, а gcc и clang являются кроссплатформенными).
Список литературы
1. Першиков В. И., Савинков В. М. Толковый словарь по информатике / Рецензенты: канд. физ.-мат. наук А. С. Марков и д-р физ.-мат. наук И. В. Поттосин. — М.: Финансы и статистика, 1991
2. Aho, Sethi, Ullman, Compilers: Principles, Techniques, and Tools, Addison-Wesley, -2 ed. 2007
3. Microsoft Visual Studio 2010 [Электронный ресурс] – Режим доступа:
http://msdn.microsoft.com/ru-ru/library/vstudio/52f3sw5c(v=vs.100).aspx
4. GCC, the GNU Compiler Collection [Электронный ресурс] – Режим доступа: https://gcc.gnu.org/
5. The LLVM Compiler Infrastructure [Электронный ресурс] – Режим доступа: http://llvm.org/
6. clang: a C language family frontend for LLVM [Электронный ресурс] – Режим доступа: http://clang.llvm.org/
7. The LLVM Target-Independent Code Generator [Электронный ресурс] – Режим доступа: http://llvm.org/docs/CodeGenerator.html
8. Sedgewick, Robert (1992). Algorithms in C++. Addison-Wesley. ISBN 0-201-51059-6. , p. 16
9. GCC 4.6 Release Series Changes, New Features, and Fixes [Электронный ресурс] – Режим доступа: https://gcc.gnu.org/gcc-4.6/changes.html
10. GCC 4.8 Release Series Changes, New Features, and Fixes[Электронный ресурс] – Режим доступа: https://gcc.gnu.org/gcc-4.8/changes.html
Купить эту работу vs Заказать новую | ||
---|---|---|
0 раз | Куплено | Выполняется индивидуально |
Не менее 40%
Исполнитель, загружая работу в «Банк готовых работ» подтверждает, что
уровень оригинальности
работы составляет не менее 40%
|
Уникальность | Выполняется индивидуально |
Сразу в личном кабинете | Доступность | Срок 1—6 дней |
660 ₽ | Цена | от 500 ₽ |
Не подошла эта работа?
В нашей базе 150252 Курсовой работы — поможем найти подходящую