Mojo Academy · บทเรียน

เหตุใด fn และชนิดข้อมูลจึงเพิ่มความเร็ว

เชื่อมโยงความเคร่งครัดเข้ากับประสิทธิภาพ

บทเรียน 2 จาก 413 ขั้นตอน

เหตุใด fn และชนิดข้อมูลจึงเพิ่มความเร็ว เป็นบทเรียน Mojo Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Mojo Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Mojo Academy มีบทเรียนทั้งหมด 4 บทเรียน

ความเร็วเกิดจากความเข้าใจ

Mojo รวดเร็วเพราะรู้จักชนิดข้อมูลของคุณล่วงหน้า ด้วย fn และคำกำกับ คอมไพเลอร์จึงสร้างโค้ดเครื่องที่กระชับและมีประสิทธิภาพได้ ⚡

Python ตัดสินใจขณะรัน

Python ทั่วไปจะตรวจสอบชนิดของออบเจ็กต์ทุกครั้งที่ดำเนินการ งานเลือกวิธีทำงานอย่างต่อเนื่องนี้เป็นสาเหตุสำคัญที่ทำให้ Python ดูช้า

ชนิดข้อมูลแบบสถิตช่วยข้ามการตรวจสอบ

เมื่อชนิดข้อมูลถูกกำหนดตายตัวตั้งแต่เวลาคอมไพล์ Mojo จะตัดการตรวจสอบชนิดข้อมูลขณะรันออกการดำเนินการจึงกลายเป็นคำสั่งโดยตรงที่รวดเร็ว

fn add(a: Int, b: Int) -> Int:
    return a + b

fn ต้องการชนิดข้อมูล

fn บังคับให้คุณประกาศชนิดข้อมูล ทำให้คอมไพเลอร์มีทุกสิ่งที่ต้องใช้ในการปรับให้เหมาะสม ข้อกำหนดนี้คือแหล่งที่มาของความเร็ว

fn scale(x: Float64) -> Float64:
    return x * 2.0

ไม่มีการห่อหุ้มตัวเลข

Python ห่อหุ้มตัวเลขทุกตัวไว้ในอ็อบเจ็กต์บน heap ส่วน Int แบบมีชนิดของ Mojo จะอยู่โดยตรงในรูปไบต์ดิบ โดยไม่มีตัวห่อหุ้มที่ต้องแกะออก

var count: Int = 42

ค่าอยู่ในรีจิสเตอร์ได้พอดี

เนื่องจากตัวเลขที่มีชนิดเป็นเพียงไบต์ CPU จึงเก็บไว้ใน รีจิสเตอร์ ที่ทำงานได้รวดเร็ว แทนการไล่ตามพอยน์เตอร์ผ่านหน่วยความจำ

ทำให้การแทรกโค้ดฟังก์ชันเป็นไปได้

เมื่อทราบชนิดข้อมูลที่แน่นอน คอมไพเลอร์ก็สามารถ แทรกโค้ดฟังก์ชัน ขนาดเล็กลงไปได้ ทำให้ไม่ต้องเสียต้นทุนการเรียกใช้ในลูปร้อนที่ทำงานหลายล้านครั้ง

ลูปได้รับการปรับให้เฉพาะทาง

ลูปที่มีชนิดข้อมูลจะถูกคอมไพล์เป็นลำดับคำสั่ง CPU ที่ตายตัว คอมไพเลอร์ยังสามารถคลี่ลูปหรือทำเวกเตอร์ให้ได้ เพื่อเพิ่มอัตราการประมวลผล

fn total(n: Int) -> Int:
    var s = 0
    for i in range(n):
        s += i
    return s

ตรวจพบข้อผิดพลาดตั้งแต่เนิ่น ๆ

ชนิดข้อมูลจะตรวจจับความไม่ตรงกันตั้งแต่เวลาคอมไพล์ ดังนั้นโปรแกรมที่กำลังทำงานจึงไม่ต้องเสียแรงตรวจสอบเรื่องนี้เลย ความปลอดภัยและความเร็วเกิดขึ้นพร้อมกัน

def ยังคงยืดหยุ่น

def สามารถไม่ระบุชนิดข้อมูลและทำงานเหมือน Python ซึ่งสะดวกแต่ช้ากว่า คุณเลือกความเข้มงวดเฉพาะจุดที่ความเร็วมีความสำคัญจริง ๆ ได้

def greet(name):
    print("Hi", name)

ความเข้มงวดคือการแลกเปลี่ยน

คุณแลกความยืดหยุ่นเล็กน้อยกับความเร็วที่เพิ่มขึ้นอย่างมาก ในเส้นทางร้อน ข้อตกลงนี้คุ้มค่า โดย fn ร่วมกับชนิดข้อมูลคือวิธีที่ Mojo ใช้ลดช่องว่างกับ C

ตรวจสอบอย่างรวดเร็ว

เชื่อมโยงความเข้มงวดเข้ากับประสิทธิภาพ

สรุปทบทวน

โค้ด fn ที่ระบุชนิดข้อมูลช่วยให้ Mojo ข้ามการตรวจสอบแบบไดนามิก หลีกเลี่ยงการห่อค่า และสร้างโค้ดเครื่องเฉพาะทางได้ ความเข้มงวดในเส้นทางร้อนคือเคล็ดลับด้านความเร็ว 🎯

เริ่มต้นได้ฟรี

เรียนรู้ Mojo ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
30
บทเรียน
120

คำถามที่พบบ่อย

บทเรียน “เหตุใด fn และชนิดข้อมูลจึงเพิ่มความเร็ว” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “เหตุใด fn และชนิดข้อมูลจึงเพิ่มความเร็ว” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Mojo Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Mojo Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “เหตุใด fn และชนิดข้อมูลจึงเพิ่มความเร็ว”

เชื่อมโยงความเคร่งครัดเข้ากับประสิทธิภาพ คุณปฏิบัติ Mojo Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Mojo Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Mojo Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “เหตุใด fn และชนิดข้อมูลจึงเพิ่มความเร็ว” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Mojo Academy นี้ได้ไหม

ได้ บทเรียน Mojo Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การเขียนการทดสอบประสิทธิภาพที่เป็นธรรม
  2. เหตุใด fn และชนิดข้อมูลจึงเพิ่มความเร็ว
  3. การอ่านตัวเลขอย่างตรงไปตรงมา
  4. แนวปฏิบัติ Mojo แบบเป็นธรรมชาติ
← กลับไปที่ Mojo Academy