Eliminate Bloatware


The Vikings left their trash on the ground - Mac developers are stuffing theirs into their apps.

We’ve heard the excuses and listened to the complaints; the amount of junk shipped in third-party applications just doesn’t seem to change. If anything, it’s getting worse. Just because users may not realise how much bloat they’re getting along with the app, doesn’t change the fact that it’s bloat. Unnecessary junk.

Finder info, .DS_Store files, resource forks, debug symbols… They do nothing for the user short of wasting disk space. For the developer, extra bandwidth costs. Do people not realise this is a problem, or are they just too lazy to act? Either way, the solution is simple.

You can clean apps (sometimes to less than half their original size) with some basic commands in the Terminal. But this takes time, and what’s more, Mac users in general have an aversion to the command line. Enter Trimmit.

[Trimmit]

Trimmit is a svelte utility which takes the pain out of keeping your applications as tight as possible. I use it on Flow each time I seed a build, and I seriously doubt the process could any easier.

Brian Amerige

Trimmit uses superfast UNIX APIs, Apple’s own developer tools, and the rock-solid Cocoa framework to automate your cleaning process. Just drop your built app onto it, maybe configure a few settings, and you’re away. It doesn’t get any easier - or faster.

Other applications claim to save disk space by stripping universal binaries, or removing languages. Trimmit does all of that - and more. But it works. Look at this screenshot from Xslimmer regarding Xcode:

Xslimmer on Xcode

Xslimmer naively believes that only two architectures can exist in any application, but the truth is revealed by Trimmit:

i386, ppc, ppc64, x86_64


Because Trimmit interacts with the shell (zsh, in fact), no similar application can even come close to it’s level of power, accuracy and performance.

The results speak for themselves.

Use Trimmit to recover disk space that third-party applications so rudely waste.

Go get Trimmit.


Back to Top ↑

28 Comments so far

