You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: Chapters/Chapter2.adoc
+11-11Lines changed: 11 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
== Глава 2. Введение в компиляторные оптимизации
1
+
== Введение в компиляторные оптимизации
2
2
3
3
В этой главе вы узнаете о часто используемых компиляторных оптимизациях, которые используются для уменьшения размера кода
4
4
и повышения производительности, а также о различных инструментах и методах профилирования.
@@ -87,7 +87,7 @@
87
87
88
88
* *Флаги, предоставляющие значение*
89
89
+
90
-
Такие флаги, как `-D`, `-fprofile-use`, `-stdlib=libstdc++`, предоставляют компилятору дополнительные входные данные, которые могут помочь в оптимизации,
90
+
Такие флаги, как `-D`, `-fprofile-use`, `-stdlib=libstdc{pp}`, предоставляют компилятору дополнительные входные данные, которые могут помочь в оптимизации,
91
91
диагностике, инструментировании и т. д.
92
92
93
93
=== Оптимизация производительности
@@ -102,7 +102,7 @@
102
102
103
103
Это тривиальный случай, когда оптимизация компилятора не выполняется.
104
104
Тем не менее оптимизация для конкретного языка в соответствии с требованиями стандарта по-прежнему выполняется.
105
-
Например, вычисления во время компиляции, требуемые стандартом C++, по-прежнему выполняются.
105
+
Например, вычисления во время компиляции, требуемые стандартом C{pp}, по-прежнему выполняются.
106
106
Этот уровень очень полезен для целей отладки в сочетании с флагом компилятора `-g`.
107
107
Поскольку `-O0` не выполняет оптимизацию, время компиляции является самым быстрым,
@@ -451,7 +451,7 @@ https://www.youtube.com/watch?v=6IuDWfuMEno[«Code Size Compiler Optimizations a
451
451
Оба подхода помогают уменьшить размер двоичного файла.
452
452
Ниже приведены мотивирующие примеры.
453
453
454
-
Раннее вычисление: используя такие возможности языка, как `constexpr`, `static_assert` из C++, некоторые выражения могут быть вычислены раньше, например:
454
+
Раннее вычисление: используя такие возможности языка, как `constexpr`, `static_assert` из C{pp}, некоторые выражения могут быть вычислены раньше, например:
455
455
456
456
[source,cpp]
457
457
----
@@ -473,7 +473,7 @@ int main() {
473
473
}
474
474
----
475
475
476
-
Компилируя программу, представленную выше, используя команду `g++ std=c++17 -fno-exceptions -S`:
476
+
Компилируя программу, представленную выше, используя команду `g{pp} std=c{pp}17 -fno-exceptions -S`:
* https://www.youtube.com/watch?v=6IuDWfuMEno[Адитья Кумар -- Оптимизация размера кода компилятора и методы для встраиваемых систем]
586
-
* https://www.youtube.com/watch?v=OTCp_AkAyRQ[Адитья Кумар и Себастьян Поп -- Анализ производительности и оптимизация стандартных библиотек C++]
586
+
* https://www.youtube.com/watch?v=OTCp_AkAyRQ[Адитья Кумар и Себастьян Поп -- Анализ производительности и оптимизация стандартных библиотек C{pp}]
587
587
* https://developercommunity.visualstudio.com/t/192628900-pragma-optimize-off-is-not-working-as-ex/1091452[Сообщество разработчиков Visual Studio -- pragma optimize off работает не так, как ожидалось]
588
588
* https://linux.die.net/man/1/nm[nm(1) -- страница руководства Linux]
589
589
* https://hacktalks.blogspot.com/2013/08/gcc-instrument-functions.html[Инструментирующие функции GCC]
Copy file name to clipboardExpand all lines: Course.adoc
+3Lines changed: 3 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,6 +3,8 @@
3
3
:doctype: book
4
4
:toc: macro
5
5
:toc-title: Содержание
6
+
:chapter-signifier: Глава
7
+
:figure-caption: Рисунок
6
8
7
9
Данные материалы являются переводом курса https://training.linuxfoundation.org/training/risc-v-toolchain-and-compiler-optimization-techniques-lfd113x/[RISC-V Toolchain and Compiler Optimization Techniques (LFD113x)], распространяемого под лицензией https://creativecommons.org/licenses/by/4.0/[CC BY 4.0].
0 commit comments