Получи случайную криптовалюту за регистрацию!

Computer Science

Логотип телеграм канала @cscience1 — Computer Science C
Логотип телеграм канала @cscience1 — Computer Science
Адрес канала: @cscience1
Категории: Технологии
Язык: Русский
Количество подписчиков: 10.58K
Описание канала:

По всем вопросам: @altmainf
Уважаемый менеджер: @altaiface

Рейтинги и Отзывы

3.00

2 отзыва

Оценить канал cscience1 и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

0

4 звезд

0

3 звезд

2

2 звезд

0

1 звезд

0


Последние сообщения 3

2023-06-10 12:02:18 Локальная оптимизация

Локальная оптимизация - это метод оптимизации, который применяется к небольшим фрагментам кода, называемым базовыми блоками, для улучшения его производительности. Она применяется в компиляторах на этапе генерации машинного кода для оптимизации программы.

Примеры локальных оптимизаций включают в себя следующие:
- Устранение идентичных операций;
- Устранение избыточных вычислений;
- Замена сложных операций более простыми (например, замена умножения на степень двойки на сдвиг);
- Замена медленных операций более быстрыми;
- Ускорение циклов;
- Встраивание функций;
- Устранение ненужных промежуточных вычислений и т.д.

Такая оптимизация позволяет сократить количество инструкций, необходимых для выполнения программы, что уменьшает время ее работы и повышает производительность.
1.0K views09:02
Открыть/Комментировать
2023-06-09 12:02:11 Peephole-оптимизация

Метод оптимизации программного кода, который заключается в анализе нескольких последовательных инструкций в программе (называемых "peephole"), чтобы определить, можно ли их заменить более эффективной комбинацией или порядком инструкций.

Для проведения peephole-оптимизации на уровне ассемблера, компилятор анализирует последовательность операций и заменяет их на более оптимизированные.

Например, удвоение числа может быть более эффективно выполнено с использованием левого сдвига или путём сложения числа с таким же.
845 views09:02
Открыть/Комментировать
2023-06-08 14:02:27 Что такое peephole?

Peephole - это небольшой набор последовательных машинных инструкций, который обычно составляется для исправления архитектурных особенностей процессора или определенного набора инструкций.

Peephole может использоваться для оптимизации кода, например, замена нескольких инструкций на эквивалентную одну для сокращения времени выполнения программы.

Также, peephole может использоваться для обработки ошибок в коде, например, если происходит переполнение стека, то в peephole можно добавить инструкцию для очистки стека или добавление проверки на условия, при которых может произойти переполнение.
1.1K views11:02
Открыть/Комментировать
2023-06-08 12:02:47
Первый в России ускоренный онлайн-бакалавриат «Фронтенд и мобильная разработка» — от Яндекс Практикума и университета ИТМО.

— Учёба 2,5 года вместо четырёх лет
— Диплом государственного образца по направлению «Прикладная информатика»
— Можно выбрать специализацию: фронтенд, iOS- или Android-разработка
— Удобно совмещать с работой: обучение онлайн, 20-25 часов в неделю
— Преподаватели — действующие разработчики
— Стажировка в крупных IT-компаниях
— Системное развитие хард-и софтскилов

Программы рассчитаны на людей со средним профессиональным или высшим образованием.
Обучение почти в два раза короче, потому что формат позволяет перезачесть часть общих предметов и оставить только профильные.

Поступайте, чтобы стать востребованным разработчиком и подготовиться к роли тимлида.

→ Оставить заявку

Реклама АНО ДПО "Образовательные технологии Яндекса", ИНН:7704282033, erid: LjN8KCpNz
1.1K views09:02
Открыть/Комментировать
2023-06-07 12:02:22 Для чего нужен оптимизирующий компилятор?

Оптимизирующий компилятор - это компилятор, который способен преобразовывать входной код программы с целью повышения её эффективности и оптимизации. Это достигается за счет применения различных алгоритмов оптимизации, которые преобразуют и оптимизируют код для улучшения его производительности.