Leave a comment
  1. 1

    This will break some applications and it will most assuredly break Apple software updates if you try it on Apple disks. Don’t do this, fergoshsake. Instead, go spend $50 and get 500 more GB of storage. And complain to Apple: they need to make it easier in Xcode to slim down apps for distribution.

  2. 2

    This will break some applications

    Right. But only if a) the application is written in some legacy format that doesn’t support anything or b) the application itself is written in such a way that changing something will cause it to stop working. But in terms of “breaking” applications irretrievably - maybe in version 0.9, but the next version, which we’re about to release uses an even more highly sophisticated backup mechanism that is guaranteed to work if the trimming fails - or your money back. [But Trimmit’s free!]

    and it will most assuredly break Apple software updates if you try it on Apple disks.

    Breaking software updates? I’ve tested Trimmit on almost all the applications that I have - some fail to run, so I restore the backup - but for most there are huge savings. I don’t know what software update has to do with it.

    Don’t do this, fergoshsake. Instead, go spend $50 and get 500 more GB of storage.

    I don’t think you’re getting it. What Trimmit does can and *should* be done using Xcode and the Terminal already. Trimmit’s just a faster, easier way. Apple do this themselves for their apps. It’s not just wasteful - it’s downright discourteous to waste your users’ disk space with junk.

    And complain to Apple: they need to make it easier in Xcode to slim down apps for distribution.

    But IT’S THERE!!! That’s the point of all this rambling - developers are given all the right tools: Xcode, Terminal, and now Trimmit but they just keep shipping junk.

  3. 3

    I always had a hard time wrapping my mind around the paradox that Xslimmer was ostensibly trying to do such a good thing but doing such a bad job of it. I guess it’s possible for the Xslimmer people to know bits and pieces of a technology without having the depth necessary to carry something like this off. I’ve seen the changelog for the next version and there’s no other way to say it: ‘I be blown away’. ;)

  4. 4

    ‘This will break some applications and it will most assuredly break Apple software updates if you try it on Apple disks.’

    Nonsense. How long you been around? A couple of weeks? People have been doing this manually for years. Besides: Apple aren’t the culprit - Apple are usually better, not worse, than the rest. It’s these lame third party people who really don’t have a clue what they’re doing.

    First clue: if you find a .DS_Store in a bundle you download you can scratch that developer off your list right away. Any developer using (depending on) Finder doesn’t know enough to release software.

  5. 5

    “That’s the point of all this rambling - developers are given all the right tools: Xcode, Terminal, and now Trimmit but they just keep shipping junk.”

    Most developers don’t even know how to make an ‘install’ build. I bet over half of them out there calling themselves ‘developers’ (and taking your money for their blubber) really don’t grasp what that combo box with ‘Debug/Release’ means either.

  6. 6

    Hang on a moment… did I read that quote from Brian Amerige right?

    “…and I seriously doubt the process could be less painless.”

    So, using this application must be a complete pain in the arse then.

  7. 7

    Phil, not sure if you’re being sarcastic, but “it couldn’t be less painless” means “it is painless, and nothing could be more painless”. But that’s impertinent.

  8. 8

    I was being sarcastic about the original quote as I’m sure your app is easy to use but that’s a very bad double negative. “It couldn’t be more painless” is what Brian meant. “It couldn’t be less painless” can be equated to “It could be more painless” or (far worse, as I’m sure your app doesn’t do this) “It could be less painful”.

  9. 9

    I do believe you’re right!

    But “it couldn’t be more painless” would sound the opposite… No matter.

  10. 10

    Using Trimmit on a CARBON app can render it non-operational (just tested it). So my plea to the developers: please make TRIMMIT check for carbon apps and request confirmation before tampering with them.

  11. 11

    Using Trimmit on a CARBON app can render it non-operational

    Backup works?

  12. 12

    Yes, backup works, as expected. But still, why use trial and error, when you can do it right in the first place. Also some resources can still be trimmed in carbon apps, one just needs to keep the essential ones.

  13. 13

    Yes, I want to eliminate all the bloatware on my mac, but Trimmit 1.0 does not work correctly.
    It does not remove languages and does not remove PPC code from the apps.

    Other people have problems, too. Have a look at the versiontracker comments:
    http://www.versiontracker.com/dyn/moreinfo/macosx/33361

    How about making Trimmit open source ?
    That would be great !

  14. 14

    Also some resources can still be trimmed in carbon apps, one just needs to keep the essential ones.

    Maybe in the future. But you can just uncheck the options for the debug symbols and lipo.

    It does not remove languages and does not remove PPC code from the apps.

    It has been reported that Trimmit fails to lipo correctly on some systems. This is being investigated.

  15. 15

    It does not remove languages and does not remove PPC code from the apps

    It’s working 100% on my machine, but on some others it’s not. If people could please inform me whether this is actually working that would be great. Thanks.

  16. 16

    I just want to clarify if Trimmit is for the general user or, primarily, for developers. Namely, is this more for the developer to use before they ship an app, or can I run it on an app after it’s been installed on my system?

    I saw other third-party apps mentioned in comments, but just wanted to clarify.

    Thanks in advance.

  17. 17

    It doesn’t decompress for me! Did you trim that one too? :)

    % bunzip2 Trimmit.tar.bz2

    bunzip2: Compressed file ends unexpectedly;
    perhaps it is corrupted? Possible reason follows.
    bunzip2: No such file or directory
    Input file = Trimmit.tar.bz2, output file = Trimmit.tar

    It is possible that the compressed file(s) have become corrupted.
    You can use the -tvv option to test integrity of such files.

    You can use the `bzip2recover’ program to attempt to recover
    data from undamaged sections of corrupted files.

    bunzip2: Deleting output file Trimmit.tar, if it exists.

    % bunzip2 -tvv Trimmit.tar.bz2

    Trimmit.tar.bz2:
    [1: huff+mtf file ends unexpectedly

    You can use the `bzip2recover’ program to attempt to recover
    data from undamaged sections of corrupted files.

    % bzip2recover Trimmit.tar.bz2

    bzip2recover 1.0.4: extracts blocks from damaged .bz2 files.bzip2recover: searching for block boundaries …
    block 1 runs from 80 to 0 (incomplete)
    bzip2recover: sorry, I couldn’t find any block boundaries.

  18. 18

    Namely, is this more for the developer to use before they ship an app, or can I run it on an app after it’s been installed on my system?

    Both.

    It doesn’t decompress for me!

    Sorry. It’s fixed.

  19. 19

    It works for me. Thanks for the info.

  20. 20

    Agreed. Too much software has become too big the last couple of years. Just because HDD space has become cheap then RAM and CPU power is used needlessly. This is especially a problem for notebooks and other small portable devices.

  21. 21

    “Clear foreign languages” assumes that everyone uses only one language. I use at least two.

    Would it be too hard to offer the means to choose which languages to keep?

  22. 22

    Tut, we’ll have a look at this.

  23. 23

    Trimming resource forks seems like a dangerous idea to me. Unlike the rest of the things in the list, you can’t easily predict which applications actually use resources.

    Neat idea, though.

  24. 24

    Finder ‘get info’ shows increase in app sizes for both Camino and Comic Life after running Trimmit. This must reflect the backup file, but there is no info on where the backup is kept, when it is safe to delete it, or how much space was reclaimed.
    Is there a FAQ page? A ‘help’ file?
    This is on MacBook Pro, Tiger 10.4.11.
    Thanks

  25. 25

    “Clear foreign languages” currently (0.95b - I don’t see 1.0 despite the comments) assumes you wish to keep only your “first choice” language and either deletes all others or, if that language isn’t available, deletes none of them. This doesn’t work for me - I want to keep my first language choice and English/English-GB if both are available, otherwise I want to keep English/English-GB and delete the rest. It seems Trimmit picks up language preferences but only considers the first language. It is pretty easy to adapt it to behave as you need, but it would be nice if users wary of this sort of “fiddling” could access the same functionality.

    My main issue with Trimmit isn’t really with Trimmit, I think. All the large applications I test this on fail to work once trimmed whereas many of the smaller ones do just fine but obviously it then saves me much less space!

  26. 26

    Robert - Camino is working fine for me; Comic Life should work too. After running, you’ll get two apps - one has ‘ backup’ appended to its name.

    CFR - a lot of the functionality can be modified (eg, keeping two languages) in Resources/trimmit (it’s a shell script).

    What do you mean by “large applications”? Those I’ve tested (including Pages, Keynote, Numbers, Safari and iTunes) all show very drastic reductions in size. Some apps (like most old Carbon apps) have an aversion to being modified (but you can still run Trimmit on them; just turn off “Keep architecture” and “Strip debug symbols”).

  27. 27

    It worked great until Snow Leopard; on 10.6 applications, I’m getting problems reported that I suspect are to do with permissions of some parts of the package.

    It’s not the end of the world because I am running 10.6 on a newish iMac with a big fat disc - and have most need for Trimmit on old iMacs that run 10.4 but have smaller discs.

RSS feed for comments on this post. TrackBack URI

Leave a comment

Comments may be edited for formatting.