tag:blogger.com,1999:blog-834134852788085492.post5607006648873906616..comments2024-03-02T07:59:30.808+01:00Comments on RealTime Data Compression: Fighting code bloat (C template-style)Cyanhttp://www.blogger.com/profile/02905407922640810117noreply@blogger.comBlogger7125tag:blogger.com,1999:blog-834134852788085492.post-87862958207701323552013-06-10T20:39:42.598+02:002013-06-10T20:39:42.598+02:00Well, finally, I decided to use the "inline f...Well, finally, I decided to use the "inline function" methodology for the set of decompression functions. It proved successful. See http://fastcompression.blogspot.fr/2013/06/fighting-code-bloat-part-2-inline.htmlCyanhttps://www.blogger.com/profile/02905407922640810117noreply@blogger.comtag:blogger.com,1999:blog-834134852788085492.post-82228451666757989732013-05-10T14:06:49.270+02:002013-05-10T14:06:49.270+02:00The blog entry has been updated with a paragraph o...The blog entry has been updated with a paragraph on inline functions.Cyanhttps://www.blogger.com/profile/02905407922640810117noreply@blogger.comtag:blogger.com,1999:blog-834134852788085492.post-71521077128687739702013-04-30T17:53:03.665+02:002013-04-30T17:53:03.665+02:00Adrien's Java also has its own implementation....Adrien's Java also has its own implementation.<br /><br />For the decoder, your best guide is the format specification, which can be "mapped" fairly easily into any language. (See for example the 8088 assembler version of Jim).<br /><br />For the encoder, it's a bit more complex...Cyanhttps://www.blogger.com/profile/02905407922640810117noreply@blogger.comtag:blogger.com,1999:blog-834134852788085492.post-7360351167129374472013-04-30T15:36:21.072+02:002013-04-30T15:36:21.072+02:00I find the C code difficult to read. It is a littl...I find the C code difficult to read. It is a little better now that you have consolidated the versions, but it still requires expanding many things in one's head as we read the code.<br /><br />There is nothing wrong with this, given that performance is the goal. But I would have liked a pseudo-code version kept up to date somewhere, that is more readable. I have looked at other language implementations; most copy the C-code version, except the Go implementation.Frank Hilemanhttps://www.blogger.com/profile/00107460092365500454noreply@blogger.comtag:blogger.com,1999:blog-834134852788085492.post-10968766685999855072013-04-29T11:27:43.936+02:002013-04-29T11:27:43.936+02:00It's pretty interesting that a lot of compress...It's pretty interesting that a lot of compression code tends towards the same solutions. I remember seeing the lzop code for the first time and seeing lots of small files #including one (relatively speaking) monster file.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-834134852788085492.post-15474380727799691532013-04-28T20:33:59.763+02:002013-04-28T20:33:59.763+02:00Actually, that's a very good comment. I initia...Actually, that's a very good comment. I initially planned to have a few paragraphs on a comparison with inline functions, but finally went for the fastest (and laziest) alternative.<br />I believe inline functions have their advantages, but can't solve all situations. When I get time, I'll update the blog post with a more detailed explanation.Cyanhttps://www.blogger.com/profile/02905407922640810117noreply@blogger.comtag:blogger.com,1999:blog-834134852788085492.post-32892501721737335302013-04-26T19:43:53.388+02:002013-04-26T19:43:53.388+02:00Why not simply define more inline functions? I'...Why not simply define more inline functions? I've had great success using inline functions to implement conditional behaviors in different contexts, and literal arguments to inline functions have given me the exact equivalent to the original. I suppose that some of my success may have been due to only needing to support gcc, so the need to use the always_inline attribute didn't bother me.Bryce Schoberhttps://www.blogger.com/profile/14249574126240975785noreply@blogger.com