About | Buy | Forum | Industry Watch | Learning Curve | Products | Search | Twitter | Xnews
Home » Learning Curve » Hotspots

Leo Takes a Leak

Who's taking the Mickey?


Buy It

Try It

Apple's OS X 10.5 Leopard can leak memory really bad. Really bad. There seems to be some connection with how it handles 'sheets' but without the source (ha) a better estimate isn't going to happen.

Try this experiment.

  1. Boot into Leopard. Natch.
  2. Close all windows.
  3. Fire up Terminal.app. Anywhere.
  4. Type in 'leaks TextEdit'. You should get a burp that there's no such process. That's a good sign.
  5. Now launch TextEdit. BUT DO NOTHING WITH IT.
  6. Hit arrow up in Terminal and issue that command again.
    $ leaks TextEdit
    Process 2655: 13363 nodes malloced for 1081 KB
    Process 2655: 0 leaks for 0 total leaked bytes.
  7. Now hit ⌘S in TextEdit (to pretend to save a file). As soon as the sheet pops up you can dismiss it.
  8. Arrow up in Terminal and issue that command again.
  9. You should get something like the following.
$ leaks TextEdit
Process 2655: 16894 nodes malloced for 1579 KB
Process 2655: 35 leaks for 1280 total leaked bytes.
Leak: 0x17fb40  size=64
	0x80000000 0x00000002 0x0000004e 0x00000004 	........N.......
	0x000000b4 0x00000269 0x00000058 0x00000002 	....i...X.......
	0x7fffffff 0x00000000 0x00000000 0x931ea106 	................
	0x00000000 0x00000000 0x931e3bfa 0x931ea1f6 	.........;......
Leak: 0x17fb80  size=64
	0x80000000 0x00000002 0x0000004e 0x00000004 	........N.......
	0x000000b4 0x00000269 0x00000058 0x00000002 	....i...X.......
	0x7fffffff 0x00000000 0x00000000 0x01010100 	................
	0x00010101 0x00000000 0x00000000 0x00040000 	................
Leak: 0x194040  size=64
	0x80000000 0x00000002 0x0000004e 0x00000004 	........N.......
	0x000000b4 0x00000269 0x00000058 0x00000002 	....i...X.......
	0x7fffffff 0x00000000 0x00000000 0x01010100 	................
	0x00010101 0x00000000 0x00000000 0x00040000 	................
Leak: 0x1a2980  size=64
	0x80000000 0x00000002 0x0000004e 0x00000004 	........N.......
	0x000000b4 0x00000269 0x00000058 0x00000002 	....i...X.......
	0x7fffffff 0x00000000 0x00000000 0x01010100 	................
	0x00010101 0x00000000 0x00000000 0x00040000 	................
Leak: 0x1a5030  size=64
	0x80000000 0x00000002 0x0000004e 0x00000004 	........N.......
	0x000000b4 0x00000269 0x00000058 0x00000002 	....i...X.......
	0x7fffffff 0x00000000 0x00000000 0x01010100 	................
	0x00010101 0x00000000 0x00000000 0x00040000 	................
Leak: 0x1a66a0  size=64
	0x80000000 0x00000002 0x0000004e 0x00000004 	........N.......
	0x000000b4 0x00000269 0x00000058 0x00000002 	....i...X.......
	0x7fffffff 0x00000000 0x00000000 0x01010100 	................
	0x00010101 0x00000000 0x00000000 0x00040000 	................
Leak: 0x1aa570  size=64
	0x80000000 0x00000002 0x0000004e 0x00000004 	........N.......
	0x000000b4 0x00000269 0x00000058 0x00000002 	....i...X.......
	0x7fffffff 0x00000000 0x00000000 0x01010100 	................
	0x00010101 0x00000000 0x00000000 0x00040000 	................
Leak: 0x1bc1e0  size=64
	0x80000000 0x00000002 0x0000004e 0x00000004 	........N.......
	0x000000b4 0x00000269 0x00000058 0x00000002 	....i...X.......
	0x7fffffff 0x00000000 0x00000000 0x01010100 	................
	0x00010101 0x00000000 0x00000000 0x00040000 	................
Leak: 0x1cec50  size=64
	0x80000000 0x00000002 0x0000004e 0x00000004 	........N.......
	0x000000b4 0x00000269 0x00000058 0x00000002 	....i...X.......
	0x7fffffff 0x00000000 0x00000000 0x01010100 	................
	0x00010101 0x00000000 0x00000000 0x00040000 	................
Leak: 0x1d6930  size=64
	0x80000000 0x00000002 0x0000004e 0x00000004 	........N.......
	0x000000b4 0x00000269 0x00000058 0x00000002 	....i...X.......
	0x7fffffff 0x00000000 0x00000000 0x01010100 	................
	0x00010101 0x00000000 0x00000000 0x00040000 	................
