Производительность компьютера
В вычислительной технике производительность компьютера – это объем полезной работы, выполняемой компьютерной системой . Вне конкретных контекстов производительность компьютера оценивается с точки зрения точности, эффективности и скорости выполнения компьютерной программы инструкций . Когда речь идет о высокой производительности компьютера, может быть задействован один или несколько из следующих факторов:
- Короткое время ответа на конкретную работу.
- Высокая пропускная способность (скорость обработки).
- Низкая загрузка вычислительного ресурса (ов).
- Быстрое (или очень компактное) сжатие и распаковка данных .
- Высокая доступность вычислительной системы или приложения.
- Высокая пропускная способность .
- Короткое время передачи данных .
Технические и нетехнические определения [ править ]
Производительность любой компьютерной системы можно оценить в измеримых технических терминах, используя один или несколько показателей, перечисленных выше. Таким образом, производительность может быть
- По сравнению с другими системами или той же системой до/после изменений
- В абсолютном выражении, например, для выполнения договорных обязательств.
Хотя приведенное выше определение относится к научно-техническому подходу, следующее определение Арнольда Аллена было бы полезно для нетехнической аудитории:
Слово «производительность» в термине «производительность компьютера» означает то же самое, что «производительность» означает в других контекстах, то есть оно означает «Насколько хорошо компьютер выполняет работу, которую он должен выполнять?» [1]
аспект качества программного обеспечения Как
Производительность компьютерного программного обеспечения , особенно время отклика программного приложения , является аспектом качества программного обеспечения , который важен во взаимодействии человека с компьютером .
Проектирование производительности [ править ]
Проектирование производительности в рамках системного проектирования включает в себя набор ролей, навыков, действий, практик, инструментов и результатов, применяемых на каждом этапе жизненного цикла разработки системы, что гарантирует, что решение будет спроектировано, внедрено и оперативно поддержано для удовлетворения требований к производительности. определенное для решения.
Инженерия производительности постоянно занимается поиском компромиссов между типами производительности. Иногда разработчик ЦП может найти способ создать ЦП с более высокой общей производительностью, улучшив один из аспектов производительности, представленных ниже, не жертвуя при этом производительностью ЦП в других областях. Например, создание процессора из более качественных и быстрых транзисторов .
чипа Однако иногда доведение одного типа производительности до крайности приводит к ухудшению общей производительности процессора, поскольку другие важные аспекты приносились в жертву ради получения одного впечатляюще выглядящего числа, например, тактовой частоты (см. миф о мегагерцах ).
Проектирование производительности приложений [ править ]
Проектирование производительности приложений (APE) — это особая методология проектирования производительности, предназначенная для решения проблем, связанных с производительностью приложений во все более распределенных мобильных, облачных и наземных ИТ-средах. Он включает в себя роли, навыки, действия, практики, инструменты и результаты, применяемые на каждом этапе жизненного цикла приложения, которые гарантируют, что приложение будет спроектировано, внедрено и эксплуатировано поддержано для удовлетворения нефункциональных требований к производительности.
Аспекты производительности [ править ]
производительности компьютера Показатели (вещи, которые необходимо измерить) включают доступность , время отклика , пропускную способность канала , задержку , время завершения , время обслуживания , пропускную способность , пропускную способность , относительную эффективность , масштабируемость , производительность на ватт , степень сжатия , длину пути инструкции и ускорение . процессора . Доступны тесты [2]
Наличие [ править ]
Доступность системы обычно измеряется как фактор ее надежности: по мере увеличения надежности увеличивается и доступность (то есть меньшее время простоя ). Доступность системы также может быть повышена за счет стратегии, направленной на повышение тестируемости и ремонтопригодности, а не на надежности. Повысить ремонтопригодность вообще проще, чем надежность. Оценки ремонтопригодности (скорость ремонта) также, как правило, более точны. Однако, поскольку неопределенности в оценках надежности в большинстве случаев очень велики, они, вероятно, будут доминировать над проблемой доступности (неопределенность прогнозирования), даже если уровни ремонтопригодности очень высоки.
Время отклика [ править ]
Время ответа — это общее количество времени, необходимое для ответа на запрос на обслуживание. В вычислениях этой службой может быть любая единица работы: от простого дискового ввода-вывода до загрузки сложной веб-страницы . Время ответа представляет собой сумму трёх чисел: [3]
- Время обслуживания – сколько времени потребуется для выполнения запрошенной работы.
- Время ожидания — как долго запрос должен ждать запросов, стоящих в очереди перед ним, прежде чем он начнет выполняться.
- Время передачи — сколько времени требуется, чтобы переместить запрос на компьютер, выполняющий работу, и получить ответ обратно отправителю запроса.
Скорость обработки [ править ]
Большинство потребителей выбирают компьютерную архитектуру (обычно архитектуру Intel IA-32 ), чтобы иметь возможность запускать большую базу уже существующего, предварительно скомпилированного программного обеспечения. Будучи относительно неосведомленными о компьютерных тестах, некоторые из них выбирают конкретный процессор на основе рабочей частоты (см. миф о мегагерцах ).
Некоторые системные проектировщики, создающие параллельные компьютеры, выбирают процессоры по скорости за доллар.
Пропускная способность канала [ править ]
Пропускная способность канала — это самая жесткая верхняя граница скорости информации , которая может надежно передаваться по каналу связи . По теореме о кодировании шумного канала пропускная способность данного канала — это предельная скорость передачи информации (в единицах информации в единицу времени), которая может быть достигнута со сколь угодно малой вероятностью ошибки. [4] [5]
Теория информации , разработанная Клодом Э. Шенноном во время Второй мировой войны , определяет понятие пропускной способности канала и предоставляет математическую модель, с помощью которой можно ее вычислить. Ключевой результат гласит, что пропускная способность канала, как определено выше, определяется максимумом взаимной информации между входом и выходом канала, причем максимизация осуществляется по отношению к входному распределению. [6]
Задержка [ править ]
Задержка — это временная задержка между причиной и следствием некоторого физического изменения в наблюдаемой системе. Задержка является результатом ограниченной скорости, с которой может происходить любое физическое взаимодействие. Эта скорость всегда меньше или равна скорости света. Следовательно, каждая физическая система, имеющая ненулевые пространственные измерения, будет испытывать некоторую задержку.
Точное определение латентности зависит от наблюдаемой системы и характера стимуляции. В сфере связи нижний предел задержки определяется средой, используемой для связи. В надежных системах двусторонней связи задержка ограничивает максимальную скорость передачи информации, поскольку часто существует ограничение на объем информации, которая находится «в полете» в любой момент. В области взаимодействия человека и машины ощутимая задержка (задержка между тем, что пользователь командует, и моментом, когда компьютер выдает результаты) оказывает сильное влияние на удовлетворенность пользователя и удобство использования.
Компьютеры выполняют наборы инструкций, называемых процессами. В операционных системах выполнение процесса может быть отложено, если одновременно выполняются другие процессы. Кроме того, операционная система может планировать, когда выполнять действие, заданное процессом. Например, предположим, что процесс дает команду установить выходное напряжение компьютерной карты «высокое-низкое-высокое-низкое» и так далее с частотой 1000 Гц. Операционная система может настроить планирование каждого перехода (высокий-низкий или низкий-высокий) на основе внутренних часов. Задержка — это задержка между инструкцией процесса, дающей команду на переход, и аппаратным обеспечением, фактически переводящим напряжение с высокого на низкое или с низкого на высокое.
Разработчики систем, создающие вычислительные системы реального времени, хотят гарантировать реакцию в худшем случае. Это легче сделать, когда ЦП имеет низкую задержку прерывания и имеет детерминированный ответ.
Пропускная способность [ править ]
В компьютерных сетях пропускная способность — это измерение скорости передачи данных доступных или потребляемых ресурсов передачи данных, выраженное в битах в секунду или кратных ей (бит/с, кбит/с, Мбит/с, Гбит/с и т. д.).
Пропускная способность иногда определяет чистую скорость передачи данных (также называемую пиковой скоростью передачи данных, скоростью передачи информации или полезной скоростью передачи данных физического уровня), пропускную способность канала или максимальную пропускную способность логического или физического пути связи в системе цифровой связи. Например, тесты пропускной способности измеряют максимальную пропускную способность компьютерной сети. Причина такого использования заключается в том, что согласно закону Хартли максимальная скорость передачи данных физического канала связи пропорциональна его полосе пропускания в герцах, которую иногда называют полосой частот, спектральной полосой пропускания, радиочастотной полосой пропускания, полосой пропускания сигнала или аналоговой полосой пропускания.
Пропускная способность [ править ]
В общих чертах, пропускная способность — это скорость производства или скорость, с которой что-то может быть обработано.
В сетях связи пропускная способность по сути является синонимом потребления цифровой полосы пропускания. В беспроводных сетях или сетях сотовой связи в спектральная эффективность системы бит/с/Гц/единицы площади, бит/с/Гц/сайт или бит/с/Гц/ячейка представляет собой максимальную пропускную способность системы (совокупную пропускную способность), разделенную на аналоговая полоса пропускания и некоторая мера зоны покрытия системы.
В интегральных схемах блок схемы потока данных часто имеет один вход и один выход и работает с дискретными пакетами информации. Примерами таких блоков являются модули БПФ или двоичные умножители . Поскольку единицы пропускной способности обратны единице задержки распространения , которая равна «секундам на сообщение» или «секундам на выход», пропускную способность можно использовать для связи вычислительного устройства, выполняющего специальную функцию, такого как ASIC или встроенный процессор , с канал связи, упрощающий системный анализ.
Масштабируемость [ править ]
Масштабируемость — это способность системы, сети или процесса эффективно справляться с растущим объемом работы или ее способность расширяться для удовлетворения этого роста.
Энергопотребление [ править ]
Количество электроэнергии , потребляемой компьютером ( потребляемая мощность ). Это становится особенно важным для систем с ограниченными источниками энергии, такими как солнечная энергия, батареи и человеческая энергия.
Производительность на ватт [ править ]
Разработчики систем, создающие параллельные компьютеры , такие как аппаратное обеспечение Google , выбирают процессоры в зависимости от их скорости на ватт мощности, поскольку стоимость питания процессора перевешивает стоимость самого процессора. [7]
Для космических компьютеров отношение скорости обработки к ватту является более полезным критерием производительности, чем чистая скорость обработки, из-за ограниченных бортовых ресурсов энергии. [8]
Степень сжатия [ править ]
Сжатие полезно, поскольку оно помогает снизить использование ресурсов, таких как пространство для хранения данных или пропускная способность передачи. Поскольку для использования сжатые данные необходимо распаковать, эта дополнительная обработка требует вычислительных или других затрат из-за распаковки; эта ситуация далека от бесплатного обеда. Сжатие данных требует компромисса между пространственно-временной сложностью.
Размер и вес [ править ]
Это важная характеристика мобильных систем: от смартфонов, которые вы носите в кармане, до портативных встроенных систем на космическом корабле.
Воздействие окружающую на среду
Влияние компьютеров на окружающую среду во время производства и переработки, а также во время использования. компьютера Измерения проводятся с целью сокращения отходов, уменьшения количества опасных материалов и минимизации экологического следа .
Количество транзисторов [ править ]
Количество транзисторов в интегральной схеме (ИС). Количество транзисторов является наиболее распространенным показателем сложности ИС.
Тесты [ править ]
Поскольку существует так много программ для тестирования процессора по всем аспектам производительности, тесты были разработаны .
Наиболее известными тестами являются тесты SPECint и SPECfp, разработанные Standard Performance Evaluation Corporation , и тест Certification Mark , разработанный Консорциумом производительности встроенных микропроцессоров EEMBC .
производительности программного Тестирование обеспечения
В разработке программного обеспечения тестирование производительности, как правило, проводится для определения того, как система работает с точки зрения отзывчивости и стабильности при определенной рабочей нагрузке. Он также может служить для исследования, измерения, проверки или проверки других атрибутов качества системы, таких как масштабируемость, надежность и использование ресурсов.
Тестирование производительности — это подмножество проектирования производительности, новой практики в области компьютерных наук, которая стремится повысить производительность при реализации, проектировании и архитектуре системы.
Профилирование (анализ производительности) [ править ]
В разработке программного обеспечения профилирование («профилирование программы», «профилирование программного обеспечения») — это форма динамического анализа программы , которая измеряет, например, пространственную (память) или временную сложность программы , использование определенных инструкций или частоту и продолжительность вызовов функций. Чаще всего информация профилирования используется для оптимизации программы .
Профилирование достигается путем инструментирования исходного кода программы или ее двоичной исполняемой формы с помощью инструмента, называемого профилировщиком (или профилировщиком кода ). Профилировщики могут использовать ряд различных методов, таких как методы, основанные на событиях, статистические, инструментальные и методы моделирования.
Настройка производительности [ править ]
Настройка производительности — это улучшение производительности системы . Обычно это компьютерное приложение, но те же методы могут быть применены к экономическим рынкам, бюрократии или другим сложным системам. Мотивация такой деятельности называется проблемой производительности, которая может быть реальной или ожидаемой. Большинство систем реагируют на увеличение нагрузки некоторым снижением производительности. Способность системы воспринимать более высокую нагрузку называется масштабируемостью , а модификация системы для обработки более высокой нагрузки является синонимом настройки производительности.
Систематическая настройка состоит из следующих шагов:
- Оцените проблему и установите числовые значения, которые классифицируют приемлемое поведение.
- Перед модификацией измерьте производительность системы.
- Определите часть системы, которая имеет решающее значение для повышения производительности. Это называется узким местом .
- Измените эту часть системы, чтобы устранить узкое место.
- Измерьте производительность системы после модификации.
- Если модификация улучшает производительность, примите ее. Если модификация ухудшает производительность, верните ее в исходное состояние.
производительность Воспринимаемая
Воспринимаемая производительность в компьютерной инженерии означает, насколько быстро функция программного обеспечения выполняет свою задачу. Эта концепция применяется главным образом к аспектам принятия пользователем .
Время, необходимое для запуска приложения или загрузки файла, не сокращается за счет отображения экрана запуска (см. Заставка) или диалогового окна хода выполнения файла. Тем не менее, он удовлетворяет некоторым человеческим потребностям: он отображается быстрее для пользователя, а также предоставляет визуальный сигнал, сообщающий ему, что система обрабатывает его запрос.
В большинстве случаев увеличение реальной производительности увеличивает воспринимаемую производительность, но когда реальная производительность не может быть увеличена из-за физических ограничений, можно использовать методы для повышения воспринимаемой производительности.
производительности Уравнение
Общее количество времени ( t ), необходимое для выполнения конкретной эталонной программы, равно
- или эквивалентно
- [9]
где
- это «производительность» с точки зрения времени выполнения
- — количество фактически выполненных инструкций ( длина пути инструкции ). Плотность кода набора команд сильно влияет N. на Значение N определить можно точно с помощью симулятора набора команд (если он доступен) или путем оценки, которая сама по себе частично основана на расчетном или фактическом частотном распределении входных переменных и путем изучения сгенерированного машинного кода компилятора HLL . Его невозможно определить по количеству строк исходного кода HLL. На N не влияют другие процессы, работающие на том же процессоре. Важным моментом здесь является то, что аппаратное обеспечение обычно не отслеживает (или, по крайней мере, не делает легко доступным) значение N для исполняемых программ. Поэтому значение можно точно определить только путем моделирования набора команд, что практикуется редко.
- тактовая частота в циклах в секунду.
- — среднее количество циклов на инструкцию (CPI) для этого теста.
- — среднее число инструкций за цикл (IPC) для этого теста.
Даже на одной машине другой компилятор или тот же компилятор с разными переключателями оптимизации компилятора могут изменить N и CPI — тест выполняется быстрее, если новый компилятор может улучшить N или C, не ухудшая другого, но часто приходится идти на компромисс. между ними — лучше ли, например, использовать несколько сложных инструкций, выполнение которых занимает много времени, или использовать инструкции, которые выполняются очень быстро, хотя для выполнения теста их требуется больше?
Разработчику ЦП часто требуется реализовать определенный набор команд , и поэтому он не может изменить N.Иногда дизайнер сосредотачивается на повышении производительности, внося значительные улучшения в f (с помощью таких методов, как более глубокие конвейеры и более быстрые кэши), при этом (надеюсь) не жертвуя слишком большим количеством C, что приводит к созданию процессора демона скорости .Иногда разработчик сосредотачивается на повышении производительности, внося значительные улучшения в CPI (с помощью таких методов, как выполнение вне очереди , суперскалярные процессоры, кэши большего размера, кэши с улучшенной частотой попаданий, улучшенное предсказание ветвей , спекулятивное выполнение и т. д.), в то время как ( будем надеяться) не жертвуя слишком большой тактовой частотой, что приведет к умственному дизайну ЦП. [10] Для данного набора команд (и, следовательно, фиксированного N) и полупроводникового процесса максимальная однопоточная производительность (1/t) требует баланса между умственными методами и методами спидрейсера. [9]
См. также [ править ]
- Алгоритмическая эффективность
- Производительность компьютера на порядки
- Производительность сети
- Архитектура процессора, ориентированная на задержку
- Оптимизация (информатика)
- Скорость обновления ОЗУ
- Полный набор инструкций
- Аппаратное ускорение
- Ускорение
- Политики замены кэша
- Понимание аппаратного обеспечения вашего ПК
- Относительная эффективность
Ссылки [ править ]
- ^ Анализ производительности компьютера с помощью Mathematica Арнольда О. Аллена, Academic Press, 1994. $ 1.1 Введение, стр. 1.
- ^ Измерение сходства программ: эксперименты с наборами тестов процессора SPEC , 2005, стр. 10–20, CiteSeerX 10.1.1.123.501
- ^ Уэскотт, Боб (2013). Книга о производительности каждого компьютера, глава 3: Полезные законы . Создать пространство . ISBN 978-1482657753 .
- ^ Салим Бхатти. «Пропускная способность канала» . Конспекты лекций для магистра наук. Сети передачи данных и распределенные системы D51 – Базовые коммуникации и сети . Архивировано из оригинала 21 августа 2007 г.
- ^ Джим Лесурф. «Сигналы выглядят как шум!» . Информация и измерения, 2-е изд .
- ^ Томас М. Ковер, Джой А. Томас (2006). Элементы теории информации . Джон Уайли и сыновья, Нью-Йорк.
- ^ «EEMBC — Консорциум по тестированию встроенных микропроцессоров» . Архивировано из оригинала 27 марта 2005 г. Проверено 21 января 2009 г. [1]
- ^ DJ Ширли; и депутат К. Маклелланд. «Космический компьютер следующего поколения SC-7 RISC» . п. 2.
- ^ Jump up to: Перейти обратно: а б Пол ДеМоун.«Невероятный уменьшающийся процессор».2004. [2] Архивировано 31 мая 2012 г. в Wayback Machine.
- ^ «Брэйниаки, демоны скорости и прощание» Линли Гвеннап