수색…


소개

타입의 불안정성 은 변수의 타입 이 런타임에 변경 될 수 있고 따라서 컴파일 타임에 유추 될 수 없을 때 발생합니다. 유형 불안정성으로 인해 성능 문제가 발생하기 때문에 유형 안정 코드를 작성하고 식별 할 수 있어야합니다.

유형 안정 코드 작성

function sumofsins1(n::Integer)  
    r = 0  
    for i in 1:n  
        r += sin(3.4)  
    end  
    return r  
end  

function sumofsins2(n::Integer)  
    r = 0.0  
    for i in 1:n  
        r += sin(3.4)  
    end  
    return r  
end

위의 두 함수의 타이밍은 시간과 메모리 할당의 측면에서 큰 차이점을 보여줍니다.

julia> @time [sumofsins1(100_000) for i in 1:100];
0.638923 seconds (30.12 M allocations: 463.094 MB, 10.22% gc time)

julia> @time [sumofsins2(100_000) for i in 1:100];
0.163931 seconds (13.60 k allocations: 611.350 KB)

이것은 매 반복마다 r 의 유형을 검사 sumofsins1 의 유형이 불안정한 코드 때문입니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow