iFreeMem v1.7.2 (Shareware £10)
The Memory Optimizer for Mac OS X (10.3.9+ Universal Binary)
Now with Mac OS X 10.3.9 support!
iFreeMem-128-on-whiteuniversal_smbadge

Why would you use iFreeMem?

If you are in the middle of using an application and the system becomes unresponsive for several seconds it could be the memory manager working and claiming back some of the Inactive memory for your application to use, if you wish to avoid this then iFreeMem may be for you.

Some scenarios where iFreeMem can be useful:

* You have been busy on your laptop preparing for a presentation meeting and you would rather not have the system become unresponsive in the middle of your demo, might be worth running iFreeMem shortly before the meeting.

* You are a musician or DJ, about to do a live performance or session using your Mac, you want to ensure everything will run smoothly and on cue.

* You have just closed down a whole load of applications as you are just about to start a new task with different applications, you might want to use iFreeMem here.

* You are about to run some memory hungry applications, such as graphic design software packages (Photoshop, Flash etc)

* Your CPU is not working hard at all, yet you are convinced your Mac used to run a little quicker when you first got it, could it be that the activity of your startup items cause Inactive memory to fill-up when you log-in, and your memory hungry applications are having to grab Inactive memory back fairly soon, making them appear to run much slower?

* You have low 'Free' memory and high 'Inactive' memory and you want to test if your applications performs better with more 'Free' memory.

* You just have a specific application you wish to run as fast as possible without memory manager interruptions.

* Ideally, you would like to buy more memory, but its too expensive. This app might be a solution for a performance degradation you could have been experiencing when Free memory gets very low?

[download]

before-and-after-optimizati


iFreeMem can improve your Mac's performance by maximizing Free memory and reducing Inactive memory!?

How can this bold statement be so?

Well, firstly lets look at Apple's official description of four types of random-access memory (RAM)

Wired memory
This information can't be cached to disk, so it must stay in RAM. The amount depends on what applications you are using.

Active memory
This information is currently in RAM and actively being used.

Inactive memory
This information is no longer being used and has been cached to disk, but it will remain in RAM until another application needs the space. Leaving this information in RAM is to your advantage if you (or a client of your computer) come back to it later.

Free memory
This memory is not being used.

What does all this mean?
This means you shouldn't worry when the Free memory is low. The only time Free memory should be high is right after the computer starts up. As you use applications or services, memory is used and transitions to Inactive. Applications that need more memory will take from the Inactive, but the Inactive is there just in case you need it again. If the combination of Free and Inactive is very low, then you might need more memory.

Source:
http://docs.info.apple.com/article.html?artnum=107918


However.....


There can be a performance hit when applications need to take from Inactive memory.

This can cause a very noticeable delay where the applications appear to have become temporarily unresponsive and this performance hit may not always be desirable for you, especially when you are in the middle of working with a memory hungry application or doing a presentation or even working with audio in a live recording session.

iFreeMem was created to avoid this particular performance hit happening mid-application by clearing out inactive memory in favor of maximum free memory.


Do you have any benchmarks to support this claim of this performance hit?

Yes, I have now included a benchmark tool with iFreeMem that measures the time it takes to:
a) allocate a block of memory
b) fill the memory with bytes
c) deallocate the memory

By attempting to allocate more memory than is marked as Free but less than Free+Inactive, we can see what (if any) performance hit can be measured.


The Test

Machine: MacBook Pro - Intel Core2Duo - 2.33GHz - 2GB RAM - 160GB Hard Drive

Machine is freshly booted and I await for all startup items to load and disk activity to stop, this is what the memory layout looks like:


Pasted Graphic 1

Ok, so now lets attempt to allocate slightly more memory than is marked 'Free' and see if there's any overhead to needing some of that Inactive memory back.

We will use the Memory Allocation Benchmark tool (included with iFreeMem) to allocate a single block of memory of size
1,150 MB.

Pasted Graphic

Pasted Graphic 2

Run the Test....

Result is:
31.484064 seconds

Next we hit the optimize button in iFreeMem and let it do its thing.

Memory is looking more like this now:

Pasted Graphic 3

Lets run the test again with the same parameters.

Result is now:
2.357306 seconds

Pasted Graphic 4

So on this simple test, dipping into that Inactive memory caused a 29.126758 second performance hit on a freshly booted machine.

Of course, the performance hit will vary on different hardware and the amount of work the memory manager needs to do to give your application the memory it is requesting, but you can do your own tests and decide if this tool is useful to you.

Conclusion

If your applications are regularly faced with low Free memory then your Applications could be running sluggishly, one option is to buy more RAM or reboot, or you could use iFreeMem now and then to maximize Free memory.

Other stuff worth a mention:

iFreeMem now works from the status bar at the top of the screen, so you can keep an eye on memory with the handy pie chart:

Pasted Graphic

Click on the pie chart to reveal the iFreeMem panel:
Pasted Graphic 1

Getting iFreeMem to auto-start
Pasted Graphic 2

One way to get iFreeMem to start automatically when you log-in is to right-click the dock icon (hold down CTRL and click mouse on a single button mouse) and select 'Open at Login'

AppleScript Support

A popular feature request has been the ability to trigger iFreeMem from a script or scheduled task, and now you can!

Here is an example of using a simple AppleScript command to trigger the optimization process:


tell
application "iFreeMem"
activate
Optimize
end tell

Its fairly easy to trigger AppleScript calls from Automator or Unix shell scripts so there is quite a number of options for setting up scheduled memory cleanup's.

A closer look at memory activity
I have included a handy little tool called 'Memory Logger' which allows you a more detailed visualization of your Macs memory usage over-time.

Pasted Graphic 1

Try it!

This is a fully working copy of iFreeMem that you can try for 15 days. If you purchase this product you will receive free lifetime updates for future versions of iFreeMem, nobody gets left behind!

Shareware only £10

[Download 15 day Trial] [Buy Now] [Questions or Feedback]