오버헤드(컴퓨팅)
Overhead (computing)컴퓨터 과학에서 오버헤드는 특정 작업을 수행하는 데 필요한 초과 또는 간접 계산 시간, 메모리, 대역폭 또는 기타 자원의 조합입니다.이것은 엔지니어링 오버헤드의 특수한 경우입니다.오버헤드는 구조, 오류 수정 및 기능 포함과 관련하여 소프트웨어 설계에 결정적인 요소가 될 수 있습니다.오버헤드의 예는 OOP(Object Oriented Programming), 기능 프로그래밍,[citation needed] 데이터 전송 및 데이터 구조에서 찾을 수 있습니다.
소프트웨어 설계
구현의 선택지
프로그래머/소프트웨어 엔지니어는 몇 가지 알고리즘, 부호화, 데이터 유형 또는 데이터 구조 중에서 선택할 수 있으며 각각 특성이 알려져 있습니다.그 중에서 선택할 때는 각각의 오버헤드도 고려해야 한다.
트레이드오프
소프트웨어 엔지니어링에서 오버헤드는 새로운 제품에 기능을 포함할지 여부 또는 버그를 수정할지 여부에 대한 결정에 영향을 줄 수 있습니다.오버헤드가 높은 기능은 포함되지 않을 수 있습니다.또는 그러기 위해서는 큰 재정적 인센티브가 필요합니다.소프트웨어 프로바이더는 자사 제품의 버그를 잘 알고 있지만 오버헤드 때문에 이를 고친 보람이 없는 경우가 많습니다.
예를 들어 암묵적인 데이터 구조 또는 간결한 데이터 구조는 낮은 공간 오버헤드를 제공할 수 있지만, 느린 성능(공간/시간 트레이드오프)을 희생합니다.
소프트웨어의 런타임 복잡성
알고리즘의 복잡도는 일반적으로 Big O 표기법을 사용하여 지정됩니다.이것은, 실행 시간이나 메모리 사용량에 대해서는 코멘트하지 않습니다만, 그 증가는 입력의 크기에 따라 달라집니다.오버헤드는 알고리즘의 기본 실행 시간은 머신마다 다르기 때문에 일부러 이 계산에 포함되지 않습니다.
이는 모든 종류의 자원을 고려하는 알고리즘 효율과 대조되어야 합니다.이러한 효율은 복잡성과 오버헤드의 조합입니다.
예
컴퓨터 프로그래밍(런타임 및 계산 오버헤드)
함수를 호출하면 런타임 오버헤드가 줄어듭니다.때때로 컴파일러는 이러한 함수 호출의 일부를 인라인으로 함으로써 이러한 오버헤드를 최소화할 수 있습니다.
CPU 캐시
CPU 캐시에서 "캐시 크기"(또는 용량)는 캐시가 저장하는 데이터의 양을 나타냅니다.예를 들어 "4KB 캐시"는 4KB의 데이터를 저장하는 캐시입니다.이 예에서 "4KB"는 프레임,[1] 주소 및 태그 정보 등의 오버헤드비트를 제외합니다.
통신(데이터 전송 오버헤드)
통신 네트워크상에서 데이터의 payload를 신뢰성 있게 송신하려면 payload 자체만으로 송신하는 것이 아닙니다.또, 수신처에 도달하기 위해서 필요한 각종 제어 및 시그널링 데이터(TCP)의 송신도 포함됩니다.이는 추가 데이터가 메시지의 [2][3]본질적인 의미에 기여하지 않기 때문에 이른바 프로토콜 오버헤드를 생성합니다.
텔레포니에서는, 번호 다이얼과 콜의 셋업 시간은 오버헤드입니다.쌍방향(단 반이중) 무선에서는 충돌을 피하기 위해 필요한 "오버" 및 기타 시그널링을 사용하는 것은 오버헤드입니다.
프로토콜 오버헤드는 응용 프로그램 이외의 바이트(프로토콜 및 프레임 동기화)를 메시지의 총 바이트 수로 나눈 백분율로 나타낼 수 있습니다.
인코딩 및 데이터 구조(사이즈 오버헤드)
정보 및 데이터의 부호화는 오버헤드도 초래합니다.날짜 및 시간 '2011-07-12 07:18:47'은 32비트 서명 정수에서 Unix 시간으로 나타낼 수 있습니다. 1310447927
4바이트밖에 소비하지 않습니다.ISO 8601 형식의 UTF-8 인코딩 문자열로 표시됨 2011-07-12 07:18:47
날짜는 19바이트를 소비하며, 이진수 정수 표현에 비해 375%의 크기 오버헤드가 발생합니다.XML로서 이 날짜는 218자의 오버헤드로 다음과 같이 기술할 수 있습니다.게다가 인덱스1의 CHANGEDATE라는 의미 콘텍스트를 추가합니다.
<?xml version="1.0" encoding="UTF-8"?> <DATETIME 한정자="CHANGEDATE" index="1"> <YEAR> 2011 </YEAR> </MONTH> 07 </HOUR> </HOUR> 07 </MINTEME> </YEAR> </HOUR> 18 </MINTIME> </SECH> 47 </S>
349 바이트는 UTF-8 부호화 XML에서 생성되며 원래 정수 표현보다 8625%의 크기 오버헤드와 관련이 있습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ Sorin, Daniel J. (2009). "Caches and Memory Hierarchies" (PDF). Retrieved March 13, 2019. 컴퓨터 아키텍처 코스 프레젠테이션.
- ^ 네트워크 애플리케이션의 일반적인 퍼포먼스 문제 제1부: 인터랙티브 애플리케이션, Windows XP 테크니컬 문서, Microsoft
- ^ IP/ATM 네트워크의 프로토콜 오버헤드, 미네소타 슈퍼컴퓨터 센터