![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
В: Плюсы и минусы нескольких потоков на одноядерном пк
О: На одном процессоре многопоточность обычно происходит путём временного мультиплексирования: процессор переключается между разными потоками выполнения. Это переключение контекста обычно происходит достаточно часто, чтобы пользователь воспринимал выполнение потоков или задач как одновременное. Особенности многопоточности на одном ядре: · Можно произвольным образом распределить работу по потокам. Т.к. всё равно всё выполняется на одном ядре, то это не имеет значения. · Можно и нужно экстенсивно применять мьютексы для синхронизации. Т.к. всё выполняется на одном ядре, то это практически не влияет на производительность и масштабируемость. · Можно произвольным образом разделять данные между потоками. Т.к. процессор один, то это никак не влияет на производительность и масштабируемость. Фактически система работает так, как будто поток один, просто он выполяет то одну функцию, то другую. · Позволяет разрабатывать многопоточные программы на одноядерной системе с возможностью дальнейшего, более эффективного использования на многоядерной без необходимости переписывать код
Основные преимущества использования потоков: · создание нового потока в процессе занимает намного меньше времени, чем создание совершенно нового процесса; · поток можно завершить намного быстрее, чем процесс; · переключение потоков в рамках одного и того же процесса происходит намного быстрее; · при использовании потоков повышается эффективность обмена информацией между двумя выполняющимися программами. · Потоки одного итого же процесса используют одну и ту же область памяти и одни и те же файлы, они могут обмениваться информацией без участия ядра. НЕДОСТАТКИ: • Снижает производительность при очень большом количестве потоков из-за траты процессорного времени на переключение контекста В: Недостатки межпроцедурной оптимизации О: Межпроцедурная оптимизация (IPO) — оптимизация компилятора, которая использует глобальный анализ потока управления и затрагивает множество процедур, даже находящихся в разных модулях, за счёт чего может достигаться существенный прирост быстродействия. IPO поддерживает многофайловое встраивание, замену кода, размещение данных. Функции оптимизируются внутри и между файлами. Минусы: · IPO может увеличить размер кода, что может заставить процессор использовать кэш менее эффективно · Компиляция может занимать существенно больше времени
|