47 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 5. 2 ] 배열이나 문자열 전체를 내보냄
배열이나 문자열 전체를 내보냄
" 배열의 효율적인 사용 "에서 설명하는 배열 사용에 대한 일반적인 지침은 I / O 문을 사용하여 배열을 읽고 쓰는에도 적용됩니다.
불필요한 오버헤드를 없애기 위해 개별 요소를 여러 번 내보낼 것이 아니라 배열이나 문자열 전체를 한 번에 내보내도록합니다. I / O 정렬의 각 항목은...
|
연필 | 2014.02.21 |
46 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 5. 3 ] 자연 저장 순서로 배열 데이터를 내보냄
자연 저장 순서로 배열 데이터를 내보냄
가능한 한 자연 오름차순 저장을 사용하십시오. 이것은 가장 왼쪽의 첨자가 가장 빠른 1 씩 변화하는 열 기본 순서입니다 ( " 배열의 효율적인 사용 "참조). 프로그램 이외의 순서로 데이터를 읽거나 있으면 효율적인 블록 이동할 수 없습니다.
전체 배열을 내보낼 것이 없으면 ...
|
연필 | 2014.02.21 |
45 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 5. 4 ] 중간 결과를 메모리를 사용해 저장
중간 결과를 메모리를 사용해 저장
중간 결과를 주변 기기의 파일이 아닌 메모리에 저장함으로써 성능을 향상시킬 수 있습니다. 중간 저장소를 사용할 수 오히려 불리하게되는 상황 중 하나는 데이터가 시스템의 실제 메모리보다 훨씬과 큰 경우입니다. 이러한 경우 페이지 오류가 빈번하게 일어나고 가상 메모리의 성능...
|
연필 | 2014.02.21 |
44 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 5. 5 ] DO 형태 반복 접이식 활성화
DO 형태 반복 접이식 활성화
DO 루프 접이식는 I / O 작업의 오버헤드를 줄일 수 있습니다. 일반적으로 I / O 정렬의 개별 요소가 Compaq Fortran RTL에 대한 호출을 개별적으로 생성합니다. 이러한 호출 처리 오버헤드 DO 형태 반복 가장 큽니다.
Compaq Fortran은 7 개까지 중첩되는 DO 형태 반복 최적화된 런타임 라...
|
연필 | 2014.02.21 |
43 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 5. 6 ] 가변 형식을 사용
가변 형식을 사용 가변 형식 (Compaq Fortran 확장)은 FORMAT 문에서 사용할 수있는 꺾쇠 괄호 (<>) 안에있는 숫자 식입니다. 가변 형식 (VFE)은 런타임 형식과 거의 동일한 유연성을 가지고 있습니다만, 컴파일러가 I / O 형식을 런타임에 구문 분석하지 않아도 때문에 더 효율적입니다. 런타임에는 소량을 수행 실제로 데...
|
연필 | 2014.02.21 |
42 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 5. 7 ] 기록 버퍼와 디스크 I/O를 효율적으로 사용
기록 버퍼와 디스크 I/O를 효율적으로 사용
읽기 또는 쓰기를하는 기록은 사용자 프로그램 버퍼와 Compaq Fortran 실행 시스템에서 파일을 열 때 설정되는 하나 이상의 디스크 블록 I / O 버퍼 사이에 전송됩니다. 읽거나 기록하는 기록이 매우 큰 경우를 제외하고 디스크의 읽고 쓰기시 디스크 블록 I / O 버퍼를 여러 ...
|
연필 | 2014.02.21 |
41 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 5. 8 ] RECL 지정
:: RECL 지정 ::
기록 길이 ( OPEN 문장 RECL 지정자)과 오버헤드 합계는 블록 사이즈의 배수 또는 제수, 장치에 따라 다릅니다. 예를 들어, BLOCKSIZE 8192 인 경우, RECL은 24576 (3 배) 또는 1024 (8로 나눈 값)이있을 수 있습니다.
RECL 값은 블록의 크기에 최대한 가깝게 설정되어야합니다 (다만 용량을 초과할 ...
|
연필 | 2014.02.21 |
40 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 6 ] 런타임 효율성을 높이기 위해 소스 코드에 대한 추가 지침
:: 런타임 효율성을 높이기 위해 소스 코드에 대한 추가 지침::
데이터 정렬 및 배열 및 I / O의 효율적인 사용 이외에도 다른 소스 코딩 지침을 구현하여 실행시 성능을 향상시킬 수 있습니다.
런타임 성능이 어느 정도 향상시킬 수 있는지, 문장의 실행 횟수에 관련하고 있습니다. 예를 들어, 루프에서 실행되는 연...
|
연필 | 2014.03.14 |
39 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 6. 1 ] 작은 정수와 작은 논리 데이터 항목을 피한다 (ia64 전용)
:: 작은 정수와 작은 논리 데이터 항목을 피한다 (ia64 전용) ::
배열 데이터 저장 공간 및 메모리 캐시 부족을 최소화하기 위해 배정 밀도 부동 소수점 숫자의 범위와 정밀도가 필요한 경우를 제외하고 64 비트 데이터가 아닌 32 비트 데이터를 사용하도록합니다 .
ia64 시스템에서는 32 비트 (KIND = 4)보다 작은 ...
|
연필 | 2014.03.14 |
38 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 6. 2 ] 혼합 데이터 형식 산술 식을 피하기
:: 혼합 데이터 형식 산술 식을 피하기 ::
같은 계산에서 정수 데이터와 부동 소수점 (REAL) 데이터를 혼합하는 것은 피합니다. 부동 소수점 연산 (대입 문) 모든 숫자를 부동 소수점 값으로 표현하면 데이터를 고정 소수점 형식과 부동 소수점 형식간에 변환할 필요가 없습니다. 정수 연산의 모든 숫자를 정수 값으로 표...
|
연필 | 2014.03.14 |
37 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 6. 3 ] 효율적인 데이터 형식을 사용
:: 효율적인 데이터 형식을 사용 ::
변수에 여러 데이터 형식을 사용할 경우 다음 순서에 따라 데이터 형식을 선택하십시오. 이 목록은 효율적인 순서로되어 있습니다.
ia32 시스템 INTEGER (4) INTEGER * 4로 표현되고있는 4 바이트 정수
INTEGER (8), INTEGER * 8로 표현되고있는 8 바이트 정수
REAL, REAL (KIND...
|
연필 | 2014.03.14 |
36 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 6. 4 ] 실행 속도가 느린 산술 연산자의 사용을 피한다.
:: 실행 속도가 느린 산술 연산자의 사용을 피한다 ::
실행 속도가 낮은 산술 연산자를 피하기 위해 소스 코드를 수정하기 전에 최적화를 통해 많은 느린 산술 연산자가 빠른 산술 연산자로 변환 될 수 있음에 유의하십시오 . 예를 들어, 컴파일러는 H = J ** 2 식을 H = J * J 최적화합니다.
또한 느린 산술 연산자를...
|
연필 | 2014.03.14 |
35 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 6. 5 ] EQUIVALENCE 문장의 사용을 피하기
:: EQUIVALENCE 문장의 사용을 피하기 ::
EQUIVALENCE 문장의 사용을 피하십시오. 이 글에는 다음과 같은 효과가 있습니다.
정렬되지 않은 데이터와 자연 경계에있는 데이터를 일으 킵니다.
다음과 같은 몇 가지 최적화를 방해합니다. 특정 조건에서 전역 데이터 분석 ( " 전역적인 최적화 "를 참조)
제어 변수가 E...
|
연필 | 2014.03.14 |
34 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 6. 6] 문 함수와 내부 보조 프로그램을 사용
:: 문 함수와 내부 보조 프로그램을 사용 ::
Visual Fortran 컴파일러는 컴파일시 사용되는 보조 프로그램 정의를 참조있는 경우, 그 서브 프로그램을 인라인 수 있습니다. 문 함수와 내부 보조 프로그램을 사용하면 특히 여러 소스 파일을 최적화 레벨 / optimize : 4 또는 / optimize : 5 로 정리해 컴파일 때 (또는 적...
|
연필 | 2014.03.14 |
33 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 6. 7 ] DO 루프의 효율성을 고려하여 코딩
:: DO 루프의 효율성을 고려하여 코딩 ::
가능한 DO 루프에서, 산술 연산이나 기타 연산을 최소화합니다. 불필요한 연산을 루프 밖으로 이동하여 성능을 향상시킬 수 있습니다 (예 : 루프에서 변화하지 않는 중간적인 값이 필요하지 않은 경우).
관련 정보
루프 최적화에 대해서는 " 루프 변환 "," 루프 전개 제어 ...
|
연필 | 2014.03.14 |
32 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 7 ] 최적화 수준 : /optimize 옵션
:: 최적화 수준 : /optimize 옵션 ::
Visual Fortran은 기본에 다양한 최적화를 수행합니다. 이러한 최적화는 프로그램의 코드를 변경하지 않고도 이용할 수 있습니다. 하지만 최적화가 어떻게 작동하는지 이해 해두면, 그 동작을 방해하는 요소를 프로그래밍 방식으로 제거하는 것이 있습니다.
컴파일 시에 ...
|
연필 | 2014.03.14 |
31 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 7. 1 ] 모든 최적화 수준에서 수행되는 최적화
:: 모든 최적화 수준에서 수행되는 최적화 ::
다음 최적화는 모든 최적화 수준 ( / optimize : 0 / optimize : 5)에서 이루어집니다.
공간의 최적화 공간의 최적화, 불필요하게 사용되고있는 메모리를 제거하여 개체 또는 실행 파일의 크기를 줄이고 속도와 시스템 처리량을 향상시킵니다. Visual Fortran 공간의 최적...
|
연필 | 2014.03.14 |
30 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 7. 2 ] 국소적인 (최소한의) 최적화
:: 국소적인 (최소한의) 최적화 ::
국소적인 최적화를 사용하려면 / optimize : 1 또는 그 이상의 최적화 레벨 / optimize : 2 / optimize : 3 / optimize : 4 또는 / optimize : 5 를 사용합니다.
국소적인 최적화를 비활성화하려면 / optimize : 0 옵션을 지정합니다.
다음 절에서는 국소적인 최적화에 대해 설명...
|
연필 | 2014.03.14 |
29 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 7. 2. 1 ] 공통 부분 식의 삭제
:: 공통 부분 식의 삭제 ::
복수의 연산 같은 부분식이 나타났으며, 그 값이 동일한 경우, Visual Fortran은 한 번만 계산 부분 식을 결과로 바꿉니다.
DIMENSION A (25,25), B (25,25)
A (I, J) = B (I, J)
최적화없이는이 구문은 다음과 같이 코딩할 수 있습니다.
t1 = ((J-1) * 25 + (I-1)) * 4
t2 = ((J-1) * 2...
|
연필 | 2014.03.26 |
28 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 7. 2. 2 ] 정수의 곱하기와 나누기의 전개
:: 정수의 곱하기와 나누기의 전개 ::
곱하기와 나누기의 전개는 빠르게 곱하기와 나누기를 할 수있는 동일한 결과를 생성하는 비트 자릿수 이동로 변환하는 것입니다. 예를 들어, 정수 식 (I * 17), I 4 비트만 자릿수 이동 후 I의 원래 값을 더한 값으로 계산할 수 있습니다. 이것은 Compaq 포트란 ISHFT 내장 함수를 ...
|
연필 | 2014.03.26 |