Very very few OSX apps use an alternate allocator so this was probably not noticed. Having written a commercial memory allocator before (for MacOS prior to OSX) the one in OSX is actually quite good for most people. I don't know why Mozilla decided they needed jemalloc but maybe it tested better for their usage. Still you would think tracking what's written to such a common directory would have been seen by someone a…
jemalloc goes back to Firefox 3: http://blog.pavlov.net/2007/12/04/vlad-and-analysis-of-dtrac... http://blog.pavlov.net/2008/03/11/firefox-3-memory-usage/ It looks like that was driven by cross-platform concerns – I don't know how good the OS X allocator was in that era but it looks like most of the benchmarking focused on Windows and having a single malloc which performed well on all of their platforms. At that time…
Apple CoreGraphics framework logging input data to /tmp
21–26 of 26 posts
Re: Apple CoreGraphics framework logging input data to /tmp
#22Very very few OSX apps use an alternate allocator so this was probably not noticed. Having written a commercial memory allocator before (for MacOS prior to OSX) the one in OSX is actually quite good for most people. I don't know why Mozilla decided they needed jemalloc but maybe it tested better for their usage. Still you would think tracking what's written to such a common directory would have been seen by someone a…
jemalloc goes back to Firefox 3: http://blog.pavlov.net/2007/12/04/vlad-and-analysis-of-dtrac... http://blog.pavlov.net/2008/03/11/firefox-3-memory-usage/ It looks like that was driven by cross-platform concerns – I don't know how good the OS X allocator was in that era but it looks like most of the benchmarking focused on Windows and having a single malloc which performed well on all of their platforms. At that time…
Re: Apple CoreGraphics framework logging input data to /tmp
#23Earlier quoted context omitted.
jemalloc goes back to Firefox 3: http://blog.pavlov.net/2007/12/04/vlad-and-analysis-of-dtrac... http://blog.pavlov.net/2008/03/11/firefox-3-memory-usage/ It looks like that was driven by cross-platform concerns – I don't know how good the OS X allocator was in that era but it looks like most of the benchmarking focused on Windows and having a single malloc which performed well on all of their platforms. At that time…
The performance of the memory allocator is very much load-specific on darwin these days, and it would be easy to justify jemalloc. It's certainly not a poor choice of an allocator.
Re: Apple CoreGraphics framework logging input data to /tmp
#24lets hope that this helps encourage them improve their QA process to the point where they at least test real world applications a bit more heavily (or at all). :)
Re: Apple CoreGraphics framework logging input data to /tmp
#25Earlier quoted context omitted.
Sure, but the thing is: one developper (or a group of) said 'well let's enable this' and then nobody else reviewed that or thought 'hmm, surely it can't be good to just start logging pretty much everything'? Just wondering how that happens in large companies.
Nobody explicitly decided to enable the logging by default. It was caused by an uninitialized variable. Uninitialized variables result in undefined behavior, but can often go unnoticed in practice if the code around them results in the value in memory (or register) for that variable usually being a certain value. In this case, it happened to result in logging being disabled by default in most situations. But using je…
And in case anyone thinks that sheer developer machismo (or 'rigor' or whatever) can keep you out of harm's way here, then I suggest reading John Carmack's excellent writeups on the horrors found by static code analysis.[1][2] Even the best programmers out there will get caught by any number of language traps.
[1] Sadly/happily, still available via archive.org. CSS seems to be busted here, so scroll to the bottom for Carmack's article:
https://web.archive.org/web/20120104024203/http://altdevblogaday.com/2011/12/24/static-code-analysis/
[2] The above was discussed on HN, and that thread is pretty good as well: https://news.ycombinator.com/item?id=3388290Re: Apple CoreGraphics framework logging input data to /tmp
#26"/tmp/CGLog_Google Earth_7790"
full of:
7629.0413465 (Google Earth): CGSGetNextEventRecordInternal: 7629.0410916 loc (90.4, 934.0) conn 0x34b5f MouseMoved win 0x4a0 (click 1) 7629.0581342 (Google Earth): CGSGetNextEventRecordInternal: 7629.0578892 loc (84.4, 929.0) conn 0x34b5f MouseMoved win 0x4a0 (click 1) 7629.0750728 (Google Earth): CGSGetNextEventRecordInternal: 7629.0749128 loc (70.4, 918.0) conn 0x34b5f MouseExited win 0x4a0 tArea 0x19494 7629.0750766 (Google Earth): CGSGetNextEventRecordInternal: 7629.0749338 loc (70.4, 918.0) conn 0x34b5f MouseExited win 0x4a0 tArea 0x19493