<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: danlark1</title><link>https://news.ycombinator.com/user?id=danlark1</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 15 Jul 2026 22:36:59 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=danlark1" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by danlark1 in "Show HN: misa77 - a codec that decodes 2x faster than LZ4 (at better ratios)"]]></title><description><![CDATA[
<p>It's a somewhat known tradeoff, you can streamline and make the format friendlier to do memcpy which this library targets, the more memcpys you do, the faster it is overall to decode. On highly compressible data lz4, snappy become faster. Snappy on level 2 has faster decompression speed<p>But you have to pay the price that you need a slower encoding, because finding matches, putting restrictions on match lengths, putting things in different streams have costs you need to pay upfront.<p>Anyway good work, there is probably a need for that.<p>// Currently own Google's snappy and do compression at Google<p>P.S. if you want better snappy's results, compile with clang.<p>P.S.S you can optimize aarch64 speed by movemasks from shrn instruction. <a href="https://developer.arm.com/community/arm-community-blogs/b/servers-and-cloud-computing-blog/posts/porting-x86-vector-bitmask-optimizations-to-arm-neon" rel="nofollow">https://developer.arm.com/community/arm-community-blogs/b/se...</a></p>
]]></description><pubDate>Wed, 15 Jul 2026 18:52:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=48925428</link><dc:creator>danlark1</dc:creator><comments>https://news.ycombinator.com/item?id=48925428</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48925428</guid></item><item><title><![CDATA[New comment by danlark1 in "Performance Hints"]]></title><description><![CDATA[
<p>Surprisingly I didn't put 2023, it was merged with another submission possibly with the help of mods</p>
]]></description><pubDate>Sat, 20 Dec 2025 06:34:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=46334075</link><dc:creator>danlark1</dc:creator><comments>https://news.ycombinator.com/item?id=46334075</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46334075</guid></item><item><title><![CDATA[Performance Hints]]></title><description><![CDATA[
<p>Article URL: <a href="https://abseil.io/fast/hints.html">https://abseil.io/fast/hints.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46328274">https://news.ycombinator.com/item?id=46328274</a></p>
<p>Points: 143</p>
<p># Comments: 43</p>
]]></description><pubDate>Fri, 19 Dec 2025 17:14:42 +0000</pubDate><link>https://abseil.io/fast/hints.html</link><dc:creator>danlark1</dc:creator><comments>https://news.ycombinator.com/item?id=46328274</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46328274</guid></item><item><title><![CDATA[New comment by danlark1 in "An overengineered solution to `sort | uniq -c` with 25x throughput (hist)"]]></title><description><![CDATA[
<p>Yes, sorry, it should be "disclosure"</p>
]]></description><pubDate>Mon, 27 Oct 2025 14:34:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=45721454</link><dc:creator>danlark1</dc:creator><comments>https://news.ycombinator.com/item?id=45721454</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45721454</guid></item><item><title><![CDATA[New comment by danlark1 in "An overengineered solution to `sort | uniq -c` with 25x throughput (hist)"]]></title><description><![CDATA[
<p>Disclaimer: the author of the comment is the founder and CTO of ClickHouse</p>
]]></description><pubDate>Mon, 27 Oct 2025 11:18:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=45719661</link><dc:creator>danlark1</dc:creator><comments>https://news.ycombinator.com/item?id=45719661</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45719661</guid></item><item><title><![CDATA[New comment by danlark1 in "86 GB/s bitpacking with ARM SIMD (single thread)"]]></title><description><![CDATA[
<p>Great work!<p>Popular narrative that NEON does not have a move mask alternative. Some time ago I published an article to simulate popular bit packing use cases with NEON with 1-2 instructions. This does not include unpacking cases but can be great for real world applications like compare+find, compare+iterate, compare+test.<p><a href="https://community.arm.com/arm-community-blogs/b/servers-and-cloud-computing-blog/posts/porting-x86-vector-bitmask-optimizations-to-arm-neon" rel="nofollow">https://community.arm.com/arm-community-blogs/b/servers-and-...</a></p>
]]></description><pubDate>Sun, 05 Oct 2025 13:58:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=45481520</link><dc:creator>danlark1</dc:creator><comments>https://news.ycombinator.com/item?id=45481520</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45481520</guid></item><item><title><![CDATA[New comment by danlark1 in "ClickHouse gets lazier and faster: Introducing lazy materialization"]]></title><description><![CDATA[
<p>I am the author of the optimization of partial sorting and selection in Clickhouse. It uses Floyd-Rivest algorithm and we tried a lot of different things back at the time, read [1]<p>Overall clickhouse reads blocks of fixed sizes (64k) and finds top elements and then does top of the top until it converges.<p>[1] <a href="https://danlark.org/2020/11/11/miniselect-practical-and-generic-selection-algorithms/" rel="nofollow">https://danlark.org/2020/11/11/miniselect-practical-and-gene...</a></p>
]]></description><pubDate>Tue, 22 Apr 2025 19:10:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=43765276</link><dc:creator>danlark1</dc:creator><comments>https://news.ycombinator.com/item?id=43765276</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43765276</guid></item><item><title><![CDATA[New comment by danlark1 in "Optimizing 128-bit Division"]]></title><description><![CDATA[
<p>That's a difficult question. As I am working at Google I need to consult each open source I want to publish on my behalf. This does not involve contributing to the list of the approved projects and telling about these contributions.<p>If you want to workaround this for now, I suggest looking into libdivide (<a href="https://github.com/ridiculousfish/libdivide" rel="nofollow">https://github.com/ridiculousfish/libdivide</a>), it is published with the boost license and the library contains all the needed artifacts I described in the article (unfortunately, not combined).</p>
]]></description><pubDate>Sun, 19 Jul 2020 22:21:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=23892934</link><dc:creator>danlark1</dc:creator><comments>https://news.ycombinator.com/item?id=23892934</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23892934</guid></item><item><title><![CDATA[New comment by danlark1 in "Optimizing 128-bit Division"]]></title><description><![CDATA[
<p>For compiler-rt it is Apache 2.0 license<p><a href="https://github.com/llvm/llvm-project/blob/master/compiler-rt/LICENSE.TXT" rel="nofollow">https://github.com/llvm/llvm-project/blob/master/compiler-rt...</a></p>
]]></description><pubDate>Sun, 19 Jul 2020 20:40:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=23892269</link><dc:creator>danlark1</dc:creator><comments>https://news.ycombinator.com/item?id=23892269</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23892269</guid></item><item><title><![CDATA[New comment by danlark1 in "Optimizing 128-bit Division"]]></title><description><![CDATA[
<p>Hi, I thought that this is not the most interesting part of all the benchmarks, for example, all we need to test that with the quotient and the remainder: dividend = quotient * divisor + remainder, remainder < divisor and multiplication does not overflow which is free of division operations.<p>Yet, I added several tests like dividend < divisor, close to zero remainders, a lot of random stuff just to make sure each time I add a new approach, it is correct.</p>
]]></description><pubDate>Sun, 19 Jul 2020 11:54:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=23888702</link><dc:creator>danlark1</dc:creator><comments>https://news.ycombinator.com/item?id=23888702</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23888702</guid></item><item><title><![CDATA[New comment by danlark1 in "Optimizing 128-bit Division"]]></title><description><![CDATA[
<p>Hi, I believe they can be done for 32 bit platforms also with the multiword division in Knuth <a href="https://skanthak.homepage.t-online.de/division.html" rel="nofollow">https://skanthak.homepage.t-online.de/division.html</a> what I've chosen for fallback if not x86_64 platform.<p>I will try to implement the same optimizations in Rust in the upcoming weeks<p><i></i>UPD<i></i> And we opened an issue :)
<a href="https://github.com/rust-lang/compiler-builtins/issues/368" rel="nofollow">https://github.com/rust-lang/compiler-builtins/issues/368</a></p>
]]></description><pubDate>Sun, 19 Jul 2020 11:03:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=23888517</link><dc:creator>danlark1</dc:creator><comments>https://news.ycombinator.com/item?id=23888517</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23888517</guid></item><item><title><![CDATA[New comment by danlark1 in "Optimizing 128-bit Division"]]></title><description><![CDATA[
<p>Hi everyone, the author is here. Yes, I believe the title should be changed to `Optimizing 128-bit Division`<p>Yet, I was not expecting it to be here. Overall, I put some knowledge hidden in Hacker's Delight book, Knuth, GMP and GNU in the article with my knowledge of low level optimizations. In the end it turned out to be a good thing to write and to submit into LLVM</p>
]]></description><pubDate>Sun, 19 Jul 2020 10:16:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=23888333</link><dc:creator>danlark1</dc:creator><comments>https://news.ycombinator.com/item?id=23888333</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23888333</guid></item></channel></rss>