코드 팽창

Code bloat

컴퓨터 프로그래밍에서, 코드 팽창은 불필요하게 길고, 느리거나, 그렇지 않으면 자원이 낭비되는 것으로 인식되는 프로그램 코드(소스 코드 또는 머신 코드)의 생산이다.코드 팽창은 코드가 쓰여진 프로그래밍 언어, 그것을 컴파일하는데 사용되는 컴파일러, 또는 그것을 쓰는 프로그래머의 불충분으로 야기될 수 있다.따라서, 코드 팽창은 일반적으로 (프로그래머에 의해 생산되는) 소스 코드 크기를 의미하지만, 대신 생성된 코드 크기나 심지어 이진 파일 크기를 가리키는 데 사용될 수 있다.

다음의 자바스크립트 알고리즘은 다수의 중복 변수, 불필요한 논리, 비효율적인 문자열 연동을 가지고 있다.

// 복합 기능을 하다 TK2get이미지HTML(사이즈를 맞추다, 줌을 하다, 센서, 표식기) {     시합을 하다 strfinalImage = "";     시합을 하다 strHTMLStart = '[img src="];     시합을 하다 스트러트먼드 = ''' alt="지도'/>>';         시합을 하다 스트롤 = "http://maps.google.com/maps/api/staticmap?center=";     시합을 하다 스트라이즈 = '&size='+ 사이즈를 맞추다;     시합을 하다 스트롬 = '&zoom='+ 줌을 하다;     시합을 하다 스트센서 = '&sensor='+ 센서;             스트롤 += 표식기[0].위도;     스트롤 += ",";     스트롤 += 표식기[0].경도;     스트롤 += 스트라이즈;     스트롤 += 스트롬;     스트롤 += 스트센서;          을 위해 (시합을 하다 i = 0; i < 표식기.길이; i++) {         스트롤 += 표식기[i].addMarker();     }          strfinalImage = strHTMLStart + 스트롤 + 스트러트먼드;     돌아오다 strfinalImage; }; 

같은 논리를 보다 효율적으로 다음과 같이 진술할 수 있다.

// 단순화 경시하다 TK2get이미지HTML = (사이즈를 맞추다, 줌을 하다, 센서, 표식기) => {     경시하다 [ { 위도, 경도 } ] = 표식기;     하게 하다 url = http://maps.google.com/maps/api/staticmap?center=${ 위도 },${ 경도 }&size=${ 사이즈를 맞추다 }&quot;&quot;${ 줌을 하다 }&quot;&quot;${ 센서 }`;      표식기.각을 위해(표식기 => url += 표식기.addMarker());      돌아오다 <<임 src=>>${ url }alt="지도" />"; }; 

다른 언어의 코드 밀도

다양한 컴퓨터 언어 간의 코드 밀도의 차이는 너무 커서 "콤팩트" 언어(예: 도메인별 프로그래밍 언어, Microsoft P-Code 또는 스레드 코드)로 작성된 프로그램과 그 컴팩트 언어(원래 코드로 작성됨)에 대한 통역모두 보유하는 데 필요한 메모리가 그 프로그램을 보유하는 것보다 더 적은 경우가 많다.고유 암호로 직접 작성됨

팽창 감소

코드 팽창을 줄이기 위한 몇 가지 기술은 다음과 같다.[1]

  • 코드 리팩터링 일반적으로 사용되는 코드 시퀀스를 서브루틴으로 변환하고, 각 위치에서 코드를 복사하여 붙여넣기 보다는 여러 위치에서 서브루틴을 호출한다.
  • 처음부터 다시 새로운 루틴으로 다시 쓰는 것이 아니라 이미 작성된 서브루틴(아마도 추가 파라미터와 함께)을 재사용하는 것이다.

참고 항목

참조

  1. ^ "Code bloat". DocForge. Retrieved 30 December 2009.