These numbers are preliminary. They come from one complete run on a single Mac, and the project’s own notes say to rerun them before treating them as final. A second run was stopped after its first two measurements, and both landed within 4% of the first run’s memory numbers.
Memory with 10, 20 and 40 tabs
Memory is the sum of phys_footprint over the browser’s whole process tree, 60 seconds after the tabs were opened. It is the figure Activity Monitor shows as Memory.
| Tabs | Yalqen, ad blocking on | Yalqen, ad blocking off | Chrome | Yalqen (on) as a share of Chrome |
|---|---|---|---|---|
| 10 | 920 MB | 1,057 MB | 1,583 MB | 58% |
| 20 | 1,548 MB | 1,796 MB | 2,819 MB | 55% |
| 40 | 2,802 MB | 3,237 MB | 5,312 MB | 53% |
- With the same pages, Yalqen used 53–58% of Chrome’s memory with ad blocking on, and 61–67% with it off.
- Ad blocking alone saved 13–14%, because blocked ads and trackers never load.
- At 40 tabs Yalqen ran 43–47 processes and Chrome 49, so the difference is not simply fewer processes.
What this does not show
- Speed. Page load speed, startup time, scrolling, rendering benchmarks, battery drain and long sessions were not measured. Nothing here shows Yalqen is faster.
- Idle CPU. Chrome used far more CPU than Yalqen while idle, but the Chrome profile had only been opened once before measuring, so background work a long-used profile has finished probably still ran. That figure is not published here until it is confirmed with a profile that has been in use for a while.
- Safari and Arc. Safari’s web content processes are shared with other WebKit apps, so their memory cannot be attributed to Safari reliably. Arc was not installed on the test machine.
- Few tabs. Yalqen’s interface is itself a web page, a fixed cost of roughly 120 MB that a native browser does not pay. It shows most with few tabs.
- Live pages. The pages are real sites repeated to reach the tab count. Their content, ads and experiments change between runs, and some redirect to a sign-in page.
- One Mac. A single machine, a single run per setup and one Chrome version.
Method
- Each browser runs as its own instance with a temporary profile, so your own browsers keep running untouched.
- Yalqen starts with a fresh profile and its ad blocking cache in place. Chrome starts from a copy of a profile that was opened once for 60 seconds, so its first-run downloads are not counted, and uses default settings.
- All tabs are passed on the command line at launch, so every browser loads the same URLs in the same order.
- After 60 seconds the browser process and its descendants are collected and their footprints summed. RSS is not used, because it counts shared pages once per process.
- Yalqen runs with its benchmark switch, which keeps hidden windows painting and turns off the update check.
Test setup
| Item | Value |
|---|---|
| Mac | Mac16,12 (MacBook Air), Apple M4, 16 GB |
| macOS | 27.0 |
| Yalqen | 0.2.11, packaged and run from /Applications |
| Chrome | 154.0.8037.58 |
| Date | 30 September 2026 |
Run it yourself
The script that produced these numbers is in the repository. With Yalqen installed in /Applications, run this from apps/browser:
node scripts/bench-browsers.mjsIt uses 10, 20 and 40 tabs and 3 runs by default, which takes about 90 minutes. Read the full benchmark notes and the script on GitHub, and if your numbers differ, open an issue.
What Electron costs
Yalqen is built on Electron, which is why the interface carries one more renderer than a native browser. It also means a larger download, a Chromium version that trails Chrome, no DRM streaming and partial extension support. Why Electron? lists each trade-off and the longer-term plan for a native shell. See also the roadmap and the Yalqen vs Chrome comparison.