การปรับปรุงการใช้หน่วยความจำด้วย AI

AI-Assisted Coding ขั้นสูงสำหรับนักพัฒนา

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

จาก time complexity สู่ space complexity

 

ประสิทธิภาพไม่ใช่แค่ความเร็ว:

  • การใช้หน่วยความจำ
  • ความสามารถในการขยายขนาด
  • การเติบโตของข้อมูลเมื่อเวลาผ่านไป

จาก time complexity สู่ space complexity

AI-Assisted Coding ขั้นสูงสำหรับนักพัฒนา

การทดสอบในระดับขนาดจริง

การเปรียบเทียบขนาดฐานข้อมูล

 

  • ✔ ชุดข้อมูลขนาดเล็ก: เหมาะสำหรับการเรียนรู้
  • 📈 ปัญหาหน่วยความจำ: เกิดขึ้นเมื่อขยายขนาด
  • 💾 ฐานข้อมูลจริง: ใกล้เคียง production มากกว่า
AI-Assisted Coding ขั้นสูงสำหรับนักพัฒนา

คำเตือนการเพิ่มขึ้นของหน่วยความจำ

คำเตือนการเพิ่มขึ้นของหน่วยความจำ

AI-Assisted Coding ขั้นสูงสำหรับนักพัฒนา
AI-Assisted Coding ขั้นสูงสำหรับนักพัฒนา
AI-Assisted Coding ขั้นสูงสำหรับนักพัฒนา

AI ตีความ memory trace

 

การตีความ tracemalloc

 

ผลการวิเคราะห์ของ AI:

  • หน่วยความจำที่ถูกเก็บไว้มีขนาดใหญ่
  • โครงสร้างกลางซ้ำซ้อน
  • เกิดขึ้นระหว่างการดำเนินการรวมข้อมูล
AI-Assisted Coding ขั้นสูงสำหรับนักพัฒนา

ระบุสาเหตุหลักได้แล้ว

สาเหตุหลัก

AI-Assisted Coding ขั้นสูงสำหรับนักพัฒนา

AI เสนอแนวทางแก้ไข

 

🤖 Prompt สำหรับคอขวดหน่วยความจำ:

จากคอขวดหน่วยความจำที่ระบุได้ ให้แนะนำกลยุทธ์การ refactor เพื่อลดการใช้หน่วยความจำสูงสุด โดยพิจารณา streaming, การนำข้อมูลกลับมาใช้ใหม่ หรือการแสดงข้อมูลรูปแบบอื่น

 

กลยุทธ์ที่แนะนำ:

  • ลดการจัดสรรหน่วยความจำกลาง
  • นำ buffer กลับมาใช้ใหม่
  • นำการ cache มาใช้
AI-Assisted Coding ขั้นสูงสำหรับนักพัฒนา

การแลกเปลี่ยนของ caching

ตราชูแสดงการแลกเปลี่ยนของ cache

 

ควรระวังการใช้ cache:

  • ✔ สามารถปรับปรุงประสิทธิภาพได้
  • ❌ อาจเพิ่มการใช้หน่วยความจำได้เช่นกัน
AI-Assisted Coding ขั้นสูงสำหรับนักพัฒนา

การแลกเปลี่ยนของ caching

 

🤖 Prompt สำหรับเปรียบเทียบการแลกเปลี่ยน:

จาก workload และรูปแบบการเข้าถึงนี้ กลยุทธ์ caching จะช่วยลดการใช้หน่วยความจำโดยรวม หรืออาจทำให้แย่ลง? อธิบาย trade-off

คำแนะนำ cache จาก AI

AI-Assisted Coding ขั้นสูงสำหรับนักพัฒนา

การนำ AI ไปใช้งาน

การแก้ไขโค้ดด้วย AI

 

เสมอเช่นเคย:

  • ตรวจสอบอย่างละเอียด
  • ทดสอบก่อนยอมรับการเปลี่ยนแปลง
AI-Assisted Coding ขั้นสูงสำหรับนักพัฒนา

ผลการตรวจสอบ

 

การรัน Benchmarking:

ผลการทดสอบหน่วยความจำ

ผลลัพธ์:

  • หน่วยความจำสูงสุดลดลงอย่างมีนัยสำคัญ
  • เวลาทำงานคงที่
  • ✅ การปรับปรุงได้รับการยืนยัน
AI-Assisted Coding ขั้นสูงสำหรับนักพัฒนา

Prompt สำหรับ Benchmarking

🤖 Prompt สำหรับ Benchmarking:

คุณเป็นผู้เชี่ยวชาญด้านประสิทธิภาพ Python ต่อไปนี้คือ snapshot จาก tracemalloc สองชุด ก่อนและหลังการเปลี่ยนแปลงโค้ด

  • ก่อน: {before_snapshot}
  • หลัง: {after_snapshot}

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

 

Prompt benchmarking ที่มีประสิทธิภาพ:

  • ระบุข้อมูลก่อน/หลัง
  • ระบุเมตริกที่สำคัญ
  • ขอข้อสรุปที่อิงหลักฐาน

 

✔ ทำให้การปรับปรุงทำซ้ำได้และเป็นระบบ

AI-Assisted Coding ขั้นสูงสำหรับนักพัฒนา

มาฝึกกันเลย!

AI-Assisted Coding ขั้นสูงสำหรับนักพัฒนา

Preparing Video For Download...