speed_test1

Performance 중심의 Octave 학습 예제

ex-speed/speed_test1.m

코드 인덱스로 돌아가기

카테고리

Performance Drill

학습 소스 그룹

코드 길이

23

lines

작성자

-

날짜 정보 없음

패키지

none

pkg load 기준

함수 시그니처

function [x, y, z] = speed_test1(n, p, q, r, t)

전체 코드

전체 코드를 복사해서 Octave에서 바로 실행할 수 있습니다.

function [x, y, z] = speed_test1(n, p, q, r, t)
    # - n = 100000, p = 4, q = 4, r = 4
    # - 실행 방식: `for` 루프를 네 번 중첩하여 각 요소를 개별적으로 할당
    # - 실행 시간: 171.573 seconds (매우 느림)
    # - 비효율적인 점: 매번 개별 요소에 접근하여 연산을 수행하므로, 반복문 오버헤드가 크다.

    x = zeros(n, p, q, r);
    y = zeros(n, p, q, r);
    z = zeros(n, p, q, r);

    for l=1:n
        for i=1:p
            for j=1:q
                for k=1:r
                    x(l,i,j,k) = sin(t(l));
                    y(l,i,j,k) = cos(t(l));
                    z(l,i,j,k) = sin(t(l)) .* cos(t(l));
                end
            end
        end
    end
end

코드 해설

목적

Performance 중심의 Octave 학습 예제

입력

  • 파라미터: n
  • 파라미터: p
  • 파라미터: q
  • 파라미터: r
  • 파라미터: t

출력

  • 반환값: x
  • 반환값: y
  • 반환값: z

실행 흐름

  1. - 비효율적인 점: 매번 개별 요소에 접근하여 연산을 수행하므로, 반복문 오버헤드가 크다

핵심 함수/주제

zeroscossinseconds

실습 과제

  • 핵심 함수 zeros의 인자를 한 가지 바꿔 결과 변화를 기록해보세요.

학습 팁

같은 카테고리의 다른 코드