diff --git a/.gitignore b/.gitignore index 392be0fa7490a7575be30051236053bc5050b1ee..1d93ec1942c652c749728edd8c2707886ea8edec 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,5 @@ examples # environment. Manifest.toml +# system image used to speed up GUI loading +/sysimg.so \ No newline at end of file diff --git a/sysimg_create.jl b/sysimg_create.jl new file mode 100755 index 0000000000000000000000000000000000000000..e0abc14892c04a995155e03cd43df46070bc77c5 --- /dev/null +++ b/sysimg_create.jl @@ -0,0 +1,15 @@ +#!/usr/bin/env julia + +import Pkg +Pkg.activate(".") + +using PackageCompiler + +# Creating the sysimg takes a few minutes and uses around 13GB of RAM. +# +# TODO: currently all GUI functions must be called manually, optimally +# every GUI function is called and a complete simulation is run. +create_sysimage(["Persefone", "CSV", "CxxWrap", "DataFramesMeta", "FileIO", "GLMakie", + "GeometryBasics", "Observables", "QML", "ResumableFunctions", "TableTransforms", "TOML"], + sysimage_path="sysimg.so", + precompile_execution_file="sysimg_precompile.jl") diff --git a/sysimg_precompile.jl b/sysimg_precompile.jl new file mode 100644 index 0000000000000000000000000000000000000000..5d64ff27ac894a6938dab66efa7c0b6f833f0974 --- /dev/null +++ b/sysimg_precompile.jl @@ -0,0 +1,6 @@ +using PersefoneDesktop +# TODO: currently all important GUI functions that should be +# precompiled must be called manually, and then the GUI must be closed +# manually. It would be good if this could be completely automated. +launch() +