This is from a few weeks ago, but I just pulled it up again and realized it pleases me :
[Image]
This is an image of the little thread profile
viewer that I made which shows timelines of multiple threads. This particular portion is showing an LZ decompressor thread in the top
bar and the IO thread in the bottom bar. The LZ decompressor is double buffered, you can see it ping-ponging between working on
the two buffers. As it finished each buffer it fires an IO to get more compressed data. You can see those IO's get fired and run in
the bottom. This portion is CPU bound, you can see the IO thread is stalling out a lot (that's partly because there's no seeking
and the packed data is coming through the windows file cache).
Anyway, the thing that pleases me is that it's working perfectly. The CPU is 100% busy with decompression work and never wastes
any time waiting for IO. The IO thread wakes and sleeps to fire the IOs. Yum. In the future complication and mess I will never
again see such nice perfect threading behavior.
"12-02-08 - Oodle Happy"
No comments yet. -