खोज…


परिचय

टाइप अस्थिरता तब होती है जब एक चर का प्रकार रनटाइम में बदल सकता है, और इसलिए संकलन-समय पर इसका अनुमान नहीं लगाया जा सकता है। टाइप अस्थिरता अक्सर प्रदर्शन समस्याओं का कारण बनती है, इसलिए टाइप-स्थिर कोड को लिखना और पहचानना महत्वपूर्ण है।

टाइप-स्टेबल कोड लिखें

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)

इसका कारण यह है कि sumofsins1 में टाइप-अस्थिर कोड जहां प्रत्येक पुनरावृत्ति के लिए r के प्रकार की जांच की जानी चाहिए।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow