LZHAM v1.0 vs. LZMA decomp. perf on a large corpus of files
LZHAM isn't always faster than LZMA. LZHAM has a more expensive startup cost (which I've reduced a bunch since the alpha but it's still there), and it must update several large Huffman tables at...
View ArticleFirst LZHAM iOS stats with Unity asset bundle data
Got everything (both the compressor and decompressor) working. Was surprisingly easy. Had 1 misaligned load to deal with in the compressor's match finder because of a #ifdef problem.I combined together...
View ArticleLZHAM v1.0 vs. LZMA decompression perf. on iPhone 6+
I borrowed a coworker's iPhone 6+ and reran my bundle compression benchmarking app. According to wikipedia, it's a 1.4 GHz dual-core ARMv8-A.LZHAM is 2.3x-9x faster on this device, unless the bundle's...
View ArticleLZHAM v1.0 is being tested on iOS/OSX/Linux/Win
Currently testing it on a few machines using random codec settings with ~3.5 million files. We also just switched over our title's bundle decompression step from LZMA to LZHAM, so the decompressor will...
View ArticleWindows 10: An Arrow Aimed Straight at Steam
I find this very interesting news, and if you're not paying attention you should:Phoronix: Windows 10 To Be A Free Upgrade: What Linux Users Need To KnowPC World: Windows 10's new features: Cortana, a...
View ArticleLZHAM v1.0 released on github
Here: https://github.com/richgel999/lzham_codecI haven't merged over the XCode project yet, but it's fully compatible with OSX now. Also, LZHAM v1.0 is not backwards compatible with the previous alpha...
View ArticleLZHAM 1.0 integrated into 7zip command line and GUI
I integrated the LZHAM codec into the awesome open source 7zip archiver a few years ago for testing purposes, but I was hesitant to release it because I was still frequently changing LZHAM's bitstream....
View Article7zip 9.38 custom codec plugin for LZHAM 1.0
Igor Pavlov and the devs at encode.ru gave me some pointers on how to create a custom 7z codec DLL. Here's the first 32-bit build of the 7zip custom codec plugin DLL, compatible with 7zip 9.38 beta x86...
View ArticleUpcoming LZHAM decompressor optimizations
All of these changes are on github:Over the previous week I've increased the decompressor's average speed by roughly 1.5%-2%, by enabling Huffman decoding acceleration tables on the distance LSB symbol...
View ArticleMore LZHAM small block optimizations
Improved tiny block performance (i.e. calling lzham_decompress_memory() on a 88 byte string) by 3.3x by profiling the decompression of 400k blocks and focusing on the hotspots.The top bottleneck was...
View ArticleA Telemetry-style visualization of LZHAM v1.1's multithreaded compressor
I'm a big fan of Rad's Telemetry profiler, which I used at Valve for various Linux profiling tasks, but it's unfortunately out of reach to independent developers. So I'm just making my own mini version...
View ArticleGraphing Heap Memory Allocations
We've instrumented the version of Mono that Unity v4.6 uses so it can create a full heap transaction log, as well as full heap memory snapshots after all GC's. With this data we can build complete...
View ArticleLZHAM v1.0 is back on the Pareto frontier for decompression speed
LZHAM v1.0 is doing pretty good on this benchmark:http://mattmahoney.net/dc/text.htmllzham 1.0 -d29 -x 25,002,070 202,237,199 191,600 s 202,428,799 1096 6.6 7800 LZ77 70Thanks to Michael Crogan for...
View ArticleGarbage collected systems must have good tools
Hey game engine developers: Please don't release garbage collected systems without solid tools.We need the ability to take full heap snapshots, visualize allocation graphs, do shortest path analysis...
View ArticleIndustrial strength Mono memory analysis tools for large scale Unity games
We've been investing a bunch of time into creating a set of Mono (C#) memory leak and performance analysis tools, which we've been using to help us ship our first title (Dungeon Boss). Here's a...
View ArticleDungeon Boss's current memory footprint on iOS
A snapshot of our current memory footprint on iOS, using Unity's built-in memory profiling tool (thanks to Sean Cooper):Mono 59Unity 53GfxDriver 34.4Textures 29.4Animations 23.8Meshes...
View ArticleLZHAM decompressor optimization ideas
John Brooks (CEO of Blue Shift Inc.) and I were discussing LZHAM's current decompression performance vs. Google's Brotli codec and we came up with these ideas:- Basic block optimization:The current...
View ArticleThe great github migration
I've just migrated most of my projects from the sinking ship that is Google Code, but the wikis and readme.md files aren't setup...
View ArticleLessons learned while fixing memory leaks in our first Unity title
After several man months of tool making, instrumenting and compiling our own custom Mono DLL, and crawling through 5k-30k node heap allocation graphs in gephi, our first Unity title (Dungeon Boss for...
View ArticleiOS Memory Pressure Hell: Apple's 64-bit requirement+Unity's IL2CPP tech
Apple's 64-bit requirement combined with the newness of Unity's promising new IL2CPP technology (which you must use to meet Apple's 64-bit requirement) is costing us a serious amount of memory...
View Article