photog.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
A place for your photos and banter. Photog first is our motto Please refer to the site rules before posting.

Administered by:

Server stats:

246
active users

#v8

1 post1 participant0 posts today
Frontend Dogma<p>How We Made “JSON.stringify” More Than Twice as Fast, by (not on Mastodon or Bluesky):</p><p><a href="https://v8.dev/blog/json-stringify" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">v8.dev/blog/json-stringify</span><span class="invisible"></span></a></p><p><a href="https://mas.to/tags/javascript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>javascript</span></a> <a href="https://mas.to/tags/json" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>json</span></a> <a href="https://mas.to/tags/strings" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>strings</span></a> <a href="https://mas.to/tags/v8" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>v8</span></a> <a href="https://mas.to/tags/javascriptengines" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>javascriptengines</span></a> <a href="https://mas.to/tags/optimization" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>optimization</span></a> <a href="https://mas.to/tags/performance" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>performance</span></a></p>
Frontend Dogma<p>Speculative Optimizations for WebAssembly Using Deopts and Inlining, by @liedtke.bsky.social:</p><p><a href="https://v8.dev/blog/wasm-speculative-optimizations" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">v8.dev/blog/wasm-speculative-o</span><span class="invisible">ptimizations</span></a></p><p><a href="https://mas.to/tags/v8" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>v8</span></a> <a href="https://mas.to/tags/javascriptengines" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>javascriptengines</span></a> <a href="https://mas.to/tags/javascript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>javascript</span></a> <a href="https://mas.to/tags/webassembly" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>webassembly</span></a> <a href="https://mas.to/tags/optimization" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>optimization</span></a> <a href="https://mas.to/tags/speculation" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>speculation</span></a></p>
Chromblitzen (Classic-Cars)<p>'76 Opel Diplomat 5.4 V8 😍 </p><p>The Opel Diplomat is a luxury car manufactured by Opel from 1964 to 1977. Opel's top-ranging models were traditionally the Admiral and Kapitän, introduced in 1938 and 1937 respectively...</p><p><a href="https://en.wikipedia.org/wiki/Opel_Diplomat" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">en.wikipedia.org/wiki/Opel_Dip</span><span class="invisible">lomat</span></a></p><p><a href="https://weird.autos/tags/Opel" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Opel</span></a> <a href="https://weird.autos/tags/Diplomat" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Diplomat</span></a> <a href="https://weird.autos/tags/V8" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>V8</span></a></p>
Automobiles<p>Innovative fast and breathtakingly beautiful. The 918 Spyder was the first hybrid supercar from Porsche producing a combined power output of 887 PS from a naturally aspirated V8 engine supplemented by three electric motors.</p><p><a href="https://blueben.club/tags/Porsche" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Porsche</span></a> <a href="https://blueben.club/tags/918Spyder" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>918Spyder</span></a> <a href="https://blueben.club/tags/Spyder" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Spyder</span></a> <a href="https://blueben.club/tags/V8" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>V8</span></a></p>
Frontend Dogma<p>Giving V8 a Heads-Up: Faster JavaScript Startup With Explicit Compile Hints, by (not found on Mastodon or Bluesky):</p><p><a href="https://v8.dev/blog/explicit-compile-hints" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">v8.dev/blog/explicit-compile-h</span><span class="invisible">ints</span></a></p><p><a href="https://mas.to/tags/v8" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>v8</span></a> <a href="https://mas.to/tags/javascriptengines" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>javascriptengines</span></a> <a href="https://mas.to/tags/javascript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>javascript</span></a> <a href="https://mas.to/tags/compiling" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>compiling</span></a></p>
Frontend Dogma<p>JavaScript Compile Hints: What They Are and When to Use Them, by @trevorlasn.bsky.social:</p><p><a href="https://www.trevorlasn.com/blog/javascript-compile-hints" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="ellipsis">trevorlasn.com/blog/javascript</span><span class="invisible">-compile-hints</span></a></p><p><a href="https://mas.to/tags/javascript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>javascript</span></a> <a href="https://mas.to/tags/compiling" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>compiling</span></a> <a href="https://mas.to/tags/v8" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>v8</span></a> <a href="https://mas.to/tags/javascriptengines" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>javascriptengines</span></a></p>
Chromblitzen (Classic-Cars)<p>Rover 3500s (V8) 🇬🇧 </p><p>The Rover P6 series (named as the 2000, 2200, or 3500, depending on engine displacement) is a saloon car produced by Rover and subsequently British Leyland from 1963 to 1977 in Solihull, West Midlands, England, UK....</p><p><a href="https://en.wikipedia.org/wiki/Rover_P6" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">en.wikipedia.org/wiki/Rover_P6</span><span class="invisible"></span></a></p><p><a href="https://weird.autos/tags/Rover" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Rover</span></a> <a href="https://weird.autos/tags/V8" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>V8</span></a> <a href="https://weird.autos/tags/oldtimer" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>oldtimer</span></a> <a href="https://weird.autos/tags/classiccars" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>classiccars</span></a> <a href="https://weird.autos/tags/vintagecars" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>vintagecars</span></a></p>

How does #V8's Orinoco garbage collector do compaction concurrently?

At first I thought that would require a read barrier, but then I realized that with a dynamic language like Javascript one can just replace each evacuated object with a proxy object that transparently forwards all accesses to the new object. The write barrier will catch any attempts to write new pointers to the block being evacuated. Such an approach couldn't work with full heap compaction, since objects need to be compacted into the space vacated by previously compacted objects, but it works perfectly fine with Orinoco's approach of evacuating blocks based on a fragmentation heuristic. It does mean the block can't be reused until the entire sweep phase finishes, though.

The same technique could theoretically be used to find and forward pointers from the old generation into the nursery, but that would mean the "from" space also couldn't be reused until the sweep phase completed. It's OK to delay reuse of evacuated blocks, because the system doesn't rely on those for new allocations, but it's not OK to delay swapping the spaces in the nursery. So Orinoco does need to use its write barrier to keep track of pointers from the old generation to the nursery.

The space overhead is far lower than for the train algorithm, but the tradeoff is the need to use free lists while moving objects out of the intermediate generation and evacuating old generation blocks, and a longer delay in freeing evacuated blocks. The train algorithm is always able to evacuate a block right away, and it never has fragmentation within blocks.

v8.dev/blog/trash-talk

v8.devTrash talk: the Orinoco garbage collector · V8Orinoco, V8’s garbage collector, evolved from a sequential stop-the-world implementation into a mostly parallel and concurrent collector with incremental fallback.