Skip to content

Conversation

@IanButterworth
Copy link
Collaborator

@IanButterworth IanButterworth commented Jul 7, 2025

Given we elaborate external methods it seems logical to do the same for internal?

% julia +nightly -E 'using PkgCacheInspector; info_cachefile("Pkg")'
Precompiling PkgCacheInspector finished.
  1 dependency successfully precompiled in 1 seconds. 3 already precompiled.
Contents of /Users/ian/.julia/juliaup/julia-nightly/share/julia/compiled/v1.13/Pkg/tUTdb_j73Rz.dylib:
  modules: Module[Pkg.MiniProgressBars, Pkg.GitTools, Pkg.PlatformEngines, Pkg.Versions, Pkg.Registry, Pkg.Resolve, Pkg.Types.FuzzySorting, Pkg.Types, Pkg.BinaryPlatformsCompat, Pkg.PkgArtifacts, Pkg.Operations, Pkg.API, Pkg.Apps, Pkg.REPLMode, Pkg]
  init order: Any[Pkg]
  1162 internal methods
    (API 230, Types 192, Operations 173, Resolve 131, Registry 75, REPLMode 74, Apps 53, Pkg 46, PkgArtifacts 45, Versions 30, BinaryPlatformsCompat 28, GitTools 26, PlatformEngines 26, FuzzySorting 22, MiniProgressBars 11)
  1653 external methods
  21973 new specializations of external methods (Base 73.4%, Base.Broadcast 7.2%, Core 6.9%, ...)
  987 external methods with new roots
  1159 edges
  file size:   42756560 (40.776 MiB)
  Segment sizes (bytes):
    system:      17592876 ( 52.32%)
    isbits:      13559288 ( 40.33%)
    symbols:        85317 (  0.25%)
    tags:          301624 (  0.90%)
    relocations:  1992997 (  5.93%)
    gvars:          35424 (  0.11%)
    fptrs:          56440 (  0.17%)
  Image targets:
    generic; flags=0; features_en=()
    apple-m1; flags=0; features_en=(aes, sha2, crc, lse, fullfp16, rdm, jsconv, complxnum, rcpc, ccpp, sha3, dotprod, fp16fml, dit, rcpc-immo, flagm, sb, ccdp, altnzcv, fptoint, v8_1a, v8_2a, v8_3a, v8_4a, v8_5a)

Written with help from Claude.

@IanButterworth
Copy link
Collaborator Author

IanButterworth commented Jul 7, 2025

With the 2nd commit we get internal specializations

% julia +1.12 -E 'using MethodAnalysis, PkgCacheInspector; info_cachefile("Pkg")'
Contents of /Users/ian/.julia/juliaup/julia-1.12.0-beta4+0.aarch64.apple.darwin14/share/julia/compiled/v1.12/Pkg/tUTdb_dnZrE.dylib:
  modules: Module[Pkg.MiniProgressBars, Pkg.GitTools, Pkg.PlatformEngines, Pkg.Versions, Pkg.Registry, Pkg.Resolve, Pkg.Types.FuzzySorting, Pkg.Types, Pkg.BinaryPlatforms, Pkg.Artifacts, Pkg.Operations, Pkg.API, Pkg.Apps, Pkg.REPLMode, Pkg]
  init order: Any[Pkg]
  1144 internal methods
    (API 230, Types 190, Operations 173, Resolve 131, Registry 75, REPLMode 74, Apps 45, Pkg 43, Artifacts 40, Versions 30, BinaryPlatforms 28, PlatformEngines 26, GitTools 26, FuzzySorting 22, MiniProgressBars 11)
  1217 specializations of internal methods (Types 23.3%, Operations 19.7%, API 11.4%, ...)
  1642 external methods
  20732 new specializations of external methods (Base 72.1%, Core 7.8%, Base.Broadcast 7.3%, ...)
  276 external methods with new roots
  1123 edges
  file size:   43392896 (41.383 MiB)
  Segment sizes (bytes):
    system:      17674020 ( 53.79%)
    isbits:      12725672 ( 38.73%)
    symbols:        85549 (  0.26%)
    tags:          293971 (  0.89%)
    relocations:  1987140 (  6.05%)
    gvars:          34832 (  0.11%)
    fptrs:          56000 (  0.17%)
  Image targets:
    generic; flags=0; features_en=()
    apple-m1; flags=0; features_en=(aes, sha2, crc, lse, fullfp16, rdm, jsconv, complxnum, rcpc, ccpp, sha3, dotprod, fp16fml, dit, rcpc-immo, flagm, sb, ccdp, altnzcv, fptoint, v8_1a, v8_2a, v8_3a, v8_4a, v8_5a)

Nightly with timholy/MethodAnalysis.jl#52

% julia +nightly -E 'using MethodAnalysis, PkgCacheInspector; info_cachefile("Pkg")'
Contents of /Users/ian/.julia/juliaup/julia-nightly/share/julia/compiled/v1.13/Pkg/tUTdb_j73Rz.dylib:
  modules: Module[Pkg.MiniProgressBars, Pkg.GitTools, Pkg.PlatformEngines, Pkg.Versions, Pkg.Registry, Pkg.Resolve, Pkg.Types.FuzzySorting, Pkg.Types, Pkg.BinaryPlatformsCompat, Pkg.PkgArtifacts, Pkg.Operations, Pkg.API, Pkg.Apps, Pkg.REPLMode, Pkg]
  init order: Any[Pkg]
  1162 internal methods
    (API 230, Types 192, Operations 173, Resolve 131, Registry 75, REPLMode 74, Apps 53, Pkg 46, PkgArtifacts 45, Versions 30, BinaryPlatformsCompat 28, GitTools 26, PlatformEngines 26, FuzzySorting 22, MiniProgressBars 11)
  1221 specializations of internal methods (Types 23.5%, Operations 19.7%, API 11.4%, ...)
  1653 external methods
  21973 new specializations of external methods (Base 73.4%, Base.Broadcast 7.2%, Core 6.9%, ...)
  987 external methods with new roots
  1159 edges
  file size:   42756560 (40.776 MiB)
  Segment sizes (bytes):
    system:      17592876 ( 52.32%)
    isbits:      13559288 ( 40.33%)
    symbols:        85317 (  0.25%)
    tags:          301624 (  0.90%)
    relocations:  1992997 (  5.93%)
    gvars:          35424 (  0.11%)
    fptrs:          56440 (  0.17%)
  Image targets:
    generic; flags=0; features_en=()
    apple-m1; flags=0; features_en=(aes, sha2, crc, lse, fullfp16, rdm, jsconv, complxnum, rcpc, ccpp, sha3, dotprod, fp16fml, dit, rcpc-immo, flagm, sb, ccdp, altnzcv, fptoint, v8_1a, v8_2a, v8_3a, v8_4a, v8_5a)

@IanButterworth IanButterworth changed the title Show internal method count Show internal method count. Test 1.12-nightly Jul 9, 2025
Copy link
Owner

@timholy timholy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

21973 specializations 😮

@IanButterworth IanButterworth marked this pull request as ready for review July 28, 2025 17:49
Copy link
Owner

@timholy timholy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Almost ready, one idea for your consideration.

@timholy timholy merged commit b0d545b into main Jul 29, 2025
3 checks passed
@timholy timholy deleted the ib/estimate_size branch July 29, 2025 00:44
@timholy
Copy link
Owner

timholy commented Jul 29, 2025

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants