ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
28 марта
896263
Evgeny_CD, Архитектор (15.01.2019 14:44, просмотров: 895)
Интересно, какая разница в скорости будет в двух вариантах группы связанных С функций? 1. Обычный функции. Получили параметры, создали локальные переменные на стеке, повызывали друг друга. Вышли наверх - все локальные переменные похерились. 2. Заточка под кооперативку. Каждая функция получает на вход указатель на структуру, где поля - ее локальные переменные. Так сказать контекст. Можно выйти "посредине процесса" - контекст сохранится. Разница для компилятора - в нормальном варианте все смещения локальных переменных отсчитываются от SP, в "кооперативном" - от другого регистра. В зависимости от свойства ISA это может быть как важно, так и пофиг. Во втором варианте требований к коду добавится. И код надо будет строго верифицировать. Но потенциальные преимущества немалые.