Opened 5 years ago
Last modified 3 years ago
#4067 assigned enhancement
ChimeraX distribution is too big, over 1 Gbyte uncompressed
| Reported by: | Tom Goddard | Owned by: | Tom Goddard |
|---|---|---|---|
| Priority: | moderate | Milestone: | |
| Component: | Core | Version: | |
| Keywords: | Cc: | Eric Pettersen, Greg Couch | |
| Blocked By: | Blocking: | ||
| Notify when closed: | Platform: | all | |
| Project: | ChimeraX |
Description
We need to look into trimming ChimeraX bloat. It is absolutely enormous with compressed size 300-400 Mbytes and uncompressed 1.15 Gbytes on macOS. I never saw such a large application. The large download size over slower network connections, slow install, and slow startup are all reasons to take a closer look at the size and start trimming it down.
I think without PySide2 the macOS distribution uncompressed was still 600 Mbytes, so this can't all be blamed on massive Qt libraries. Another clue, site-packages/chimerax is 50 Mbytes in ChimeraX 1.1.1 on Mac. So it looks like a lot of prereq packages are causing the huge size.
Change History (5)
comment:1 by , 5 years ago
comment:2 by , 5 years ago
numpy and scipy both have a .dylibs subdirectory with the exact same 4 libraries in them, which is a duplication of 62MB.
follow-up: 3 comment:3 by , 5 years ago
We could remove the parts of PySide2 that we don't use. We're probably including the GPL parts of Qt as well as the LGPL parts, even though we don't use them. -- Greg
follow-up: 4 comment:4 by , 5 years ago
There are developer tools in PySide2 for instance to build UIs from xml descriptions that we could nuke. But it should be considered whether ChimeraX is intended to include that stuff for third-party developers to make use of.
comment:5 by , 3 years ago
The current Mac ARM dmg distribution is 365 Mbytes, and 1 Gbyte uncompressed (ticket #7222), with the Mac universal build 569 Mbyte dmg, and 1.6 Gbytes uncompessed. The 10 largest packages in site-packages for the ARM Mac build are
$ cd site-packages/ $ du -hs * | sort -rh | head du -hs * | sort -rh | head 341M PyQt6 81M scipy 79M chimerax 46M numpy 44M openmm 31M babel 21M debugpy 17M matplotlib 14M OpenGL 12M tables
and QtWebEngine is 189 Mbytes.
189M PyQt6/Qt6/lib/QtWebEngineCore.framework
Things in site-packages taking at least 10MB:
PySide2 459MB
scipy 118MB
numpy 82MB
pydicom 63MB
chimerax 62MB
simtk 42MB
babel 29MB
matplotlib 21MB
imagecodecs 17MB
OpenGL 14MB
tables 14MB
sphinx 14MB