Leak: 0x1e2250  size=64
	0x80000000 0x00000002 0x0000004e 0x00000004 	........N.......
	0x000000b4 0x00000269 0x00000058 0x00000002 	....i...X.......
	0x7fffffff 0x00000000 0x00000000 0x01010100 	................
	0x00010101 0x00000000 0x00000000 0x00040000 	................
Leak: 0x1ea3e0  size=64
	0x80000000 0x00000002 0x0000004e 0x00000004 	........N.......
	0x000000b4 0x00000269 0x00000058 0x00000002 	....i...X.......
	0x7fffffff 0x00000084 0xa1b1c1d3 0x00000000 	................
	0x00000000 0x00000000 0x00000000 0x00040000 	................
Leak: 0x1ea520  size=64
	0x80000000 0x00000002 0x0000004e 0x00000004 	........N.......
	0x000000b4 0x00000269 0x00000058 0x00000002 	....i...X.......
	0x7fffffff 0x6c707041 0x74616369 0x736e6f69 	....Applications
	0x6464412f 0x73736572 0x6f6f4220 0x70612e6b 	/Address Book.ap
Leak: 0x1eeed0  size=64
	0x80000000 0x00000002 0x0000004e 0x00000004 	........N.......
	0x000000b4 0x00000269 0x00000058 0x00000002 	....i...X.......
	0x7fffffff 0x00000000 0x00000000 0x01010100 	................
	0x00010101 0x00000000 0x00000000 0x00040000 	................
Leak: 0x1f0480  size=64
	0x80000000 0x00000002 0x0000004e 0x00000004 	........N.......
	0x000000b4 0x00000269 0x00000058 0x00000002 	....i...X.......
	0x7fffffff 0x00000000 0x00000000 0x01010100 	................
	0x00010101 0x00000000 0x00000000 0x00040000 	................
