Hacker News

การใช้งาน Zig – io_uring และ Grand Central Dispatch std.Io สิ้นสุดลงแล้ว

การใช้งาน Zig – io_uring และ Grand Central Dispatch std.Io สิ้นสุดลงแล้ว การสำรวจนี้จะเจาะลึกเข้าไปใน io_uring โดยตรวจสอบ si — Mewayz Business OS

1 นาทีอ่าน

Mewayz Team

Editorial Team

Hacker News

ไลบรารีมาตรฐานของ Zig มาถึงหลักชัยสำคัญแล้ว: แบ็กเอนด์ Native io_uring และ Grand Central Dispatch (GCD) สำหรับ std.Io ได้เปิดตัวอย่างเป็นทางการแล้ว โดยนำ I/O แบบอะซิงโครนัสแบบเนทีฟแบบแพลตฟอร์มประสิทธิภาพสูงมาสู่หนึ่งในภาษาการเขียนโปรแกรมระบบสมัยใหม่ที่มีแนวโน้มมากที่สุด สำหรับนักพัฒนาที่สร้างโครงสร้างพื้นฐานที่ขับเคลื่อนแพลตฟอร์มธุรกิจยุคหน้า เช่น ระบบปฏิบัติการ 207 โมดูลที่อยู่เบื้องหลัง Mewayz การพัฒนานี้ส่งสัญญาณถึงยุคใหม่ของประสิทธิภาพแบ็กเอนด์และความสามารถในการปรับขนาด

io_uring คืออะไร และเหตุใดจึงมีความสำคัญสำหรับแอปพลิเคชันสมัยใหม่

io_uring เปิดตัวในเคอร์เนล Linux 5.1 เป็นอินเทอร์เฟซ I/O แบบอะซิงโครนัสประสิทธิภาพสูงที่เปลี่ยนแปลงวิธีการโต้ตอบของแอปพลิเคชันกับระบบปฏิบัติการโดยพื้นฐาน โมเดล I/O แบบดั้งเดิมบังคับให้โปรแกรมทำการเรียกแต่ละระบบสำหรับการดำเนินการอ่านหรือเขียนแต่ละครั้ง ซึ่งเป็นการไปกลับที่มีราคาแพงและประสิทธิภาพคอขวดในระดับต่างๆ io_uring แทนที่สิ่งนี้ด้วยบัฟเฟอร์ริงที่ใช้ร่วมกันระหว่างพื้นที่ผู้ใช้และเคอร์เนล ช่วยให้แอปพลิเคชันสามารถส่งและดำเนินการ I/O หลายพันรายการโดยมีค่าใช้จ่ายน้อยที่สุด

ผลกระทบในทางปฏิบัตินั้นน่าทึ่งมาก เว็บเซิร์ฟเวอร์ ฐานข้อมูล และแพลตฟอร์ม SaaS ที่จัดการการเชื่อมต่อพร้อมกันหลายพันรายการจะได้รับประโยชน์ทันทีจากการลดโอเวอร์เฮดของ CPU และเวลาแฝงที่ลดลง สำหรับแพลตฟอร์มที่ให้บริการผู้ใช้ที่ใช้งานอยู่ 138,000 รายใน 207 โมดูลที่แตกต่างกัน — แต่ละทริกเกอร์การอ่านไฟล์ การสืบค้นฐานข้อมูล และคำขอเครือข่าย — ความแตกต่างระหว่าง I/O เดิมและ io_uring สามารถแปลโดยตรงเป็นการปรับปรุงเวลาตอบสนองและการลดต้นทุนโครงสร้างพื้นฐาน

"io_uring ถือเป็นส่วนเสริมที่สำคัญที่สุดของ Linux I/O ในรอบทศวรรษ ด้วยการขจัดค่าใช้จ่ายในการสลับบริบทของ syscall แบบเดิม ทำให้โปรแกรมพื้นที่ผู้ใช้สามารถเข้าถึงปริมาณงานฮาร์ดแวร์ดิบได้ ซึ่งเป็นตัวเปลี่ยนเกมสำหรับแอปพลิเคชันใดๆ ที่ I/O เป็นจุดคอขวด"

Grand Central Dispatch เข้ากับเรื่องราวของ Zig std.Io ได้อย่างไร

แม้ว่า io_uring จะเป็นเฉพาะ Linux แต่ Grand Central Dispatch (GCD) ของ Apple ทำหน้าที่เป็นเฟรมเวิร์กการทำงานพร้อมกันและการจัดส่งงานชั้นนำบน macOS และ iOS มายาวนาน GCD สรุปการจัดการเธรดให้เป็นโมเดลแบบอิงคิว ช่วยให้ระบบปฏิบัติการกำหนดเวลาการทำงานบนคอร์ CPU ที่มีอยู่ได้อย่างเหมาะสมที่สุด โดยไม่ต้องให้นักพัฒนาจัดการพูลเธรดด้วยตนเอง

