C Academy · บทเรียน

เทคนิคการปรับประสิทธิภาพโค้ด

เพิ่มประสิทธิภาพด้วยการปรับแต่งของคอมไพเลอร์และอัลกอริทึมที่มีประสิทธิภาพ

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

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

บทนำสู่เทคนิคการเพิ่มประสิทธิภาพโค้ด

เทคนิคการเพิ่มประสิทธิภาพโค้ด

การเพิ่มประสิทธิภาพโค้ดภาษา C ช่วยให้ทำงานได้เร็วขึ้นและลดการใช้หน่วยความจำ

ในบทเรียนนี้ คุณจะได้เรียนรู้:

  • การเพิ่มประสิทธิภาพโดยคอมไพเลอร์ทำงานอย่างไร
  • วิธีเขียนโค้ดที่มีประสิทธิภาพ
  • วิธีใช้เครื่องมือวิเคราะห์ประสิทธิภาพเพื่อระบุจุดคอขวดด้านประสิทธิภาพ
เทคนิคการปรับประสิทธิภาพโค้ด — ภาพประกอบ 1

ระดับการปรับแต่งคอมไพเลอร์

GCC มีระดับการปรับแต่งที่แตกต่างกันดังนี้:

  • -O1 - การปรับแต่งพื้นฐาน
  • -O2 - การปรับแต่งที่เข้มข้นยิ่งขึ้น
  • -O3 - การปรับแต่งสูงสุด (อาจทำให้ขนาดโค้ดเพิ่มขึ้น)
  • -Os - ปรับแต่งให้ใช้พื้นที่น้อยลงแทนที่จะเน้นความเร็ว

การปรับแต่งลูป

ลูปมีความสำคัญอย่างยิ่งต่อประสิทธิภาพ

เคล็ดลับ:

  • ลดจำนวนรอบของลูปให้น้อยที่สุด
  • ใช้ลูป for แทน while เมื่อทำได้
  • หลีกเลี่ยงการคำนวณที่ไม่จำเป็นภายในลูป

ตัวอย่าง: ลูปที่ปรับแต่งแล้วเทียบกับลูปที่ไม่ได้ปรับแต่ง

เวอร์ชันที่ปรับแต่งแล้ว:

#include <stdio.h>

int main() {
    int sum = 0;
    for (int i = 0; i < 1000000; i++) {
        sum += i;
    }
    printf("Sum: %d\n", sum);
    return 0;
}

การใช้หน่วยความจำอย่างมีประสิทธิภาพ

หากต้องการปรับแต่งการใช้หน่วยความจำ:

  • ใช้ malloc() และ free() อย่างระมัดระวังเพื่อป้องกันหน่วยความจำรั่ว
  • ใช้อาร์เรย์แทนลิงก์ลิสต์เมื่อทำได้
  • ลดการใช้ตัวแปรโกลบอลให้น้อยที่สุดเพื่อลดการใช้หน่วยความจำ

การใช้ฟังก์ชันอินไลน์

ฟังก์ชันอินไลน์ช่วยลดค่าใช้จ่ายในการเรียกฟังก์ชัน

ตัวอย่าง:

inline int add(int a, int b) { return a + b; }

ใช้ฟังก์ชันอินไลน์กับฟังก์ชันขนาดเล็กที่ถูกเรียกใช้บ่อย

การวิเคราะห์ประสิทธิภาพโค้ดด้วย gprof

การวิเคราะห์ประสิทธิภาพช่วยค้นหาคอขวดด้านประสิทธิภาพ

ขั้นตอน:

  • คอมไพล์โดยเปิดใช้การวิเคราะห์ประสิทธิภาพ: gcc -pg program.c -o program
  • เรียกใช้โปรแกรม: ./program
  • วิเคราะห์ประสิทธิภาพ: gprof program gmon.out

การทำเวกเตอร์และการปรับแต่ง SIMD

การใช้ SIMD (คำสั่งเดียว ข้อมูลหลายชุด) สามารถเพิ่มประสิทธิภาพได้

เปิดใช้การทำเวกเตอร์ด้วย:

-ftree-vectorize

ใช้ intrinsic เช่น AVX หรือ SSE กับแอปพลิเคชันที่ต้องการประสิทธิภาพสูง

สรุป

ในบทเรียนนี้ คุณได้เรียนรู้:

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

ถัดไป เราจะสำรวจการจัดการโครงการ C ขนาดใหญ่!

เทคนิคการปรับประสิทธิภาพโค้ด — ภาพประกอบ 10
เริ่มต้นได้ฟรี

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

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

คอร์ส
39
บทเรียน
144

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

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

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

คุณจะเรียนรู้อะไรในบทเรียน “เทคนิคการปรับประสิทธิภาพโค้ด”

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

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

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

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

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

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

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

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

  1. Makefile และกระบวนการคอมไพล์
  2. เทคนิคการปรับประสิทธิภาพโค้ด
  3. การจัดการโครงงานขนาดใหญ่
← กลับไปที่ C Academy