Leak: 0x10fa80  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x001a5030 0x00000000 	..t.....0P......
Leak: 0x17a9a0  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x001e92a0 0x00000000 	..t.............
Leak: 0x17b070  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x0017b030 0x00000000 	..t.....0.......
Leak: 0x1a8110  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x001a2980 0x00000000 	..t......)......
Leak: 0x1a8730  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x001eeed0 0x00000000 	..t.............
Leak: 0x1ac4e0  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x001d6930 0x00000000 	..t.....0i......
Leak: 0x1ad9f0  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x001bc1e0 0x00000000 	..t.............
Leak: 0x1af640  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x001a66a0 0x00000000 	..t......f......
Leak: 0x1afa90  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x001ec970 0x00000000 	..t.....p.......
Leak: 0x1b0970  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x001df650 0x00000000 	..t.....P.......
Leak: 0x1dbaa0  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x001cec50 0x00000000 	..t.....P.......
Leak: 0x1e4c20  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x001e2250 0x00000000 	..t.....P"......
Leak: 0x1e5f30  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x0017fb40 0x00000000 	..t.....@.......
Leak: 0x1e5f40  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x001f0480 0x00000000 	..t.............
Leak: 0x1e8450  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x00194040 0x00000000 	..t.....@@......
Leak: 0x1e8ba0  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x001e8b60 0x00000000 	..t.....`.......
Leak: 0x1ea760  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x001ea3e0 0x00000000 	..t.............
Leak: 0x1ea770  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x001ea520 0x00000000 	..t..... .......
Leak: 0x1eb140  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x0017fb80 0x00000000 	..t.............
Leak: 0x1f1c80  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x001aa570 0x00000000 	..t.....p.......

Try the above with any of your favourite applications from Apple Inc. Remember to do something that runs a sheet.

Here's what happens when you hit ⌘S in a Safari session (with only one small leak up to this point).

$ leaks Safari
Process 2651: 39229 nodes malloced for 4428 KB
Process 2651: 64 leaks for 2384 total leaked bytes.
Leak: 0xd044110  size=64
	0x80000000 0x00000002 0x0000004c 0x00000004 	........L.......
	0x00000087 0x0000029a 0x00000056 0x00000002 	........V.......
	0x7fffffff 0x00000000 0x00000000 0x01010100 	................
	0x00010101 0x00000000 0x00000000 0x00040000 	................
Leak: 0xd076680  size=64
	0x80000000 0x00000002 0x0000004c 0x00000004 	........L.......
	0x00000087 0x0000029a 0x00000056 0x00000002 	........V.......
	0x7fffffff 0x00000000 0x00000000 0x01010100 	................
	0x00010101 0x00000000 0x00000000 0x00040000 	................
Leak: 0xd076cd0  size=64
	0x80000000 0x00000002 0x0000004c 0x00000004 	........L.......
	0x00000087 0x0000029a 0x00000056 0x00000002 	........V.......
	0x7fffffff 0x00000000 0x00000000 0x01010100 	................
	0x00010101 0x00000000 0x00000000 0x00040000 	................
Leak: 0xd076d70  size=64
	0x80000000 0x00000002 0x0000004c 0x00000004 	........L.......
	0x00000087 0x0000029a 0x00000056 0x00000002 	........V.......
	0x7fffffff 0x00000000 0x00000000 0x01010100 	................
	0x00010101 0x00000000 0x00000000 0x00040000 	................
Leak: 0xd0773f0  size=64
	0x80000000 0x00000002 0x0000004c 0x00000004 	........L.......
	0x00000087 0x0000029a 0x00000056 0x00000002 	........V.......
	0x7fffffff 0x00000000 0x00000000 0x01010100 	................
	0x00010101 0x00000000 0x00000000 0x00040000 	................
Leak: 0xd0777a0  size=64
	0x80000000 0x00000002 0x0000004c 0x00000004 	........L.......
	0x00000087 0x0000029a 0x00000056 0x00000002 	........V.......
	0x7fffffff 0x00000000 0x00000000 0x01010100 	................
	0x00010101 0x00000000 0x00000000 0x00040000 	................
Leak: 0xd0783c0  size=64
	0x80000000 0x00000002 0x0000004c 0x00000004 	........L.......
	0x00000087 0x0000029a 0x00000056 0x00000002 	........V.......
	0x7fffffff 0x00000000 0x00000000 0x01010100 	................
	0x00010101 0x00000000 0x00000000 0x00040000 	................
Leak: 0xd078ca0  size=64
	0x80000000 0x00000002 0x0000004c 0x00000004 	........L.......
	0x00000087 0x0000029a 0x00000056 0x00000002 	........V.......
	0x7fffffff 0x00000000 0x00000000 0x01010100 	................
	0x00010101 0x00000000 0x00000000 0x00040000 	................
Leak: 0xd078f20  size=64
	0x80000000 0x00000002 0x0000004c 0x00000004 	........L.......
	0x00000087 0x0000029a 0x00000056 0x00000002 	........V.......
	0x7fffffff 0x00000000 0x00000000 0x01010100 	................
	0x00010101 0x00000000 0x00000000 0x00040000 	................
Leak: 0xd097630  size=64
	0x80000000 0x00000002 0x0000004c 0x00000004 	........L.......
	0x00000087 0x0000029a 0x00000056 0x00000002 	........V.......
	0x7fffffff 0x00000000 0x00000000 0x931ea106 	................
	0x00000000 0x00000000 0x931e3bfa 0x931ea1f6 	.........;......
Leak: 0xd0a7c20  size=64
	0x80000000 0x00000002 0x0000004c 0x00000004 	........L.......
	0x00000087 0x0000029a 0x00000056 0x00000002 	........V.......
	0x7fffffff 0x00000000 0x00000000 0x01010100 	................
	0x00010101 0x00000000 0x00000000 0x00040000 	................
Leak: 0xd0a7f00  size=64
	0x80000000 0x00000002 0x0000004c 0x00000004 	........L.......
	0x00000087 0x0000029a 0x00000056 0x00000002 	........V.......
	0x7fffffff 0x00000084 0xa1b1c1d3 0x00000000 	................
	0x00000000 0x00000000 0x00000000 0x00040000 	................
Leak: 0xd0b3010  size=64
	0x80000000 0x00000002 0x0000004c 0x00000004 	........L.......
	0x00000087 0x0000029a 0x00000056 0x00000002 	........V.......
	0x7fffffff 0x00000000 0x00000000 0x01010100 	................
	0x00010101 0x00000000 0x00000000 0x00040000 	................
Leak: 0xd0b8110  size=64
	0x80000000 0x00000002 0x0000004c 0x00000004 	........L.......
	0x00000087 0x0000029a 0x00000056 0x00000002 	........V.......
	0x7fffffff 0x00000000 0x00000000 0x931ea106 	................
	0x00000000 0x00000000 0x931e3bfa 0x931ea1f6 	.........;......
Leak: 0xd0b9c70  size=64
	0x80000000 0x00000002 0x0000004c 0x00000004 	........L.......
	0x00000087 0x0000029a 0x00000056 0x00000002 	........V.......
	0x7fffffff 0x00000000 0x00000000 0x00000000 	................
	0x00000000 0x0d0bf5a0 0x0d0bf6d0 0x0d0bf710 	................
Leak: 0xd0bb660  size=64
	0x80000000 0x00000002 0x0000004c 0x00000004 	........L.......
	0x00000087 0x0000029a 0x00000056 0x00000002 	........V.......
	0x7fffffff 0xc342f267 0x00650002 0x002e0073 	....g.B...e.s...
	0x00700061 0x512f0070 0x6b636975 0x00046954 	a.p.p./QuickTi..
Leak: 0xd0bed00  size=64
	0x80000000 0x00000002 0x0000004c 0x00000004 	........L.......
	0x00000087 0x0000029a 0x00000056 0x00000002 	........V.......
	0x7fffffff 0x7f7fffff 0x7f7fffff 0xfeffffff 	................
	0xfeffffff 0x7f7fffff 0x7f7fffff 0x00040000 	................
Leak: 0xd0bee30  size=64
	0x80000000 0x00000002 0x0000004c 0x00000004 	........L.......
	0x00000087 0x0000029a 0x00000056 0x00000002 	........V.......
	0x7fffffff 0x00000000 0x00000000 0x00000000 	................
	0x00000000 0x0d0af020 0x0d0beea0 0x0d0beee0 	.... ...........
Leak: 0xd0bee70  size=64
	0x80000000 0x00000002 0x0000004c 0x00000004 	........L.......
	0x00000087 0x0000029a 0x00000056 0x00000002 	........V.......
	0x7fffffff 0x00000000 0x00000000 0x00000000 	................
	0x00000000 0x0d0b1f70 0x0d0beee0 0x0d0bef20 	....p....... ...
Leak: 0xd0beeb0  size=64
	0x80000000 0x00000002 0x0000004c 0x00000004 	........L.......
	0x00000087 0x0000029a 0x00000056 0x00000002 	........V.......
	0x7fffffff 0x00000000 0x00000000 0x00000000 	................
	0x00000000 0x0d0bafe0 0x0d0bef20 0x0d0bef60 	........ ...`...
Leak: 0xd0bf510  size=64
	0x80000000 0x00000002 0x0000004c 0x00000004 	........L.......
	0x00000087 0x0000029a 0x00000056 0x00000002 	........V.......
	0x7fffffff 0x00000000 0x00000000 0x00000000 	................
	0x00000000 0x0d0aeed0 0x0d0bee30 0x0d0bee70 	........0...p...
Leak: 0xd0bf550  size=64
	0x80000000 0x00000002 0x0000004c 0x00000004 	........L.......
	0x00000087 0x0000029a 0x00000056 0x00000002 	........V.......
	0x7fffffff 0x00000000 0x00000000 0x01010100 	................
	0x00010101 0x00000000 0x00000000 0x00040000 	................
Leak: 0xd0bf6d0  size=64
	0x80000000 0x00000002 0x0000004c 0x00000004 	........L.......
	0x00000087 0x0000029a 0x00000056 0x00000002 	........V.......
	0x7fffffff 0x00000000 0x00000000 0x00000000 	................
	0x00000000 0x0d0939c0 0x0d0bf740 0x0d0bf780 	.....9..@.......
Leak: 0xd0bf7f0  size=64
	0x80000000 0x00000002 0x0000004c 0x00000004 	........L.......
	0x00000087 0x0000029a 0x00000056 0x00000002 	........V.......
	0x7fffffff 0x00000000 0x00000001 0x00000030 	............0...
	0x00000000 0x01010101 0x00000000 0x00040000 	................
Leak: 0xd0bf990  size=64
	0x80000000 0x00000002 0x0000004c 0x00000004 	........L.......
	0x00000087 0x0000029a 0x00000056 0x00000002 	........V.......
	0x7fffffff 0x0d0b9b50 0x002cba40 0x0d0b9b50 	....P...@.,.P...
	0x002cba40 0x0d0b9b50 0x0d0b9ad0 0x0d0b9b50 	@.,.P.......P...
Leak: 0xd0bf9d0  size=64
	0x80000000 0x00000002 0x0000004c 0x00000004 	........L.......
	0x00000087 0x0000029a 0x00000056 0x00000002 	........V.......
	0x7fffffff 0x00000000 0x00000000 0x00000000 	................
	0x00000000 0x0d0bfa80 0x0d0bfa40 0x0d0beef0 	........@.......
Leak: 0xd0bfa10  size=64
	0x80000000 0x00000002 0x0000004c 0x00000004 	........L.......
	0x00000087 0x0000029a 0x00000056 0x00000002 	........V.......
	0x7fffffff 0x00000000 0x00000000 0x00000000 	................
	0x00000000 0x0d0bfa90 0x0d0beef0 0x0d0bef30 	............0...
