# Question about using SnoopPrecompile

**URL:** https://discourse.julialang.org/t/question-about-using-snoopprecompile/88227
**Category:** Package Management
**Tags:** question, package
**Created:** [October 3, 2022, 10:33pm UTC](https://discourse.julialang.org/t/question-about-using-snoopprecompile/88227 "2022-10-03T22:33:57Z")
**Posts on this page:** 1
**Showing post:** 9

<div class="post-metadata">

### Author: ![tim.holy](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tim.holy/32/52_2.png) [@tim.holy](https://discourse.julialang.org/u/tim.holy)
#### Post date: [October 5, 2022, 12:04pm UTC](https://discourse.julialang.org/t/question-about-using-snoopprecompile/88227/9 "2022-10-05T12:04:14Z")

</div>

One opportunity that probably most people are still not exploiting: with 1.8, the precompile work does not have to be in the package that “owns” the code. So what that means is that each user can construct a “personal Startup.jl” package and say `using Startup` at the beginning of a new session. So for example, if you like to use a combination of CSV, DataFrames, and StatsModels and want certain things to be fast, then you can `Pkg.generate("Startup")` in your `dev` folder and then the Startup package might look like this:

```julia
module Startup

using CSV, DataFrames, StatsModels # all these should be in the Project.toml for Startup
using SnoopPrecompile

@precompile_setup begin
    data = ...
    @precompile_all_calls begin
        call_some_code(data, ...)
    end
end

end # Startup module

```

Then the code for those packages you want to be fast will be cached in a `*.ji` file for Startup.jl.

---

_[View the full topic](https://discourse.julialang.org/t/question-about-using-snoopprecompile/88227)._
