• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

TuringLang / JuliaBUGS.jl / 8049035365
82%
main: 84%

Build:
Build:
LAST BUILD BRANCH: sg/#380
DEFAULT BRANCH: main
Ran 26 Feb 2024 01:02PM UTC
Jobs 1
Files 44
Run time 3s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

26 Feb 2024 12:42PM UTC coverage: 80.152% (+0.2%) from 79.911%
8049035365

push

github

web-flow
Improve `CollectVariables` (#138)

![image](https://github.com/TuringLang/JuliaBUGS.jl/assets/5433119/c2399eb0-9655-44dc-9d06-5f56a37d69d8)

From the profiling results, the biggest performance issues are caused
by:

1. the use of `MacroTools.@catpure`, this function is nice to use and
read, but a bit too expensive to be used in hot loops. Reason might be
that internally, it uses Dictionary, also `Expr`'s `args` is
`Vector{Any}`.
2. `merge` a NamedTuple and a Dict

The Fixes thus are:
1. avoid using `@capture`
2. use NamedTuple in the `merge` call

The improvement on `leuk` is from `~40ms, 30MB` to `~12ms, 6MB` (with
`@benchmark`)


![image](https://github.com/TuringLang/JuliaBUGS.jl/assets/5433119/7d97d502-bdf6-4f0f-957d-57c5355c6dad)

After the changes, the biggest performance issue would be the cost
associated with `map` over `Array{Any}` (the `args`s). To resolve this,
I think we may have to move away from `Expr` struct.

some other auxiliary changes:
`merge_collections` is renamed to `merge_with_coalescence` for better
clarity, also added definition that only takes `NamedTuple`s as input;
`check_input` is done with type only now.

1478 of 1844 relevant lines covered (80.15%)

988241.32 hits per line

Jobs
ID Job ID Ran Files Coverage
1 8049035365.1 26 Feb 2024 01:02PM UTC 0
80.15
GitHub Action Run
Source Files on build 8049035365
Detailed source file information is not available for this build.
  • Back to Repo
  • 1835affc on github
  • Prev Build on master (#8031803703)
  • Next Build on master (#8049063962)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc