在Julia中用明確的變數型別來優化
下面2個函式,一個函式用明確的變數型別,一個沒用,效能差別很大,分配記憶體差別也很大
julia> function f4(r::Int) sum1=Int64(0) for a in 1:r for b in 1:floor(Int64,sqrt(r^2 - a^2)) for c in 1:floor(Int64,sqrt(r^2 - a^2 - b^2)) sum1=sum1+floor(Int64,sqrt(r^2 - a^2 - b^2 - c^2)) end end end sum1*16 end f4 (generic function with 1 method) julia> @time f4(400) 0.572900 seconds (5 allocations: 176 bytes) 125261529600 julia> function f4_1(r::Int) sum1=0 for a in 1:r for b in 1:floor(Int64,sqrt(r^2 - a^2)) for c in 1:floor(Int64,sqrt(r^2 - a^2 - b^2)) sum1=sum1+floor(Int64,sqrt(r^2 - a^2 - b^2 - c^2)) end end end sum1*16 end f4_1 (generic function with 1 method) julia> @time f4_1(400) 2.690156 seconds (66.65 M allocations: 1017.140 MiB, 3.51% gc time) 125261529600
相關文章
- 引數如何在python中明確型別?Python型別
- PHP變數型別PHP變數型別
- Java 變數型別Java變數型別
- 變數型別-Set變數型別
- 修改全域性變數時,可變型別和不可變型別的區別變數型別
- 淺談變數型別之外的變數命名變數型別
- PLC結構化文字(ST)——變數型別和變數屬性變數型別
- c++中的變數型別_C ++中的變數C++變數型別
- .net framework新特性之隱式型別化的變數Framework型別變數
- (轉) JAVA,Mybatis,Oracle變數型別與欄位型別不一致,分割槽表全掃的優化JavaMyBatisOracle變數型別優化
- python中用函式初始化類變數Python函式變數
- JavaScript - 變數、值、型別JavaScript變數型別
- 資料型別,變數資料型別變數
- 變數型別轉換變數型別
- Python變數型別Python變數型別
- C++中變數的型別C++變數型別
- Rust的變數型別__Data typeRust變數型別
- 型別的本質:對變數、型別、指標的理解型別變數指標
- 強型別語言變數和資料型別的理解變數資料型別
- C#變數型別(1):引用型別和值型別 (轉)變數型別
- Dart型別變數-表示資訊Dart型別變數
- c++中變數型別C++變數型別
- 如何判斷變數型別變數型別
- MySQL優化之系統變數優化MySql優化變數
- 在JavaScript中也玩變數型別強行轉換JavaScript變數型別
- Oracle可變引數的優化Oracle優化
- js基本語法之 值型別(資料型別)(變數型別)JS資料型別變數
- C++教程-----C++變數型別和變數的定義C++變數型別
- javascript中如何判斷變數的型別?JavaScript變數型別
- 分析 JavaScript 的資料型別與變數JavaScript資料型別變數
- 輸出C語言中 變數的型別C語言變數型別
- JavaScript 中對變數型別的判斷JavaScript變數型別
- 引用型別變數的強制轉換型別變數
- JS的資料型別和變數(轉)JS資料型別變數
- c++基本型別和變數C++型別變數
- C++ 變數型別查詢C++變數型別
- Pytorch變數型別轉換PyTorch變數型別
- 二、變數與資料型別變數資料型別