• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Huge increase in memory usage on Leopard
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Huge increase in memory usage on Leopard


  • Subject: Huge increase in memory usage on Leopard
  • From: Nir Soffer <email@hidden>
  • Date: Mon, 19 Nov 2007 20:33:55 +0200

I found that my app is using 5-9 times more memory in Leopard compared with Tiger. The memory during typical usage on Tiger on G5 with 1.5G RAM is about 21MB (RSIZE), 14M (RPRVT). In Leopard on the same machine, the memory reach each 180MB (RSIZE). On another machine, Mac mini solo with 512MB RAM, the memory is about 100MB (RSIZE), 50MB (RPRVT) with Leopard.

I profiled the app with Instruments on the G5 and found that memory allocated by NSBitmapImageRep (using _NSImageMalloc) is not freed when the instance is released. This is not a leak - the system seems to keep a pool of 14 allocations (each around 7MB) and reuse this pool. I see this for each NSBitmapImageRep I create.

This happens when creating NSBitmapImageRep with initWithBitmapDataPlanes:NULL. I can work around this by allocating my own memory and creating the instance with my memory. After moving to manual memory allocation for the bitmaps, the memory size on the Mac mini went down to 36MB (RSIZE), but the same code on Tiger takes now only 14MB (RSIZE). The profile does not show any more "big" allocations I can fix, except the NSBitmapImageReps allocations.

One smaller but similar allocation happen each time a bitmap is processed with CoreImage. Each call to CIContext drawImage:atPoint:fromRect: allocate about 1MB which are not freed. There seems to be a similar pool of those 1MB chunks.

I found similar behavior with Apple Reducer example code <http:// developer.apple.com/samplecode/Reducer/>. It run with 50-60MB on Tiger, but reach about 150MB in Leopard after 20-30 operations on the same image. My app use similar code to process bitmaps.

The application is built on Tiger. Rebuilding on Leopard with Xcode 3 did not change anything.

Anyone has a clue what is going on?


Best Regards,

Nir Soffer

_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


  • Prev by Date: More CoreImage / CGImage questions
  • Next by Date: Re: Custom text via Core Text in a layer.
  • Previous by thread: Re: CTFrame and drawing text + layers.
  • Next by thread: Getting Search into the toolbar
  • Index(es):
    • Date
    • Thread