Browser hacking: Let's work on not sucking at Octane/zlib.js
ฝัง
- เผยแพร่เมื่อ 24 พ.ย. 2023
- Going faster, one step at a time :^)
PR: github.com/SerenityOS/serenit...
Follow me on X: x.com/awesomekling
Sponsor me on GitHub: github.com/sponsors/awesomekling
Support me on Patreon: / awesomekling
Donate via PayPal: paypal.me/awesomekling
Discord: / discord
Merch: store.serenityos.org/
SerenityOS is a new operating system that we're building from scratch. serenityos.org
Ladybird is a cross-platform web browser, also part of the SerenityOS project. :^) - วิทยาศาสตร์และเทคโนโลยี
UInt8ClampedArray is my fault - it followed from CanvasPixelArray which was the additional type added to support the pixel data APIs. Most usage of those APIs benefited from clamping, and it dates to an era where that much additional work in JS would be monstrously expensive. Then when we added typed arrays to JS (technically the DOM first, to support WebGL) that CPA was definition was merged but needed to retain the clamping semantics.
I always wondered why it only had uint8 variant!
My organs almost failed from a lack of AK videos
We got a video, so far best blackfriday deal this year
Awesome a new video! I've found myself really looking forward to your JS engine optimisation/JIT videos, they're perfect to just stick on for an hour and just absorb stuff about JITs and see the inner workings of a JS engine guided by someome who actually understands it
No yak background today? 🥺
"Thank you Copilot, but it's gonna be a bit more complex than that" 😆
Someone who uses Ladybird: Is the peformance improvement with JIT noticable during regular browsing already?
10:55 why "non-typed arrays" quotes and typed arrays no quotes?
Is it the Shrek toilet door on the back? :D
32:13 can c++ function be that helper?
6 sec reaction time
💛💚❤
Just a nitpick(not even JS or serenity-related), but why does your top look so ugly? :D
Open top, press the following keys in order(case-sensitive): l, t, m, Z, enter.
Should give you much nicer display with colors and graphs. You can also press 1 to toggle between one graph per CPU and one graph for all.
Uint8Array vs Uint8ClampedArray:
> // Wraps numbers outside range (max + 1 = min, min - 1 = max)
> a = new Uint8Array([-1, 256])
Uint8Array(2) [ 255, 0 ]
> // "Clamps "the values outside the range, so everything larger becomes the max, and anything smaller becomes the min
> b = new Uint8ClampedArray([-1, 256])
Uint8ClampedArray(2) [ 0, 255 ]