0Pricing
Swift Academy · บทเรียน

ข้อควรรู้ด้านประสิทธิภาพ — การคัดลอกเมื่อเขียน

ทำความเข้าใจประสิทธิภาพของ Swift String: การคัดลอกเมื่อเขียน (COW) การใช้สตริงย่อยร่วมกัน และการจัดการหน่วยความจำอย่างมีประสิทธิภาพ

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

บทนำ

เป้าหมาย: เรียนรู้ว่าสตริงใช้การคัดลอกเมื่อเขียน (COW) เพื่อรักษาสมดุลระหว่างประสิทธิภาพและความปลอดภัยอย่างไร ส่วนย่อยของสตริงก็ใช้หน่วยความจำร่วมกันจนกว่าจะจำเป็นต้องคัดลอก

พื้นที่จัดเก็บร่วม

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

var a = "Hello World"
var b = a            // no real copy yet
print(a, b)

การเปลี่ยนแปลงทำให้เกิดการคัดลอก

จะเกิดการคัดลอกก็ต่อเมื่อค่าหนึ่งมีการเปลี่ยนแปลง นี่คือการคัดลอกเมื่อเขียน

b.append("!!!")   // triggers a real copy
print("a:", a)
print("b:", b)

ส่วนย่อยของสตริง

ส่วนย่อยของสตริงใช้หน่วยความจำร่วมกับสตริงต้นฉบับ การแปลงเป็นสตริงจะสร้างสำเนาทั้งหมด

let text = "Hello Swift"
let part = text.prefix(5)   // Substring
print(part)

ส่วนย่อยของสตริง → สตริง

สร้าง String จากส่วนย่อยของสตริงอย่างชัดเจน หากต้องการให้ส่วนนั้นเป็นเจ้าของพื้นที่จัดเก็บเอง

let s: String = String(part)
print("Converted:", s)

เคล็ดลับ

เคล็ดลับ:

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

คำถามเรื่อง COW

ตรวจสอบอย่างรวดเร็ว: การคัดลอกเมื่อเขียนทำหน้าที่อย่างไร

สรุปทบทวน

สรุปทบทวน: สตริงของ Swift ใช้การคัดลอกเมื่อเขียนเพื่อประสิทธิภาพ การกำหนดค่าและส่วนย่อยใช้หน่วยความจำร่วมกัน การคัดลอกจริงจะเกิดขึ้นเมื่อมีการเปลี่ยนแปลงหรือแปลงค่าอย่างชัดเจนเท่านั้น

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

บทเรียน “ข้อควรรู้ด้านประสิทธิภาพ — การคัดลอกเมื่อเขียน” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “ข้อควรรู้ด้านประสิทธิภาพ — การคัดลอกเมื่อเขียน”

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

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

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

บทเรียน “ข้อควรรู้ด้านประสิทธิภาพ — การคัดลอกเมื่อเขียน” ใช้เวลานานแค่ไหน

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

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

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

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

  1. สตริงและ Unicode — กลุ่มกราฟีม ดัชนี สตริงย่อย และ API
  2. API ที่ใช้บ่อย — prefix/suffix/contains, split/join
  3. ข้อควรรู้ด้านประสิทธิภาพ — การคัดลอกเมื่อเขียน
← กลับไปที่ Swift Academy