ด้วยการเชื่อมโยงแบ็กเอนด์ทั้งสองไว้ภายใต้นามธรรม std.Io แบบครบวงจร ทีม Zig ประสบความสำเร็จในบางสิ่งที่ยากอย่างแท้จริง: พื้นผิว API ของ async I/O เดียวที่คอมไพล์เป็น async primitive แบบเนทีฟที่เป็นสำนวนบนทั้งแพลตฟอร์ม Linux และ Apple ซึ่งหมายความว่าโปรแกรม Zig ที่เขียนโดยใช้ std.Io จะใช้ประโยชน์จาก io_uring บนเซิร์ฟเวอร์ Linux และ GCD บนเครื่องพัฒนา macOS โดยอัตโนมัติ โดยไม่มีการแตกแขนงเฉพาะแพลตฟอร์มในโค้ดแอปพลิเคชัน

💡 คุณรู้หรือไม่?

Mewayz ทดแทนเครื่องมือธุรกิจ 8+ รายการในแพลตฟอร์มเดียว

CRM · การออกใบแจ้งหนี้ · HR · โปรเจกต์ · การจอง · อีคอมเมิร์ซ · POS · การวิเคราะห์ แผนฟรีใช้ได้ตลอดไป

เริ่มฟรี →

อะไรคือบริบททางประวัติศาสตร์เบื้องหลังการเดินทาง Async I/O ของ Zig?

เส้นทางของ Zig สู่เรื่องราวแบบอะซิงก์ที่มีความเสถียรนั้นมีการทำซ้ำอย่างน่าทึ่ง ภาษาเวอร์ชันแรกๆ มีไวยากรณ์ async/await แบบทดลอง ซึ่งต่อมาถูกลบออกเมื่อทีมงานพิจารณาการออกแบบใหม่ แทนที่จะใช้โมเดลการทำงานพร้อมกันเฉพาะเจาะจงที่ฝังอยู่ในไวยากรณ์ภาษา ทีมงานหลักของ Zig เลือกใช้เลเยอร์นามธรรม I/O ที่ระดับไลบรารีมาตรฐาน ซึ่งยังคงสามารถประกอบได้ด้วยกลยุทธ์การดำเนินการที่แตกต่างกัน

ปรัชญานี้สอดคล้องกับหลักการออกแบบที่กว้างขึ้นของ Zig: ไม่มีกระแสการควบคุมที่ซ่อนอยู่ การจัดสรรที่ชัดเจน และกลไกที่ประกอบขึ้นอย่างคาดเดาได้ อินเทอร์เฟซ std.Io แสดงถึงจุดสุดยอดของการถกเถียงในชุมชน การสร้างต้นแบบ และข้อเสนอแนะในโลกแห่งความเป็นจริงเป็นเวลาหลายปี การลงจอด io_uring และแบ็กเอนด์ GCD ถือเป็นการเปลี่ยนจากการทดลองไปสู่ความพร้อมในการใช้งานจริงสำหรับระบบนิเวศอะซิงก์ของ Zig

ผลกระทบเชิงปฏิบัติสำหรับโครงสร้างพื้นฐาน SaaS และแพลตฟอร์มธุรกิจมีอะไรบ้าง

สำหรับทีมที่สร้างหรือประเมินโครงสร้างพื้นฐานแบ็กเอนด์สำหรับแพลตฟอร์ม SaaS ที่มีผู้เช่าหลายราย เรื่องราวของ Zig io_uring มีผลกระทบที่เป็นรูปธรรมหลายประการ:

ต้นทุนโครงสร้างพื้นฐานที่ลดลง: ปริมาณงาน I/O ที่สูงขึ้นต่อเซิร์ฟเวอร์ หมายความว่าต้องใช้เครื่องน้อยลงในการจัดการโหลดที่เทียบเท่า ซึ่งส่งผลกระทบโดยตรงต่อการใช้จ่ายบนคลาวด์

ล่าช้าที่คาดการณ์ได้

Build Your Business OS Today

From freelancers to agencies, Mewayz powers 138,000+ businesses with 207 integrated modules. Start free, upgrade when you grow.

Create Free Account →

ลองใช้ Mewayz ฟรี

แพลตฟอร์มแบบออล-อิน-วันสำหรับ CRM, การออกใบแจ้งหนี้, โครงการ, HR และอื่นๆ ไม่ต้องใช้บัตรเครดิต

เริ่มจัดการธุรกิจของคุณอย่างชาญฉลาดวันนี้

เข้าร่วมธุรกิจ 30,000+ ราย แผนฟรีตลอดไป · ไม่ต้องใช้บัตรเครดิต

พบว่าสิ่งนี้มีประโยชน์หรือไม่? แบ่งปันมัน

พร้อมนำไปปฏิบัติแล้วหรือยัง?

เข้าร่วมธุรกิจ 30,000+ รายที่ใช้ Mewayz แผนฟรีตลอดไป — ไม่ต้องใช้บัตรเครดิต

เริ่มต้นทดลองใช้ฟรี →

พร้อมที่จะลงมือทำหรือยัง?

เริ่มต้นทดลองใช้ Mewayz ฟรีวันนี้

แพลตฟอร์มธุรกิจแบบครบวงจร ไม่ต้องใช้บัตรเครดิต

เริ่มฟรี →

ทดลองใช้ฟรี 14 วัน · ไม่ต้องใช้บัตรเครดิต · ยกเลิกได้ทุกเมื่อ