I'm attaching 6 patches (for easy review/scrutiny/integration). Those patches that I marked as tested was used by me for >1 week. * render_block_small.patch (significant impact, tested): This is similar patch to previous one, but it's minimal. It's crucial to avoid "blink" redraws. Still breaks smooth resizing, but frame-resize-pixelwise set to true makes it unnoticable. * cache_all_font_results.patch (significant impact, requires testing): This one prevents huge leak. I was trying to debug emacs-mac version (which has very deep traces for allocations, more 256 deep, which is limit for Instrumentations). That led to full malloc logging and discovery that macfont listings were allocating plenty of font-related data. Some of it it never cleared. I didn't test it and worry that caching "null" result might introduce some bugs, but it was hundreds of megabytes of allocations on -Q instance. * dont_flush_cg.patch (medium impact, tested): Based on documentation of CGContextFlush it should seldom be used, as it's much better to give OS possibility to decide when to flush. It prevents non-needed renders (and allocations etc.) * misc_releases.patch (small-mid impact, tested): This one is based on Rudolf Adamkovič patch with some minor extra releases and adjustments (like releasing an object before setting it to nil ;)) * ns_native_api_dict.patch (small-mid impact, needs testing): A small leak, but modified function had ~600_000 allocations after very short test runs. Seems like it wasted a lot of power, so I decided it should be checking dictionary hydrated at start and queried later instead of checking during runtime. I believe that high NSString allocation amount was indirectly caused by using autorelease pools. * nullify_frame.patch (small impact, tested): releases reference to a frame, as I've found traces in which resources were left behind, small leak. --- Fingers crossed that patches go through ;-)