컴퓨터 퍼포먼스
Computer performance컴퓨팅에서 컴퓨터 성능은 컴퓨터 시스템에 의해 달성되는 유용한 작업의 양입니다.특정 컨텍스트를 제외하고, 컴퓨터 프로그램의 명령 실행의 정확도, 효율성 및 속도 면에서 컴퓨터 성능이 평가됩니다.컴퓨터의 퍼포먼스가 향상되면, 다음의 몇개의 요인이 관련하는 경우가 있습니다.
- 특정 작업에 대한 응답 시간이 짧습니다.
- 높은 throughput(처리 작업 속도).
- 컴퓨팅 자원의 사용율이 낮다.
- 고속(또는 매우 콤팩트한) 데이터 압축 및 압축 해제
- 컴퓨팅 시스템 또는 애플리케이션의 고가용성.
- 고대역폭
- 데이터 전송 시간이 짧습니다.
기술적 정의와 비기술적 정의
컴퓨터 시스템의 퍼포먼스는 위의 1개 이상의 메트릭을 사용하여 측정할 수 있는 기술적 용어로 평가할 수 있습니다.이렇게 하면 퍼포먼스가
- 변경 전/후 다른 시스템 또는 동일한 시스템과 비교
- 절대적인 조건, 예를 들어 계약상의 의무를 이행하기 위한 조건
위의 정의는 과학적, 기술적 접근법과 관련이 있지만, Arnold Allen이 제시한 다음과 같은 정의는 비기술적 독자에게 유용할 것입니다.
컴퓨터 성능에서 성능이라는 단어는 다른 맥락에서 성능이 의미하는 것과 같은 것을 의미합니다. 즉, "컴퓨터가 해야 할 일을 얼마나 잘 하고 있는가?"를 의미합니다.[1]
소프트웨어 품질의 측면으로서
컴퓨터 소프트웨어 성능, 특히 소프트웨어 애플리케이션 응답 시간은 인간과 컴퓨터의 상호작용에서 중요한 소프트웨어 품질의 한 측면입니다.
퍼포먼스 엔지니어링
시스템 엔지니어링 내의 퍼포먼스 엔지니어링에는 시스템 개발 라이프 사이클의 모든 단계에서 적용되는 일련의 역할, 스킬, 액티비티, 프랙티스, 툴 및 성과물이 포함됩니다.이것에 의해, 솔루션의 정의되고 있는 퍼포먼스 요건을 만족시키는 솔루션의 설계, 실장, 및 운용 지원이 보증됩니다.
퍼포먼스 엔지니어링은 퍼포먼스 유형 간의 트레이드오프를 지속적으로 처리합니다.경우에 따라서는 CPU 설계자가 CPU의 퍼포먼스를 희생시키지 않고 퍼포먼스의 측면 중 하나를 개선함으로써 전체적인 퍼포먼스를 향상시킬 수 있는 방법을 찾을 수 있습니다.예를 들어, 보다 우수하고 빠른 트랜지스터로 CPU를 구축하는 것입니다.
단, 칩의 클럭 속도(메가헤르츠 신화 참조)와 같은 인상적인 수치를 얻기 위해 다른 중요한 요소가 희생되었기 때문에 한 가지 유형의 퍼포먼스를 극단적으로 높이면 CPU의 전체적인 퍼포먼스가 저하될 수 있습니다.
응용 프로그램 퍼포먼스 엔지니어링
APE(Application Performance Engineering)는 점점 분산되는 모바일, 클라우드 및 지상파 IT 환경에서의 애플리케이션 퍼포먼스와 관련된 과제를 해결하기 위해 설계된 퍼포먼스 엔지니어링 내의 특정 방법론입니다.애플리케이션 라이프 사이클의 모든 단계에서 적용되는 역할, 스킬, 액티비티, 프랙티스, 툴 및 성과물이 포함되어 있어 비기능적인 퍼포먼스 요건을 충족하도록 애플리케이션을 설계, 구현 및 운용할 수 있습니다.
퍼포먼스의 측면
컴퓨터 퍼포먼스 지표(측정 대상)에는 가용성, 응답 시간, 채널 용량, 지연 시간, 완료 시간, 서비스 시간, 대역폭, throughput, 상대 효율성, 확장성, 와트당 성능, 압축비, 명령 경로 길이 및 속도 향상 등이 포함됩니다.CPU 벤치마크를 사용할 [2]수 있습니다.
유용성
시스템의 가용성은 일반적으로 신뢰성의 요소로 측정됩니다.신뢰성이 높아지면 가용성(즉 다운타임 감소)도 높아집니다.시스템의 가용성은 신뢰성이 아닌 테스트 가능성과 유지보수 용이성을 높이는 데 중점을 두는 전략에 의해서도 향상될 수 있습니다.일반적으로 유지보수성을 개선하는 것은 신뢰성보다 쉽습니다.보수성 추정치(수리율)도 일반적으로 더 정확합니다.그러나 대부분의 경우 신뢰성 추정치의 불확실성이 매우 크기 때문에 유지관리 수준이 매우 높더라도 가용성(예측 불확실성) 문제를 지배할 가능성이 높다.
응답시간
응답 시간은 서비스 요청에 응답하는 데 걸리는 총 시간입니다.컴퓨팅에서 이 서비스는 단순한 디스크 IO에서 복잡한 웹 페이지 로드까지 모든 작업 단위가 될 수 있습니다.응답 시간은 다음 세 [3]가지 숫자의 합계입니다.
- 서비스 시간 - 요청된 작업을 수행하는 데 걸리는 시간입니다.
- 대기 시간 - 요청을 실행하기 전에 대기해야 하는 시간입니다.
- 전송 시간 – 요청을 작업을 수행하는 컴퓨터로 이동하고 응답을 요청자에게 되돌리는 데 걸리는 시간입니다.
처리 속도
대부분의 소비자는 컴퓨터 아키텍처(일반적으로 인텔 IA-32 아키텍처)를 선택하여 기존의 컴파일된 대규모 소프트웨어를 실행할 수 있습니다.컴퓨터 벤치마크에 대해 비교적 잘 모르기 때문에, 동작 주파수에 근거해 특정의 CPU를 선택하는 기업도 있습니다(메가헤르츠 신화 참조).
병렬 컴퓨터를 구축하는 시스템 설계자 중에는 1달러당 속도를 기준으로 CPU를 선택하는 사람도 있습니다.
채널 용량
채널 캐퍼시티는 통신채널을 통해 신뢰성 있게 전송할 수 있는 정보 레이트의 가장 엄격한 상한입니다.노이즈 채널 부호화 정리에 따르면, 소정의 채널의 채널 용량은 임의의 작은 [4][5]오차 확률로 달성할 수 있는 제한 정보 레이트(단위시간당 정보 단위)이다.
클로드 E에 의해 개발된 정보 이론. 제2차 세계대전 중 Shannon은 채널 용량의 개념을 정의하고 이를 계산할 수 있는 수학적 모델을 제공합니다.주요 결과는 위에서 정의한 바와 같이 채널의 용량이 채널의 입력과 출력 사이의 상호 정보 최대값에 의해 제공된다는 것입니다. 여기서 최대화는 입력 [6]분포에 관한 것입니다.
레이텐시
지연은 관찰되는 시스템의 물리적 변경 원인과 영향 사이의 시간 지연입니다.지연 시간은 물리적 상호작용이 발생할 수 있는 제한된 속도의 결과입니다.이 속도는 항상 빛의 속도보다 낮거나 같다.따라서 공간 치수가 0이 아닌 모든 물리적 시스템에서는 일종의 지연이 발생합니다.
대기 시간의 정확한 정의는 관찰되는 시스템과 자극의 특성에 따라 달라집니다.통신에서 지연의 하한은 통신에 사용되는 매체에 의해 결정됩니다.신뢰할 수 있는 쌍방향 통신 시스템에서는 대기 시간에 따라 정보가 전송될 수 있는 최대 속도가 제한됩니다. 이는 한 순간에 "이동 중"인 정보의 양에 제한이 있는 경우가 많기 때문입니다.인간-기계 상호작용 분야에서는 지각 가능한 대기시간(사용자가 명령한 것과 컴퓨터가 결과를 제공하는 시점 사이의 지연)이 사용자 만족도와 사용성에 강한 영향을 미칩니다.
컴퓨터는 프로세스라고 불리는 일련의 명령을 실행합니다.operating system에서는, 다른 프로세스도 실행되고 있는 경우는, 프로세스의 실행을 연기할 수 있습니다.또, operating system은, 프로세스가 명령하는 액션을 실행하는 타이밍을 스케줄 할 수 있습니다.예를 들어 컴퓨터 카드의 전압 출력을 하이-로우-하이-로우로 설정하고 1000Hz의 속도로 설정하도록 프로세스가 명령한다고 가정합니다.운영체제는 내부 클럭에 따라 각 전환(하이-로우 또는 로우-하이)의 스케줄을 조정할 수 있습니다.지연은 전환을 명령하는 프로세스 명령과 실제로 전압을 하이에서 로우 또는 로우에서 하이로 전환하는 하드웨어 사이의 지연입니다.
실시간 컴퓨팅 시스템을 구축하는 시스템 설계자는 최악의 경우 대응이 보장되기를 원합니다.이는 CPU의 인터럽트 지연 시간이 낮고 결정론적 응답이 있는 경우에 더 쉽게 수행할 수 있습니다.
대역폭
컴퓨터 네트워킹에서 대역폭은 사용 가능하거나 소비된 데이터 통신 자원의 비트 전송률을 측정하는 것으로 비트/초 또는 그 배수(비트/초, kbit/초, Mbit/초, 기가비트/초 등)로 나타냅니다.
대역폭은 디지털 통신 시스템에서 논리적 또는 물리적 통신 경로의 최대 throughput 또는 최대 throughput을 정의하는 경우가 있습니다.예를 들어 대역폭 테스트는 컴퓨터 네트워크의 최대 처리량을 측정합니다.이 사용의 이유는 Hartley의 법칙에 따라 물리 통신 링크의 최대 데이터 레이트는 헤르츠 단위의 대역폭에 비례하기 때문입니다.이것은 주파수 대역폭, 스펙트럼 대역폭, RF 대역폭, 신호 대역폭 또는 아날로그 대역폭이라고 불리기도 합니다.
스루풋
일반적으로 throughput은 생산 속도 또는 처리 가능한 속도입니다.
통신 네트워크에서 throughput은 기본적으로 디지털 대역폭 소비와 동의어입니다.무선 네트워크 또는 셀룰러 통신 네트워크에서 비트/초/Hz/지역 단위, 비트/초/Hz/사이트 또는 비트/초/Hz/셀 단위의 시스템 스펙트럼 효율은 최대 시스템 throughput(집약 스루풋)을 아날로그 대역폭 및 시스템 커버리지 영역의 일부 척도로 나눈 것입니다.
집적회로에서는 데이터 흐름도 내의 블록이 단일 입력과 단일 출력을 가지며 개별 정보 패킷으로 동작하는 경우가 많습니다.이러한 블록의 예로는 FFT 모듈 또는 바이너리 승수가 있습니다.throughput 단위는 전파 지연 단위인 '메시지당 초수' 또는 '출력당 초수'의 역수이기 때문에 스루풋은 ASIC 또는 임베디드 프로세서 등의 전용 기능을 수행하는 계산 장치를 통신 채널에 관련짓는 데 사용할 수 있어 시스템 분석을 단순화할 수 있다.
상대 효율
확장성
scalability란 시스템, 네트워크 또는 프로세스가 증가하는 작업을 적절한 방법으로 처리할 수 있는 능력 또는 성장에 따라 확장할 수 있는 능력입니다.
소비전력
컴퓨터가 사용하는 전력량(전력 소비량).이는 태양광, 배터리, 인적 전력 등 제한된 전력원을 가진 시스템에서 특히 중요합니다.
와트 성능
구글의 하드웨어와 같은 병렬 컴퓨터를 만드는 시스템 설계자들은 CPU의 전력 공급 비용이 CPU [7]자체의 비용보다 크기 때문에 와트당 속도를 기준으로 CPU를 선택합니다.
우주 비행 컴퓨터의 경우 와트당 처리 속도는 원시 처리 [8]속도보다 더 유용한 성능 기준입니다.
압축비
압축은 데이터 저장소 공간 또는 전송 용량과 같은 리소스 사용을 줄이는 데 도움이 되기 때문에 유용합니다.압축된 데이터를 사용하려면 압축 해제해야 하므로 이 추가 처리에는 압축 해제를 통한 계산 또는 기타 비용이 소요됩니다. 이 상황은 무료 점심과는 거리가 멀습니다.데이터 압축은 시공간 복잡성의 트레이드오프를 따릅니다.
크기와 무게
주머니에 넣고 다니는 스마트폰부터 우주선의 휴대용 임베디드 시스템에 이르기까지 모바일 시스템의 중요한 성능 기능입니다.
환경에 미치는 영향
컴퓨터 또는 컴퓨터가 환경, 제조 및 재활용 중 및 사용 중에 미치는 영향.측정은 폐기물 감소, 유해물질 감소 및 컴퓨터의 생태적 풋프린트 최소화를 목적으로 실시됩니다.
트랜지스터 카운트
트랜지스터 카운트는 집적회로(IC) 상의 트랜지스터 수입니다.트랜지스터 카운트는 IC 복잡성의 가장 일반적인 척도입니다.
벤치마크
성능의 모든 측면에서 CPU를 테스트하는 프로그램이 매우 많기 때문에 벤치마크가 개발되었습니다.
가장 유명한 벤치마크는 Standard Performance Evaluation Corporation이 개발한SPECint 및 SPECfp 벤치마크와 Embedded Microprocessor Benchmark Consortium EEMBC가 개발한 인증마크 벤치마크입니다.
소프트웨어 퍼포먼스 테스트
소프트웨어 엔지니어링에서 성능 테스트는 일반적인 테스트를 통해 특정 워크로드에서 시스템의 응답성과 안정성 측면에서 어떻게 성능을 발휘하는지 판단합니다.또한 scalability, 신뢰성, 자원 사용률 등 시스템의 다른 품질 특성을 조사, 측정, 검증 또는 검증할 수도 있습니다.
퍼포먼스 테스트는 퍼포먼스 엔지니어링의 서브셋으로 시스템의 구현, 설계 및 아키텍처에 퍼포먼스를 도입하기 위해 노력하는 새로운 컴퓨터 사이언스 프랙티스입니다.
프로파일링(퍼포먼스 분석)
소프트웨어 엔지니어링에서 프로파일링(「프로그램 프로파일링」, 「소프트웨어 프로파일링」)은, 프로그램의 공간(메모리)이나 시간의 복잡성, 특정 명령의 사용, 또는 함수 호출의 빈도와 지속 시간등을 측정하는 동적 프로그램 분석의 한 형태입니다.프로파일링 정보의 가장 일반적인 용도는 프로그램 최적화를 지원하는 것입니다.
프로파일링은 프로파일러(또는 코드 프로파일러)라는 도구를 사용하여 프로그램 소스 코드 또는 바이너리 실행 파일 형식을 계측함으로써 이루어집니다.프로파일러는 이벤트 기반, 통계, 계측 및 시뮬레이션 방법 등 다양한 기술을 사용할 수 있습니다.
퍼포먼스 튜닝
퍼포먼스 튜닝은 시스템 퍼포먼스의 향상입니다.이것은 일반적으로 컴퓨터 애플리케이션이지만, 경제 시장, 관료 제도 또는 기타 복잡한 시스템에 동일한 방법을 적용할 수 있습니다.이러한 활동의 동기는 성과 문제라고 불리며, 이는 실제일 수도 있고 예상일 수도 있다.대부분의 시스템은 어느 정도 성능 저하와 함께 증가된 부하에 반응합니다.높은 부하를 견딜 수 있는 시스템의 기능을 scalability라고 부릅니다.높은 부하를 처리하도록 시스템을 변경하는 것은 퍼포먼스 튜닝의 동의어입니다.
시스템 튜닝은 다음 단계를 따릅니다.
- 문제를 평가하고 허용 가능한 동작을 분류하는 숫자 값을 설정합니다.
- 변경 전에 시스템의 성능을 측정하십시오.
- 퍼포먼스 향상에 중요한 시스템 부품을 특정합니다.이를 병목현상이라고 합니다.
- 시스템의 그 부분을 변경하여 병목 현상을 해소합니다.
- 개조 후 시스템 성능을 측정하십시오.
- 변경으로 퍼포먼스가 향상되면 채택합니다.변경으로 인해 성능이 저하될 경우 원래대로 되돌립니다.
인식된 퍼포먼스
컴퓨터 엔지니어링에서 인식된 성능은 소프트웨어 기능이 태스크를 수행하는 속도를 나타냅니다.이 개념은 주로 사용자 수용 측면에 적용됩니다.
시작 화면(시작 화면 참조) 또는 파일 진행률 대화 상자를 표시하여 응용 프로그램 시작 또는 파일 다운로드에 걸리는 시간을 단축할 수 없습니다.다만, 유저에게는 보다 빠르게 보일 뿐만 아니라, 시스템이 요구를 처리하고 있는 것을 시각적으로 알 수 있는 신호도 제공하고 있는 등, 몇개의 인간의 요구를 만족시킵니다.
대부분의 경우 실제 성능을 높이면 인지 성능이 증가하지만 물리적 한계로 인해 실제 성능을 높일 수 없는 경우에는 기술을 사용하여 인지 성능을 높일 수 있습니다.
퍼포먼스 방정식
특정 벤치마크 프로그램을 실행하는 데 필요한 총 시간(t)은 다음과 같습니다.
- f {\ t tfrac 또는 이에 상당하는 것
- [9]
어디에
- { P = frac {} {은 (는) "퍼포먼스"입니다.
- N N은 실제로 실행된 명령의 수(명령 경로 길이)입니다.명령 집합의 코드 밀도는 N에 강하게 영향을 미칩니다.N의 값은 명령 집합 시뮬레이터(사용 가능한 경우)를 사용하여 정확하게 결정하거나 입력 변수의 추정 또는 실제 빈도 분포에 따라 계산하거나 HLL 컴파일러에서 생성된 기계 코드를 검사하여 확인할 수 있습니다.HLL 소스 코드의 행 수로는 판단할 수 없습니다.N은 같은 프로세서 상에서 실행되고 있는 다른 프로세스의 영향을 받지 않습니다.여기서 중요한 점은 하드웨어는 일반적으로 실행된 프로그램의 N 값을 추적하지 않는다는 것입니다(또는 적어도 쉽게 사용할 수 있도록 합니다).따라서 이 값은 명령 집합 시뮬레이션을 통해서만 정확하게 결정될 수 있으며, 이는 거의 실천되지 않습니다.
- f는 클럭 주파수(초당 사이클)입니다.
- I은 (는) 이 벤치마크의 명령당 평균 주기(CPI)입니다.
- I는 이 벤치마크의 평균 사이클당 명령(IPC)입니다.
한 머신에서도 다른 컴파일러 또는 다른 컴파일러 최적화 스위치를 가진 동일한 컴파일러는 N과 CPI를 변경할 수 있습니다.새로운 컴파일러가 다른 컴파일러를 악화시키지 않고 N 또는 C를 개선할 수 있다면 벤치마크는 더 빨리 실행되지만 종종 이들 사이에 트레이드오프가 있습니다.예를 들어, 다음과 같은 복잡한 명령어를 사용하는 것이 좋습니다.실행하는데 오랜 시간이 걸리거나 매우 빠르게 실행되는 명령을 사용하는데 벤치마크 실행에는 더 많은 시간이 소요됩니까?
CPU 설계자는 특정 명령어세트를 실장할 필요가 있기 때문에 N을 변경할 수 없습니다.설계자는 (더 깊은 파이프라인이나 고속 캐시 등의 기술을 사용하여) f를 대폭 개선하면서 (바람직하게) 너무 많은 C를 희생하지 않고 CPU의 속도 데몬 설계로 이어지는 퍼포먼스를 향상시키는 데 주력할 수 있습니다.때때로 설계자는 CPI를 대폭 개선(불순한 실행, 슈퍼스케일러 CPU, 대용량 캐시, 히트율 향상 캐시, 분기 예측 개선, 투기적 실행 등)하면서 클럭 빈도를 너무 많이 희생시키지 않음으로써 성능을 향상시키는 데 주력할 수 있습니다.CPU [10]설계특정 명령 세트(따라서 고정 N) 및 반도체 프로세스에서 최대 싱글 스레드 성능(1/t)은 브레인액 기술과 스피드 레이서 [9]기술 간의 균형을 필요로 합니다.
「 」를 참조해 주세요.
- 알고리즘 효율
- 규모별 컴퓨터 퍼포먼스
- 네트워크 퍼포먼스
- 레이텐시 지향 프로세서 아키텍처
- 최적화(컴퓨터 과학)
- RAM 업데이트 레이트
- 명령어 세트 완료
- 하드웨어 액셀러레이션
- 스피드업
- 캐시 교체 정책
레퍼런스
- ^ 아놀드 오의 매스매티카를 이용한 컴퓨터 성능 분석.Allen, Academic Press, 1994. $1.1 소개, 페이지 1
- ^ Measuring Program Similarity: Experiments with SPEC CPU Benchmark Suites, CiteSeerX 10.1.1.123.501
- ^ Wescott, Bob (2013). The Every Computer Performance Book, Chapter 3: Useful laws. CreateSpace. ISBN 1482657759.
- ^ Saleem Bhatti. "Channel capacity". Lecture notes for M.Sc. Data Communication Networks and Distributed Systems D51 -- Basic Communications and Networks. Archived from the original on 2007-08-21.
- ^ Jim Lesurf. "Signals look like noise!". Information and Measurement, 2nd ed.
- ^ Thomas M. Cover, Joy A. Thomas (2006). Elements of Information Theory. John Wiley & Sons, New York.
- ^ "Archived copy". Archived from the original on 2005-03-27. Retrieved 2009-01-21.
{{cite web}}
: CS1 maint: 제목으로 아카이브된 복사(링크)[1] - ^ D. J. 셜리, 그리고 M. K. 맥렐랜드."차세대 SC-7 RISC 우주 비행 컴퓨터" 페이지 2.
- ^ a b 폴 드몬."The Incredible Shrinking CPU", 2004.[2] 2012년 5월 31일 Wayback Machine에 보관
- ^ 린리 그납의 "두뇌, 속도 악마, 그리고 이별"