Могут выполнять различные виды оптимизаций:
1. Устранение неиспользуемого кода.
2. Избавление от повторяющегося кода.
3. Векторизация - преобразование циклов с пересылкой данных между массивами в код, работающий с векторами.
4. Улучшение работы с памятью.
5. Избавление от избыточных вычислений.
6. Использование регистров и кэша процессора.
1.2K views09:02
Открыть/Комментировать
2023-06-06 12:06:35 Межпроцедурная оптимизация

Межпроцедурная оптимизация - это вид оптимизации в программировании, который позволяет улучшить производительность программы, включая несколько функций и подпрограмм. Она основана на анализе потоков данных и контроля за использованием памяти, и как следствие, на основании этого, устранении избыточных действий.

Применение межпроцедурной оптимизации может ускорить выполнение программы, снизить потребление памяти, а также сократить объем программы за счет удаления неиспользуемого кода или упрощения сложных алгоритмов.

Кроме того, межпроцедурная оптимизация может применяться для устранения повторяющихся действий, таких как перезапись переменных, вызов одной и той же функции с разными аргументами и др.
1.4K views09:06
Открыть/Комментировать
2023-06-05 12:02:03 Индуктивная переменная

Индуктивная переменная — переменная в циклах, последовательные значения которой образуют арифметическую прогрессию. Наиболее распространенный пример — счётчик цикла. Индуктивные переменные часто используются в индексных выражениях массивов.

Например, в следующем примере, i и j являются индуктивными переменными:

for ( i = 0; i < 10; i++ ) {
j = 17 * i;
}

Традиционные методы оптимизации предусматривают распознавание индуктивных переменных и удаление их из цикла.
1.5K views09:02
Открыть/Комментировать
2023-06-03 12:02:35 Инверсия цикла

Инверсия цикла (англ. Loop inversion) — оптимизация компилятора и трансформация цикла, в ходе которой while-цикл заменяется на оператор ветвления, содержащий do-while-цикл. При правильном использовании данная оптимизация повышает производительность за счет конвейеризации.

Пример на С, код:
int i, a[100];
i = 0;
while (i < 100) {
a[i] = 0;
i++;
}

в результате применения оптимизации преобразовывается в:
int i, a[100];
i = 0;
if (i < 100) {
do {
a[i] = 0;
i++;
} while (i < 100);
}
1.7K views09:02
Открыть/Комментировать
2023-06-02 12:03:29 Вызов по необходимости

Вызов по необходимости - это стратегия передачи аргументов при вызове функции, при которой аргумент вычисляется только тогда, когда он действительно нужен в вычислениях.

В отличие от вызова по значению, где аргумент вычисляется до вызова функции (независимо от того, используется ли он или нет), вызов по необходимости определяет, когда и каким образом вычислять аргументы, анализируя инструкции в теле функции, которые используют значения этих аргументов.

Вызов по необходимости может быть полезен для экономии памяти и ускорения выполнения программы, когда часть аргументов не используется в вычислениях. Однако, вызов по необходимости также может внести определенные задержки в работе программы, связанные с вычислением аргументов во время выполнения.
1.7K views09:03
Открыть/Комментировать
2023-06-01 12:01:47 Вызов по имени

Вызов по имени - это стратегия передачи аргументов при вызове функции. При вызове по имени аргумент не вычисляется заранее, только когда он необходим внутри функции. Вместо этого, выражение-аргумент передаются как формальный параметр, который заменяется на соответствующее выражение-аргумент в теле функции, только когда значения аргумента действительно требуется.

Вызов по имени может быть полезным, когда некоторые аргументы могут не быть использованными в функции. В этом случае вычисление аргумента не будет совершаться и не будет занимать память. Однако, это также может приводить к существенно большему времени выполнения функции, если какие-то аргументы используются многократно внутри функции.

Вызов по имени часто используется в функциональных языках программирования, таких как Haskell, а также в лямбда-исчислении и функциональных парадигмах программирования в целом.
1.7K views09:01
Открыть/Комментировать