Skip to content

Banded matrix support triples compile time #954

@jebej

Description

@jebej

On my fast desktop, running @time using OrdinaryDiffEq takes 15 seconds.

A couple of versions ago, it used to start much more quickly. I manually checked the loading time in a clean environment, and the biggest jump in load time happens when moving from 5.11.1 to 5.12.0.

The time goes from ~5sec to 15sec. Hopefully this can be improved.

(ODELoadTime) pkg> add [email protected]                                                                            
  Updating registry at `C:\Users\Jeremy\.julia\registries\General`                                                    
  Updating git-repo `https://github.com/JuliaRegistries/General.git`                                                  
 Resolving package versions...                                                                                        
 Installed OrdinaryDiffEq ─ v5.11.1                                                                                   
  Updating `C:\Users\Jeremy\temp\ODELoadTime\Project.toml`                                                            
  [1dea7af3] ↑ OrdinaryDiffEq v5.10.0 ⇒ v5.11.1                                                                       
  Updating `C:\Users\Jeremy\temp\ODELoadTime\Manifest.toml`                                                           
  [01453d9d] ↓ DiffEqDiffTools v1.3.0 ⇒ v0.14.0                                                                       
  [1dea7af3] ↑ OrdinaryDiffEq v5.10.0 ⇒ v5.11.1                                                                       
                                                                                                                      
(ODELoadTime) pkg>                                                                                                    
                                                                                                                      
C:\Users\Jeremy\AppData\Local\Cmder                                                                                   
λ julia -q                                                                                                            
julia> using Pkg; Pkg.activate("C:\\Users\\Jeremy\\temp\\ODELoadTime\\")                                              
"C:\\Users\\Jeremy\\temp\\ODELoadTime\\Project.toml"                                                                  
                                                                                                                      
(ODELoadTime) pkg> precompile                                                                                         
Precompiling project...                                                                                               
Precompiling OrdinaryDiffEq                                                                                           
[ Info: Recompiling stale cache file C:\Users\Jeremy\.julia\compiled\v1.1\OrdinaryDiffEq\DlSvy.ji for OrdinaryDiffEq [
1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]                                                                                 
                                                                                                                      
julia> @time using OrdinaryDiffEq                                                                                     
  4.952551 seconds (10.26 M allocations: 612.715 MiB, 5.28% gc time)                                                  
                                                                                                                      
(ODELoadTime) pkg> add [email protected]                                                                            
  Updating registry at `C:\Users\Jeremy\.julia\registries\General`                                                    
  Updating git-repo `https://github.com/JuliaRegistries/General.git`                                                  
 Resolving package versions...                                                                                        
 Installed OrdinaryDiffEq ─ v5.12.0                                                                                   
  Updating `C:\Users\Jeremy\temp\ODELoadTime\Project.toml`                                                            
  [1dea7af3] ↑ OrdinaryDiffEq v5.11.1 ⇒ v5.12.0                                                                       
  Updating `C:\Users\Jeremy\temp\ODELoadTime\Manifest.toml`                                                           
  [79e6a3ab] + Adapt v1.0.0                                                                                           
  [ec485272] + ArnoldiMethod v0.0.4                                                                                   
  [aae01518] + BandedMatrices v0.13.0                                                                                 
  [8e7c35d0] + BlockArrays v0.10.1                                                                                    
  [ffab5731] + BlockBandedMatrices v0.5.2                                                                             
  [01453d9d] ↑ DiffEqDiffTools v0.14.0 ⇒ v1.3.0                                                                       
  [1a297f60] + FillArrays v0.7.4                                                                                      
  [d25df0c9] + Inflate v0.1.1                                                                                         
  [5078a376] + LazyArrays v0.12.3                                                                                     
  [093fc24a] + LightGraphs v1.3.0                                                                                     
  [a3b82374] + MatrixFactorizations v0.2.0                                                                            
  [1dea7af3] ↑ OrdinaryDiffEq v5.11.1 ⇒ v5.12.0                                                                       
  [699a6c99] + SimpleTraits v0.9.1                                                                                    
  [47a9eef4] + SparseDiffTools v0.9.2                                                                                 
  [19fa3120] + VertexSafeGraphs v0.1.0                                                                                
  [9abbd945] + Profile                                                                                                
                                                                                                                      
julia>                                                                                                                
                                                                                                                      
C:\Users\Jeremy\AppData\Local\Cmder                                                                                   
λ julia -q                                                                                                            
julia> using Pkg; Pkg.activate("C:\\Users\\Jeremy\\temp\\ODELoadTime\\")                                              
"C:\\Users\\Jeremy\\temp\\ODELoadTime\\Project.toml"                                                                  
                                                                                                                      
(ODELoadTime) pkg> precompile                                                                                         
Precompiling project...                                                                                               
Precompiling OrdinaryDiffEq                                                                                           
[ Info: Recompiling stale cache file C:\Users\Jeremy\.julia\compiled\v1.1\OrdinaryDiffEq\DlSvy.ji for OrdinaryDiffEq [
1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]                                                                                 
                                                                                                                      
julia> @time using OrdinaryDiffEq                                                                                     
 15.079790 seconds (59.11 M allocations: 3.677 GiB, 5.76% gc time)                                                    

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions