TiddlyWiki / TiddlyDesktop

A custom desktop browser for TiddlyWiki 5 and TiddlyWiki Classic, based on nw.js
1.7k stars 124 forks source link

Size of Mac release file #104

Closed jekuno closed 4 years ago

jekuno commented 7 years ago

Thanks for relevase v0.0.9 . Can you explain why the Mac release of v0.0.9 now has a size of 228 MB whereas it was 40.9 MB in the previous release - which is more than 5 times as big?

Jermolene commented 7 years ago

Hi @jekuno it's the underlying NW.js framework that has increased in size with the upgrade to v0.25.4.

It may be worth some research to discover if some files/folders in the distribution could be removed to reduce the size, but I notice that the main NWJS library file is 115MB and the Node library is 20MB, which suggests that we wouldn't be able to get anywhere near the size of the previous release.

syrte commented 6 years ago

No offense, just curious. Feel free to ignore my question. Why release v0.0.9 for linux or windows both have size about 100MB, while the one for macos is doubled in size? Because NW.js also has a different size in each platform? Or just the different compression ratio when packing?

Jermolene commented 6 years ago

@syrte it is indeed because NW.js has a different size in each platform. As I noted above, the raw uncompressed files comprising the NW.js library on Mac OS comprise about 135MB, so I don't see much scope for improvement.

100priyal commented 6 years ago

after extracting the dmg file, tiddlydesktop.app is 609.7MB, @Jermolene

Jermolene commented 6 years ago

Hi @priyalkumar almost all of that 609MB is nw.js itself; the folder containing TW5 is just 17.1MB.

We need to research why the nw.js executable is so large for macOS, and learn whether there are any parts that we can trim before distribution.

half0wl commented 6 years ago

FYI this might have something to do with how you're building the macOS version.

The current version downloaded from https://github.com/Jermolene/TiddlyDesktop/releases (v0.0.13) is 609.7MB uncompressed. The largest file is nwjs Framework.framework which takes up ~590MB. If you look at the contents inside (TiddlyDesktop-mac64-v0.0.13/TiddlyDesktop.app/Contents/Versions/64.0.3282.140/nwjs Framework.framework), you'll see that lots of it are duplicates (when they're supposed to be symlinks from my understanding):

nwjs Framework.framework ツ ls -al
total 273992
drwx------@   9 ray  staff        288 Feb  8  2018 .
drwx------@   5 ray  staff        160 Feb  8  2018 ..
drwx------@   3 ray  staff         96 Feb  8  2018 Helpers
drwx------@   4 ray  staff        128 Feb  8  2018 Internet Plug-Ins
drwx------@ 101 ray  staff       3232 Feb  8  2018 Resources
drwx------@   4 ray  staff        128 Feb  8  2018 Versions
drwx------@   3 ray  staff         96 Feb  8  2018 XPCServices
-rwxr-xr-x@   1 ray  staff   21449268 Feb  8  2018 libnode.dylib
-rwxr-xr-x@   1 ray  staff  118831024 Feb  8  2018 nwjs Framework

I tried building from source and it yielded a 282.5MB binary with the proper symlinks in place (and the app works too):

(master ±) nwjs Framework.framework ツ ls -al
total 45192
drwxr-xr-x  10 ray  staff       320 Oct  1 04:04 .
drwxr-xr-x   5 ray  staff       160 Oct  1 04:04 ..
lrwxr-xr-x   1 ray  staff        24 Oct  1 04:04 Helpers -> Versions/Current/Helpers
lrwxr-xr-x   1 ray  staff        34 Oct  1 04:04 Internet Plug-Ins -> Versions/Current/Internet Plug-Ins
lrwxr-xr-x   1 ray  staff        26 Oct  1 04:04 Libraries -> Versions/Current/Libraries
lrwxr-xr-x   1 ray  staff        26 Oct  1 04:04 Resources -> Versions/Current/Resources
drwxr-xr-x   4 ray  staff       128 Oct  1 04:04 Versions
lrwxr-xr-x   1 ray  staff        28 Oct  1 04:04 XPCServices -> Versions/Current/XPCServices
-rwxr-xr-x   1 ray  staff  23135488 Oct  1 04:04 libnode.dylib
lrwxr-xr-x   1 ray  staff        31 Oct  1 04:04 nwjs Framework -> Versions/Current/nwjs Framework