domluna / JuliaFormatter.jl

An opinionated code formatter for Julia. Plot twist - the opinion is your own.

Home Page:https://domluna.github.io/JuliaFormatter.jl/dev/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

compile performance design issue

vtjnash opened this issue · comments

When I load this package, it appears to create a lot of different tuple size combinations (internally this expands to hundreds of different calls to zip). Don't do this. Use a vector for variable sized data. Unfortunately, I have not been able to identify where this comes from, since append! here does not have any backedges, and I don't see append called directly in this code repository.

julia> methods(Base.append!, (Any, Any))[8].specializations
(10, MethodInstance for append!(::Vector{CSTParser.EXPR}, ::NTuple{14, CSTParser.EXPR}))
(11, MethodInstance for append!(::Vector{CSTParser.EXPR}, ::NTuple{27, CSTParser.EXPR}))
(12, MethodInstance for append!(::Vector{CSTParser.EXPR}, ::NTuple{8, CSTParser.EXPR}))
(13, MethodInstance for append!(::Vector{CSTParser.EXPR}, ::NTuple{10, CSTParser.EXPR}))
(14, MethodInstance for append!(::Vector{CSTParser.EXPR}, ::Tuple{CSTParser.EXPR, CSTParser.EXPR, CSTParser.EXPR}))
(15, MethodInstance for append!(::Vector{CSTParser.EXPR}, ::NTuple{12, CSTParser.EXPR}))
(16, MethodInstance for append!(::Vector{CSTParser.EXPR}, ::NTuple{4, CSTParser.EXPR}))
(17, MethodInstance for append!(::Vector{CSTParser.EXPR}, ::NTuple{7, CSTParser.EXPR}))
(18, MethodInstance for append!(::Vector{CSTParser.EXPR}, ::Tuple{CSTParser.EXPR, CSTParser.EXPR}))
(19, MethodInstance for append!(::Vector{CSTParser.EXPR}, ::NTuple{9, CSTParser.EXPR}))
(20, MethodInstance for append!(::Vector{CSTParser.EXPR}, ::NTuple{16, CSTParser.EXPR}))
(21, MethodInstance for append!(::Vector{CSTParser.EXPR}, ::NTuple{17, CSTParser.EXPR}))
(22, MethodInstance for append!(::Vector{CSTParser.EXPR}, ::NTuple{5, CSTParser.EXPR}))
(23, MethodInstance for append!(::Vector{CSTParser.EXPR}, ::NTuple{6, CSTParser.EXPR}))
(24, MethodInstance for append!(::Vector{JuliaFormatter.FST}, ::NTuple{7, JuliaFormatter.FST}))
(25, MethodInstance for append!(::Vector{JuliaFormatter.FST}, ::NTuple{5, JuliaFormatter.FST}))
(26, MethodInstance for append!(::Vector{JuliaFormatter.FST}, ::NTuple{23, JuliaFormatter.FST}))
(27, MethodInstance for append!(::Vector{JuliaFormatter.FST}, ::NTuple{9, JuliaFormatter.FST}))
(28, MethodInstance for append!(::Vector{JuliaFormatter.FST}, ::NTuple{21, JuliaFormatter.FST}))
(29, MethodInstance for append!(::Vector{JuliaFormatter.FST}, ::NTuple{25, JuliaFormatter.FST}))
(30, MethodInstance for append!(::Vector{JuliaFormatter.FST}, ::NTuple{17, JuliaFormatter.FST}))
(31, MethodInstance for append!(::Vector{JuliaFormatter.FST}, ::NTuple{19, JuliaFormatter.FST}))
(32, MethodInstance for append!(::Vector{JuliaFormatter.FST}, ::Tuple{JuliaFormatter.FST, JuliaFormatter.FST, JuliaFormatter.FST}))
(33, MethodInstance for append!(::Vector{JuliaFormatter.FST}, ::NTuple{11, JuliaFormatter.FST}))
(34, MethodInstance for append!(::Vector{JuliaFormatter.FST}, ::NTuple{15, JuliaFormatter.FST}))
(35, MethodInstance for append!(::Vector{JuliaFormatter.FST}, ::NTuple{6, JuliaFormatter.FST}))
(36, MethodInstance for append!(::Vector{JuliaFormatter.FST}, ::NTuple{29, JuliaFormatter.FST}))
(37, MethodInstance for append!(::Vector{JuliaFormatter.FST}, ::NTuple{13, JuliaFormatter.FST}))
(38, MethodInstance for append!(::Vector{JuliaFormatter.FST}, ::NTuple{4, JuliaFormatter.FST}))

pkg> st -m JuliaFormatter
  [98e50ef6] JuliaFormatter v1.0.24
```

oh wait the splat would turn the list into a tuple