Tôi nghĩ rằng trong Julia (không giống như trong R hoặc Matlab) mã devectorized thường nhanh hơn mã vectơ. Nhưng tôi không tìm thấy điều này. Dưới đây là ví dụ:Tại sao mã Julia bị bỏ qua này quá 20x quá chậm?
julia> x = Float64[1:10000000];
julia> y = Array(Float64, length(x));
julia> @time for i = 1:length(x) y[i] = exp(x[i]) end;
elapsed time: 7.014107314 seconds (959983704 bytes allocated, 25.39% gc time)
julia> @time y = exp(x);
elapsed time: 0.364695612 seconds (80000128 bytes allocated)
Tại sao mã vectơ lại nhanh hơn rất nhiều? Có vẻ như mã được phân chia sẽ phân bổ trên 10 lần bộ nhớ. Nhưng chỉ có một vài byte thực sự cần phải được phân bổ để exponentiate bất kỳ số lượng nổi. Có cách nào để viết mã devectorized để nó không phân bổ rất nhiều bộ nhớ, và do đó chạy nhanh hơn mã vectơ?
Cảm ơn!
"_I nghĩ ..._" Bạn nên luôn cung cấp một số bằng chứng để hỗ trợ các tuyên bố về bản chất này. – csmckelvey
Chắc chắn, đây là bài đăng thể hiện mã có thể bị phân tách nhanh hơn bao nhiêu trong Julia: http://www.johnmyleswhite.com/notebook/2013/12/22/the-relationship-between-vectorized-and-devectorized-code/ – Jeff