Leak: 0xd0bfaa0  size=64
	0x80000000 0x00000002 0x0000004c 0x00000004 	........L.......
	0x00000087 0x0000029a 0x00000056 0x00000002 	........V.......
	0x7fffffff 0x00000000 0x00000000 0x00000000 	................
	0x00000000 0x0d0b8150 0x0d0bf510 0x0d0bee30 	....P.......0...
Leak: 0x244950  size=32	instance of 'NSCFString', type ObjC, implemented in CoreFoundation
	0xa00bb4a0 0x0100078c 0x78697207 0x70657473 	.........rixstep
	0x00000000 0x00000000 0x00000000 0x00000000 	................
Leak: 0x29eeb0  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010480 0x0d0bb660 0x00000000 	..t.....`.......
Leak: 0xd02aa80  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010480 0x0d0783c0 0x00000000 	..t.............
Leak: 0xd034a90  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010480 0x0d078320 0x00000000 	..t..... .......
Leak: 0xd04b630  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010480 0x0d0794b0 0x00000000 	..t.............
Leak: 0xd055dc0  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010480 0x0d0777a0 0x00000000 	..t......w......
Leak: 0xd069e30  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010480 0x0d0788e0 0x00000000 	..t.............
Leak: 0xd071520  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010480 0x0d078000 0x00000000 	..t.............
Leak: 0xd078130  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010480 0x0d078750 0x00000000 	..t.....P.......
Leak: 0xd0939c0  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010480 0x0d0bf6d0 0x00000000 	..t.............
Leak: 0xd097200  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010480 0x0d0b3010 0x00000000 	..t......0......
Leak: 0xd09aed0  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010480 0x0d0bf7f0 0x00000000 	..t.............
Leak: 0xd09b9b0  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010480 0x0d078ca0 0x00000000 	..t.............
Leak: 0xd0a5c30  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010480 0x0d0773f0 0x00000000 	..t......s......
Leak: 0xd0a66a0  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010480 0x0d08abb0 0x00000000 	..t.............
Leak: 0xd0a7c60  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010480 0x0d0a7c20 0x00000000 	..t..... |......
Leak: 0xd0a7f40  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010480 0x0d0a7f00 0x00000000 	..t.............
Leak: 0xd0acb30  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010480 0x0d078f20 0x00000000 	..t..... .......
Leak: 0xd0aeed0  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010480 0x0d0bf510 0x00000000 	..t.............
Leak: 0xd0af020  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010480 0x0d0bee30 0x00000000 	..t.....0.......
Leak: 0xd0af350  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010480 0x0d097630 0x00000000 	..t.....0v......
Leak: 0xd0b1f70  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010480 0x0d0bee70 0x00000000 	..t.....p.......
Leak: 0xd0b2350  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010480 0x0d044110 0x00000000 	..t......A......
Leak: 0xd0b4ee0  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010480 0x0d079dd0 0x00000000 	..t.............
Leak: 0xd0b7c60  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010480 0x0d076cd0 0x00000000 	..t......l......
Leak: 0xd0b8150  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010480 0x0d0bfaa0 0x00000000 	..t.............
Leak: 0xd0b8380  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010480 0x0d076680 0x00000000 	..t......f......
Leak: 0xd0b9bb0  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010480 0x0d0b8110 0x00000000 	..t.............
Leak: 0xd0bafe0  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010480 0x0d0beeb0 0x00000000 	..t.............
Leak: 0xd0baff0  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010480 0x0d0bf990 0x00000000 	..t.............
Leak: 0xd0bec10  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010480 0x0d076d70 0x00000000 	..t.....pm......
Leak: 0xd0bed40  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010480 0x0d0bed00 0x00000000 	..t.............
Leak: 0xd0bf590  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010480 0x0d0bf550 0x00000000 	..t.....P.......
Leak: 0xd0bf5a0  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010480 0x0d0b9c70 0x00000000 	..t.....p.......
Leak: 0xd0bfa80  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010480 0x0d0bf9d0 0x00000000 	..t.............
Leak: 0xd0bfa90  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010480 0x0d0bfa10 0x00000000 	..t.............

On startup Mail has three leaks. Which by the above standards isn't much.

$ leaks Mail
Process 2680: 43209 nodes malloced for 5335 KB
Process 2680: 4 leaks for 224 total leaked bytes.
Leak: 0x7cf180  size=64	instance of '_NSRepresentationInfo', type ObjC, implemented in AppKit
	0xa08ad5c0 0x00000000 0x00000000 0x00000000 	................
	0x00000000 0x00000000 0x007cf6d0 0x00000000 	..........|.....
	0x00000000 0x00000000 0x00000000 0x00000000 	................
	0x00000000 0x00000000 0x00000000 0x00000000 	................
Leak: 0xbdb9c30  size=64	instance of 'NSMachPort', type ObjC, implemented in Foundation
	0xa074ab40 0x02002480 0x00000000 0x00005f1b 	@.t..$......._..
	0x00000000 0x00000000 0x00000000 0x93a98c9a 	................
	0x00000001 0x00000000 0x00000000 0x00000000 	................
	0x00000000 0x00000000 0x00000000 0x00000000 	................
Leak: 0xbdbdb40  size=64	instance of 'CFRunLoopSource', type CFType, implemented in CoreFoundation
	0xa074aec0 0x01002c80 0x00000000 0x00000000 	..t..,..........
	0x0000000a 0x00000000 0x00000001 0x0bdb9c30 	............0...
	0x9085b2f0 0x9085b5c0 0x908350f0 0x90834df0 	.........P...M..
	0x90834e10 0x90834f50 0x90835550 0x00000000 	.N..PO..PU......
Leak: 0x7ceac0  size=32	instance of 'NSImage', type ObjC, implemented in AppKit
	0xa08ad600 0x00000000 0x3f800000 0x3f800000 	...........?...?
	0x00018188 0x007cf180 0x007ceae0 0x00000000 	......|...|.....

Now start a new message, save it empty as a draft, and try to save to disk. ⌘S.

$ leaks Mail
Process 2680: 69915 nodes malloced for 7017 KB
Process 2680: 53 leaks for 2064 total leaked bytes.
Leak: 0x7cf180  size=64	instance of '_NSRepresentationInfo', type ObjC, implemented in AppKit
	0xa08ad5c0 0x00000000 0x00000000 0x00000000 	................
	0x00000000 0x00000000 0x007cf6d0 0x00000000 	..........|.....
	0x00000000 0x00000000 0x00000000 0x00000000 	................
	0x00000000 0x00000000 0x00000000 0x00000000 	................
Leak: 0xbdb9c30  size=64	instance of 'NSMachPort', type ObjC, implemented in Foundation
	0xa074ab40 0x02002480 0x00000000 0x00005f1b 	@.t..$......._..
	0x00000000 0x00000000 0x00000000 0x93a98c9a 	................
	0x00000001 0x00000000 0x00000000 0x00000000 	................
	0x00000000 0x00000000 0x00000000 0x00000000 	................
Leak: 0xbdbdb40  size=64	instance of 'CFRunLoopSource', type CFType, implemented in CoreFoundation
	0xa074aec0 0x01002c80 0x00000000 0x00000000 	..t..,..........
	0x0000000a 0x00000000 0x00000001 0x0bdb9c30 	............0...
	0x9085b2f0 0x9085b5c0 0x908350f0 0x90834df0 	.........P...M..
	0x90834e10 0x90834f50 0x90835550 0x00000000 	.N..PO..PU......
Leak: 0xd93bfd0  size=64
	0x80000000 0x00000002 0x00000068 0x00000004 	........h.......
	0x000000c7 0x0000027c 0x00000072 0x00000002 	....|...r.......
	0x7fffffff 0x00000000 0x00000000 0x01010100 	................
	0x00010101 0x00000000 0x00000000 0x00040000 	................
Leak: 0xd941b10  size=64
	0x80000000 0x00000002 0x00000068 0x00000004 	........h.......
	0x000000c7 0x0000027c 0x00000072 0x00000002 	....|...r.......
	0x7fffffff 0x00000000 0x00000000 0x01010100 	................
	0x00010101 0x00000000 0x00000000 0x00040000 	................
Leak: 0xd9b4270  size=64
	0x80000000 0x00000002 0x00000068 0x00000004 	........h.......
	0x000000c7 0x0000027c 0x00000072 0x00000002 	....|...r.......
	0x7fffffff 0x00000000 0x00000000 0x01010100 	................
	0x00010101 0x00000000 0x00000000 0x00040000 	................
Leak: 0xd9b5cb0  size=64
	0x80000000 0x00000002 0x00000068 0x00000004 	........h.......
	0x000000c7 0x0000027c 0x00000072 0x00000002 	....|...r.......
	0x7fffffff 0x00000000 0x00000000 0x01010100 	................
	0x00010101 0x00000000 0x00000000 0x00040000 	................
Leak: 0xe62c8b0  size=64
	0x80000000 0x00000002 0x00000068 0x00000004 	........h.......
	0x000000c7 0x0000027c 0x00000072 0x00000002 	....|...r.......
	0x7fffffff 0x00000000 0x00000000 0x931ea106 	................
	0x00000000 0x00000000 0x931e3bfa 0x931ea1f6 	.........;......
Leak: 0xe639070  size=64
	0x80000000 0x00000002 0x00000068 0x00000004 	........h.......
	0x000000c7 0x0000027c 0x00000072 0x00000002 	....|...r.......
	0x7fffffff 0x00000000 0x00000000 0x01010100 	................
	0x00010101 0x00000000 0x00000000 0x00040000 	................
Leak: 0xe63f620  size=64
	0x80000000 0x00000002 0x00000068 0x00000004 	........h.......
	0x000000c7 0x0000027c 0x00000072 0x00000002 	....|...r.......
	0x7fffffff 0x00000000 0x00000000 0x01010100 	................
	0x00010101 0x00000000 0x00000000 0x00040000 	................
Leak: 0xe640080  size=64
	0x80000000 0x00000002 0x00000068 0x00000004 	........h.......
	0x000000c7 0x0000027c 0x00000072 0x00000002 	....|...r.......
	0x7fffffff 0x00000000 0x00000000 0x01010100 	................
	0x00010101 0x00000000 0x00000000 0x00040000 	................
Leak: 0xe640bc0  size=64
	0x80000000 0x00000002 0x00000068 0x00000004 	........h.......
	0x000000c7 0x0000027c 0x00000072 0x00000002 	....|...r.......
	0x7fffffff 0x00000000 0x00000000 0x00000000 	................
	0x00000000 0x0e62c8f0 0x0e649b10 0x0e649b50 	......b...d.P.d.
Leak: 0xe640c50  size=64
	0x80000000 0x00000002 0x00000068 0x00000004 	........h.......
	0x000000c7 0x0000027c 0x00000072 0x00000002 	....|...r.......
	0x7fffffff 0x00000000 0x00000000 0x931ea106 	................
	0x00000000 0x00000000 0x931e3bfa 0x931ea1f6 	.........;......
Leak: 0xe643ec0  size=64
	0x80000000 0x00000002 0x00000068 0x00000004 	........h.......
	0x000000c7 0x0000027c 0x00000072 0x00000002 	....|...r.......
	0x7fffffff 0x00000000 0x00000000 0x01010100 	................
	0x00010101 0x00000000 0x00000000 0x00040000 	................
Leak: 0xe644550  size=64
	0x80000000 0x00000002 0x00000068 0x00000004 	........h.......
	0x000000c7 0x0000027c 0x00000072 0x00000002 	....|...r.......
	0x7fffffff 0x00000000 0x00000000 0x01010100 	................
	0x00010101 0x00000000 0x00000000 0x00040000 	................
Leak: 0xe644710  size=64
	0x80000000 0x00000002 0x00000068 0x00000004 	........h.......
	0x000000c7 0x0000027c 0x00000072 0x00000002 	....|...r.......
	0x7fffffff 0x00000000 0x00000000 0x00000000 	................
	0x00000000 0x0e646770 0x0e649b10 0x0e649b50 	....pgd...d.P.d.
Leak: 0xe6449b0  size=64
	0x80000000 0x00000002 0x00000068 0x00000004 	........h.......
	0x000000c7 0x0000027c 0x00000072 0x00000002 	....|...r.......
	0x7fffffff 0x00000000 0x00000000 0x00000000 	................
	0x00000000 0x0e644a20 0x0e649b10 0x0e649b50 	.... Jd...d.P.d.
Leak: 0xe649a70  size=64
	0x80000000 0x00000002 0x00000068 0x00000004 	........h.......
	0x000000c7 0x0000027c 0x00000072 0x00000002 	....|...r.......
	0x7fffffff 0x3e87ae14 0x00000000 0x00000000 	.......>........
	0xc0000003 0xc0000003 0x00000002 0x00030000 	................
Leak: 0xe649ba0  size=64
	0x80000000 0x00000002 0x00000068 0x00000004 	........h.......
	0x000000c7 0x0000027c 0x00000072 0x00000002 	....|...r.......
	0x7fffffff 0x00000000 0x00000000 0x01010100 	................
	0x00010101 0x00000000 0x00000000 0x00040000 	................
Leak: 0xe649e20  size=64
	0x80000000 0x00000002 0x00000068 0x00000004 	........h.......
	0x000000c7 0x0000027c 0x00000072 0x00000002 	....|...r.......
	0x7fffffff 0x00000000 0x00000000 0x01010100 	................
	0x00010101 0x00000000 0x00000000 0x00040000 	................
Leak: 0xe649eb0  size=64
	0x80000000 0x00000002 0x00000068 0x00000004 	........h.......
	0x000000c7 0x0000027c 0x00000072 0x00000002 	....|...r.......
	0x7fffffff 0x00000000 0x00000000 0x00000000 	................
	0x00000000 0x0e649bf0 0x0e64a090 0x0e64a0d0 	......d...d...d.
Leak: 0xe649ef0  size=64
	0x80000000 0x00000002 0x00000068 0x00000004 	........h.......
	0x000000c7 0x0000027c 0x00000072 0x00000002 	....|...r.......
	0x7fffffff 0x00000000 0x00000000 0x01010100 	................
	0x00010101 0x00000000 0x00000000 0x00040000 	................
Leak: 0xe64a090  size=64
	0x80000000 0x00000002 0x00000068 0x00000004 	........h.......
	0x000000c7 0x0000027c 0x00000072 0x00000002 	....|...r.......
	0x7fffffff 0x00000000 0x00000000 0x00000000 	................
	0x00000000 0x0e6449f0 0x0e64a100 0x0e64a140 	.....Id...d.@.d.
Leak: 0xe64a350  size=64
	0x80000000 0x00000002 0x00000068 0x00000004 	........h.......
	0x000000c7 0x0000027c 0x00000072 0x00000002 	....|...r.......
	0x7fffffff 0x00000000 0x00000000 0x00000000 	................
	0x00000000 0x0e649be0 0x0e649eb0 0x0e64a090 	......d...d...d.
Leak: 0xe64a4b0  size=64
	0x80000000 0x00000002 0x00000068 0x00000004 	........h.......
	0x000000c7 0x0000027c 0x00000072 0x00000002 	....|...r.......
	0x7fffffff 0x3e851eb8 0x00000000 0x00030000 	.......>........
	0xa063a340 0x00000000 0xa063a020 0x00040000 	@.c..... .c.....
Leak: 0x7ceac0  size=32	instance of 'NSImage', type ObjC, implemented in AppKit
	0xa08ad600 0x00000000 0x3f800000 0x3f800000 	...........?...?
	0x00018188 0x007cf180 0x007ceae0 0x00000000 	......|...|.....
Leak: 0xbd04430  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x0d93bfd0 0x00000000 	..t.............
Leak: 0xbdfa370  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x0d9707d0 0x00000000 	..t.............
Leak: 0xd92c1e0  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x0e639070 0x00000000 	..t.....p.c.....
Leak: 0xd97c630  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x0d9505e0 0x00000000 	..t.............
Leak: 0xd9c62d0  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x0d9b4270 0x00000000 	..t.....pB......
Leak: 0xd9d4db0  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x0e63a250 0x00000000 	..t.....P.c.....
Leak: 0xe6218e0  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x0d9a5120 0x00000000 	..t..... Q......
Leak: 0xe62ae60  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x0e62c8b0 0x00000000 	..t.......b.....
Leak: 0xe62c8f0  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x0e640bc0 0x00000000 	..t.......d.....
Leak: 0xe62ed30  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x0e64a4b0 0x00000000 	..t.......d.....
Leak: 0xe640070  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x0e644550 0x00000000 	..t.....PEd.....
Leak: 0xe640c90  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x0e649ba0 0x00000000 	..t.......d.....
Leak: 0xe643560  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x0d9a6850 0x00000000 	..t.....Ph......
Leak: 0xe644280  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x0d941b10 0x00000000 	..t.............
Leak: 0xe6449f0  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x0e64a090 0x00000000 	..t.......d.....
Leak: 0xe644a20  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x0e6449b0 0x00000000 	..t......Id.....
Leak: 0xe646770  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x0e644710 0x00000000 	..t......Gd.....
Leak: 0xe646c40  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x0d9b5cb0 0x00000000 	..t......\......
Leak: 0xe648740  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x0e63f620 0x00000000 	..t..... .c.....
Leak: 0xe649620  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x0e640080 0x00000000 	..t.......d.....
Leak: 0xe6497b0  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x0e643ec0 0x00000000 	..t......>d.....
Leak: 0xe649ab0  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x0e649a70 0x00000000 	..t.....p.d.....
Leak: 0xe649be0  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x0e64a350 0x00000000 	..t.....P.d.....
Leak: 0xe649bf0  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x0e649eb0 0x00000000 	..t.......d.....
Leak: 0xe649e60  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x0e649e20 0x00000000 	..t..... .d.....
Leak: 0xe649f30  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x0e649ef0 0x00000000 	..t.......d.....
Leak: 0xe64a480  size=16	instance of 'CGSRegion', type CFType, implemented in CoreGraphics
	0xa074aec0 0x01010280 0x0e640c50 0x00000000 	..t.....P.d.....

Oops. And this doesn't stabilise at that point either - it just accumulates. Gets consecutively worse over time. It takes maybe a quarter of an hour to get 250 K leak log bytes.

Dear Steve,

We'd really like to run your new Leopard. But the old cats got better bladder control.

Best regards.

About | Buy | Forum | Industry Watch | Learning Curve | Products | Search | Twitter | Xnews
Copyright © Rixstep. All rights reserved.