- เอนจินบล็อกโฆษณาที่พัฒนาด้วย Rust ถูกปรับโฉมครั้งใหญ่ ทำให้การใช้หน่วยความจำ ลดลง 75%
- โครงสร้างใหม่ใช้ ฟอร์แมต FlatBuffers เพื่อเก็บตัวกรองพื้นฐานราว 100,000 รายการ ในรูปแบบ ไบนารีแบบ zero-copy
- ส่งผลให้ ทุกแพลตฟอร์ม (เดสก์ท็อป·iOS·Android) ลดการใช้หน่วยความจำได้โดยพื้นฐานราว 45MB
- นอกจากนี้ยังมีการปรับแต่งประสิทธิภาพหลายด้าน เช่น การจัดการหน่วยความจำ·ความเร็วในการแมตช์·การแชร์ทรัพยากร·ประสิทธิภาพการจัดเก็บ
- ด้วย โครงสร้างเอนจินเนทีฟที่ไม่ถูกจำกัดโดย Manifest V3 จึงช่วยเสริมทั้งประสิทธิภาพของเบราว์เซอร์และการปกป้องความเป็นส่วนตัวไปพร้อมกัน
ภาพรวมการปรับปรุงเอนจินบล็อกโฆษณาของ Brave
- Brave ปรับโฉม เอนจิน adblock ที่พัฒนาด้วย Rust (adblock-rust) ใหม่ทั้งหมด จนลดการใช้หน่วยความจำได้ 75%
- การปรับปรุงนี้ช่วยประหยัดหน่วยความจำได้โดยพื้นฐานราว 45MB บน ทุกแพลตฟอร์ม (Android, iOS, เดสก์ท็อป)
- หากใช้รายการตัวกรองเพิ่มเติม ก็จะลดได้มากยิ่งขึ้น
- เอนจินที่ปรับปรุงแล้วถูกนำมาใช้ใน Brave v1.85 และมีแผนเพิ่มการปรับแต่งเพิ่มเติมใน v1.86
- จากภาพเปรียบเทียบหน้าจอพบว่าในเวอร์ชัน v1.79.118 → v1.85.118 การใช้หน่วยความจำลดลงจาก 162MB → 104MB
การเปลี่ยนไปใช้โครงสร้างบนพื้นฐาน FlatBuffers
- Brave รีแฟกเตอร์เอนจินให้ทำงานบนพื้นฐาน FlatBuffers ตามที่ประกาศไว้ในเดือนมิถุนายนและตุลาคม 2025
- FlatBuffers เป็น ฟอร์แมตการจัดเก็บที่กะทัดรัดและมีประสิทธิภาพ ซึ่งมาแทนโครงสร้างข้อมูล Rust แบบใช้ heap เดิม เช่น Vec, HashMap, struct
- มีการแปลง ตัวกรองบล็อกโฆษณาราว 100,000 รายการ เป็น ฟอร์แมตไบนารีแบบ zero-copy เพื่อเพิ่มประสิทธิภาพการใช้หน่วยความจำให้สูงสุด
รายการการปรับแต่งประสิทธิภาพโดยละเอียด
- ปรับปรุงการจัดการหน่วยความจำ: ใช้เวกเตอร์แบบจัดสรรบนสแตกเพื่อลดการจัดสรรหน่วยความจำ 19% และลดเวลาบิลด์ 15%
- เพิ่มความเร็วในการแมตช์: แยกโทเค็นของแพตเทิร์น regular expression ที่ใช้ร่วมกัน ทำให้ประสิทธิภาพการแมตช์ตัวกรอง ดีขึ้น 13%
- การแชร์ทรัพยากร: แชร์ทรัพยากรระหว่างอินสแตนซ์ของเอนจิน adblock หลายตัว ช่วยประหยัดได้ ราว 2MB บนเดสก์ท็อป
- ประสิทธิภาพการจัดเก็บ: ปรับแต่งหน่วยความจำสำหรับจัดเก็บทรัพยากรภายใน 30%
ประสิทธิภาพของเบราว์เซอร์และข้อได้เปรียบเชิงโครงสร้าง
- การลดหน่วยความจำได้มากกว่า 45MB ถือเป็น ข้อได้เปรียบสำคัญสำหรับผู้ใช้มือถือและฮาร์ดแวร์รุ่นเก่า
- Brave ปรับปรุง ประสิทธิภาพการท่องเว็บผ่านการบล็อกโฆษณาและตัวติดตาม อยู่แล้ว และการปรับโฉมครั้งนี้ยังทำให้ฟีเจอร์ปกป้องในตัว มีขนาดเบาลง
- เอนจินบล็อกโฆษณาของ Brave เป็น โครงสร้างเนทีฟที่ฝังอยู่ในเบราว์เซอร์ ดังนั้น
- ต่างจากตัวบล็อกแบบส่วนขยาย เพราะไม่ถูกจำกัดจาก API ของเบราว์เซอร์หรือผลกระทบจาก sandboxing
- ดังนั้นจึง ไม่ได้รับผลกระทบจากการเปลี่ยนแปลงของ Manifest V3
ความหมายเชิงเทคนิคและเชิงองค์กร
- การปรับปรุงประสิทธิภาพครั้งนี้เป็นผลจากงานวิศวกรรมที่ดำเนินต่อเนื่องหลายเดือนผ่าน ความร่วมมือระหว่างทีมประสิทธิภาพและทีมความเป็นส่วนตัว
- Brave ใช้สิ่งนี้เพื่อ ยกระดับประสิทธิภาพของเบราว์เซอร์อย่างมาก และ
มอบฟีเจอร์ปกป้องความเป็นส่วนตัวระดับสูงต่อไปให้กับ ผู้ใช้มากกว่า 100 ล้านคน
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
เอนจินบล็อกโฆษณา ของ Brave เป็นตัวอย่างที่ดีของโอเพนซอร์สที่เขียนด้วย Rust
ใช้ crate ของ Servo สำหรับ CSS parser และการประเมิน selector และตัวมันเองก็เผยแพร่บน crates.io ด้วย จึงนำไปใช้ต่อในโปรเจกต์อื่นได้ง่าย
อยากรู้ว่า Cargo มีกลไกจัดการเรื่องนี้ต่างออกไปไหม
โปรแกรมส่วนใหญ่ลิงก์แบบ static และแม้แต่หลายโปรเซสของแอปเดียวกันก็ยังแชร์โค้ดส่วนกลางในหน่วยความจำไม่ได้
ผมสรุปความเห็นเรื่องนี้ไว้ในบล็อกโพสต์
ต่อให้ Brave ประหยัดหน่วยความจำได้ 110% ผมก็ยัง ไม่เชื่อใจ อยู่ดี
ก่อนหน้านี้ก็เคยมีประวัติเกี่ยวกับการยุ่งกับข้อมูลผู้ใช้หลายครั้งแล้ว
น่าแปลกที่ยังไม่มี community fork ของ Brave ที่ตัด องค์ประกอบเชิงพาณิชย์ ออกไปทั้งหมด (rewards, AI, ตัวอัปเดตของตัวเอง ฯลฯ)
ถ้ามีเวอร์ชันแบบนั้นก็น่าจะรวมอยู่ในดิสโทร Linux สายเสรีได้ด้วย
Brave กำลังเตรียมโปรเจกต์ชื่อ Brave-origin เพื่อแก้ปัญหานี้ และมีการพูดถึงในทวีตของ Brendan Eich
ผมใช้เป็น เบราว์เซอร์หลักในชีวิตประจำวัน มาได้ครึ่งปีแล้ว และมันค่อนข้างเสถียร
แต่อยากให้การรวมกับ 1Password ดีขึ้นอีกหน่อย
การต้องปิดตัวเลือกกระเป๋าเงินหรือ AI ตอนติดตั้งยังถือว่ายอมรับได้
แต่ถ้ามี fork อย่าง Braveium ออกมา ผมพร้อมย้ายทันที
จาก 162 เหลือ 104 แล้วบอกว่าลดลง 75% นี่คำนวณแปลก ๆ
ตั้งแต่ติดตั้ง Brave มา ผมก็ไม่เห็น โฆษณาเลยแม้แต่นิดเดียว ทั้งบน iOS และ Mac
จากประสบการณ์ใช้งานของผม มันทำงานได้สมบูรณ์แบบ
เพิ่งรู้ตอนนี้เองว่า Brave รองรับ Vertical Tabs
ดูบล็อกทางการแล้วกำลังคิดว่าจะย้ายมาจาก Firefox ดีไหม
Sidebery(ลิงก์) กับ Tree Style Tabs(ลิงก์) ทำ vertical tabs ได้ดีมานานแล้ว
แถมตั้งแต่ Firefox v136 เป็นต้นมา ก็มีฟีเจอร์ vertical tabs แบบ built-in มาให้แล้ว
หวังว่าการเปลี่ยนแปลงครั้งนี้จะทำให้นักพัฒนาเริ่มตระหนักเรื่อง ประสิทธิภาพการใช้ทรัพยากร กันอีกครั้ง
คิดว่ายิ่งมีโค้ด Rust มากขึ้น AI ก็จะยิ่งเขียนได้ดีขึ้น
เวอร์ชันก่อนหน้าก็เขียนด้วย Rust อยู่แล้ว
สภาพแวดล้อมแบบนี้อาจบังคับให้ต้องกลับมาโฟกัสเรื่องประสิทธิภาพ
ผมชอบ Brave แต่บนมือถือไม่มี ส่วนเสริม เลยใช้ Firefox แทน
บน Android, Firefox คือเบราว์เซอร์หลักของผม
มันเร็วกว่าเยอะ ถึงจะไม่มีส่วนเสริม แต่สำหรับการใช้งานของผม แค่มี บังคับ dark mode กับบล็อกโฆษณาก็พอแล้ว
เป็นตัวแทนของ Kiwi browser ที่ดีมาก
แต่ละ OS สภาพแวดล้อมต่างกันมากจนการรักษา การตั้งค่าแบบรวมศูนย์ ให้เหมือนกันเป็นเรื่องยากจริง ๆ
ดูทวีตทางการ
ถ้าแท็บละ 45MiB ก็ถือว่าเยอะพอสมควร
สมัยนี้แต่ละแท็บใช้คนละโปรเซส เลยมองข้ามได้ยาก
ถ้าใช่ก็จะได้ประโยชน์จากการลดความซ้ำซ้อนของหน่วยความจำแบบ CoW
สงสัยว่า Brave ยังเป็นหน้าเว็บฝั่งหน้าสำหรับ การปั่นแล้วทุบราคาคริปโต อยู่หรือเปล่า