在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++變數型別
- Rust的變數型別__Data typeRust變數型別
- 資料型別,變數資料型別變數
- JavaScript - 變數、值、型別JavaScript變數型別
- 變數型別轉換變數型別
- 型別的本質:對變數、型別、指標的理解型別變數指標
- 為什麼數字化轉型必須要有一個清晰明確的目標?
- 強型別語言變數和資料型別的理解變數資料型別
- 如何判斷變數型別變數型別
- Pytorch變數型別轉換PyTorch變數型別
- MySQL優化之系統變數優化MySql優化變數
- js基本語法之 值型別(資料型別)(變數型別)JS資料型別變數
- 地理位置經緯度在Mysql中用什麼欄位型別MySql型別
- C++教程-----C++變數型別和變數的定義C++變數型別
- javascript中如何判斷變數的型別?JavaScript變數型別
- 分析 JavaScript 的資料型別與變數JavaScript資料型別變數
- SSIS 資料型別 第二篇:變數的資料型別資料型別變數
- C++ 變數型別查詢C++變數型別
- python學習之變數型別Python變數型別
- Dart型別變數-表示資訊Dart型別變數
- c++基本型別和變數C++型別變數
- 二、變數與資料型別變數資料型別
- 02.內建變數型別變數型別
- python—資料型別和變數Python資料型別變數
- Shell-變數高階用法 (3) 有型別變數變數型別
- Julia中的代數係數
- Laravel 效能優化實踐:在 Auth 中用 Cache 排程快取的 User 模型Laravel優化快取模型
- Python3學習 (變數+值型別+引用型別+列表的可變+元組的不可變+運算子號)Python變數型別
- Solidity-變數和資料型別[複合型別_1]Solid變數資料型別
- 判斷javaScript變數是Ojbect型別還是Array型別JavaScript變數型別
- 明確應用程式型別與資料庫結構設計型別資料庫
- C++中的基本變數型別介紹C++變數型別