ทีมนักวิจัยจาก University of Waterloo ในแคนาดา ค้นพบการปรับแต่งโค้ดเคอร์เนลลินุกซ์ 30 บรรทัด สามารถช่วยลดการใช้พลังงานในศูนย์ข้อมูลลงได้สูงสุด 30%

โค้ดส่วนนี้เกี่ยวกับวิธีการประมวลผลแพ็คเก็ตของระบบเครือข่าย ซึ่งทีมนักวิจัยพบว่าเดิมทีเคอร์เนลลินุกซ์ประมวลผลได้ไม่มีประสิทธิภาพมากนัก มีปัญหาเรื่อง interruption หรือการถูกขัดจังหวะการทำงานของซีพียู จึงปรับแก้โค้ดเพียงเล็กน้อย (ทีมวิจัยบอกว่าไม่ได้เพิ่มอะไรเลย แค่สลับตำแหน่ง) ช่วยให้ใช้แคชของซีพียูอย่างมีประสิทธิภาพมากขึ้น

งานวิจัยนี้ถูกตีพิมพ์ และนำเสนอในงาน ACM SIGMETRICS 2024 ส่วนแพตช์ตัวนี้ถูกรวมเข้ากับเคอร์เนลเวอร์ชัน 6.13 ที่เพิ่งออกไป

ที่มา - University of Waterloo, Data Center Dynamics

Martin Karsten ศาสตราจารย์ด้าน Systems and Networking ของ University of Waterloo หัวหน้าทีมวิจัยนี้

Hiring! บริษัทที่น่าสนใจ

CP AXTRA Public Company Limited - Lotus's company cover
CP AXTRA Public Company Limited - Lotus's
CP AXTRA Lotus's is revolutionizing the retail industry as a Retail Tech company.
CLEVERSE company cover
CLEVERSE
Cleverse is a Venture Builder. Our team builds several tech companies.
LINE Company Thailand company cover
LINE Company Thailand
LINE, the world's hottest mobile messaging platform, offers free text and voice messaging + Call

เอาจริงๆเรื่องพวกนี้มีอยู่เยอะมาก บริษัททั่วๆไปก็เป็น ใน Software ทำวนลูปซ้ำซอน หรือเขียน CODE แบบไม่ Optimize ส่วนใน Database ก็ไม่ได้ทำ Index บ้าง หรือมี Strategy ในการวางฐานข้อมูลไว้ไม่ดี ที่เคย Optimize code ก็เคยลดพวก Process หนักๆที่เป็นการ Process ข้อมูลทั้งระบบได้จาก 3 ชั่วโมง เหลือ 1 ชั่วโมง แก้ CODE 5 บรรทัดเหมือนกัน

ควรมีทีมไล่ Optimize process ต่างๆ น่าจะรีดประสิทธิภาพได้มากขึ้น

มันเป็น technical dept ที่มีหมดทุกที่แหละ ส่วนใหญ่ก็โดนจำกัดด้วยเวลา ไม่ก็งบประมาณ

พอผ่านไป ของมันทำงานได้อยู่แล้ว ก็ไม่มีใครอยากจะแก้ให้มันพัง

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

ไม่จำเป็นครับ เพราะมันเป็นหน้าที่ของคนเขียนครับ
จะให้ code มันดีขึ้น ก็ต้องหาทางปรับปรุงคนเขียนครับ

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

ถ้าเลือกที่จะเขียน code แล้ว

  • เขียนให้มีคุณภาพ
  • manage เวลา
  • หาความรู้เพิ่มเติม
    ก็ถือเป็นหน้าที่/จรรยาบรรณ ที่ต้องทำ เพราะเราเลือกเอง
    เพราะถ้าเราไม่ทำ ภาระงานเราจะตกไปอยู่กับผู้อื่น คนที่รับภาระเราไปก็ไม่ได้เงินเพิ่ม กลายเป็นเราเอาเปรียบผู้อื่นอีก

และมันก็จะกลายเป็นต้นตอของปัญหาการเมืองต่างๆ ในองค์กร

ระดับเขียน Kernel ใช้กันเกือบทั่วโลกแล้วคุณบอกว่าไม่ดีนี่ไม่น่าจะใช่นะครับ แบบนั้นโปรแกรมเมอร์ทั่วไปจะต้องอยู่ระบบไหนเนีย😆😆😆
จากประสบการณ์ทำงาน การ Optimize ตั่งแต่แรกไม่ wokr ผู้ใช้ด่าใช้เวลาในการพัฒนานาน และ คนให้ทำไม่เห็นค่าเพราะมันเร็วเกินไป แปลกพออีกทีมมาทำปัญหาเยอะเยะแต่พัฒนาออกได้เร็วแล้วค่อย Optimize ตามหลังด้วย MA กับ Work กว่ามาก
เห็นมา 3 โครงการล่าสุด ผมดูแล้วมันก็ work จริงๆ เพราะในเวลาจริงมีแต่การแข่งขัน ในส่วนที่ไม่สำคัญมากไม่มีใครเค้ามานั่งรอให้เรา Optimize ให้ครบทุกส่วนหรอก แล้วยิ่งใช้เวลาพัฒนานาน requirement ก็จะเปลี่ยนเรื่อยๆ ท้ายสุด คนจ้างที่หัวหมอก็จะบอกว่าทำแค่นี้เอง
คือถ้าเขียน code ให้เป็นมาตฐาน แยกส่วนให้ชัดเจน ถ้ามีการปรับหรือแก้ไขตามหลังมันทำได้ไม่ยาก แต่แค่ต้องใช้แรงทำส่วน Optimize เพิ่ม อย่างในข่าวก็เพียงแค่สลับตำแหน่ง code แต่คิดดูว่าจะออกมาสูตรนี้ได้ ใช้เวลาหลังจากออก code มาตั่งเท่าไหร่

darthvader Mon, 01/27/2025 - 11:34

ศูนย์ใหญ่ๆ Code 30 บรรทัดชุดนี้ น่าจะช่วยลดค่าใช้จ่าย ได้มากๆเลยนะครับ

สมมุติว่าโดยเฉลี่ยแล้วลดการใช้พลังงานลงมาได้ราวๆ 10% ก็ช่วยลดค่าใช้จ่ายได้มากแล้วนะ เพราะศูนย์ข้อมูลนี่ค่าไฟน่าจะมหาศาลกันทั้งนั้น

เคยเขียนโค้ดนึงทำงาน 11 วิ Optimize ใหม่จนเหลือ 4 วิ แต่พอเป็นงาน robotics ลด latency ให้ต่ำมากๆไม่ได้เนื่องด้วยกลไกของมันและ Back-EMF

mk- Tue, 01/28/2025 - 01:53

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

Apple
public://topics-images/apple_webp.png
SCB10X
public://topics-images/347823389_774095087711602_515970870797767330_n_webp.png
Windows 11
public://topics-images/hero-bloom-logo.jpg
Doom
public://topics-images/doom_logo.png
Huawei
public://topics-images/huawei_standard_logo.svg_.png
Threads
public://topics-images/threads-app-logo.svg_.png
Google Keep
public://topics-images/google_keep_2020_logo.svg_.png
Fortnite
public://topics-images/fortnitelogo.svg_.png
Instagram
public://topics-images/instagram_logo_2022.svg_.png
SCB
public://topics-images/9crhwyxv_400x400.jpg
Microsoft
public://topics-images/microsoft_logo.svg_.png
Basecamp
public://topics-images/bwpepdi0_400x400.jpg
Tinder
public://topics-images/hwizi8ny_400x400.jpg
FTC
public://topics-images/seal_of_the_united_states_federal_trade_commission.svg_.png
Pinterest
public://topics-images/pinterest.png
Palantir
public://topics-images/-nzsuc6w_400x400.png
Gemini
public://topics-images/google_gemini_logo.svg__0.png
AIS Business
public://topics-images/logo-business-2021-1.png
PostgreSQL
public://topics-images/images.png
JetBrains
public://topics-images/icx8y2ta_400x400.png
Krungthai
public://topics-images/aam1jxs6_400x400.jpg
Palworld
public://topics-images/mccyhcqf_400x400.jpg
Bill Gates
public://topics-images/bill_gates-september_2024.jpg
VMware
public://topics-images/1nj4i1gp_400x400.jpg
Take-Two Interactive
public://topics-images/0khle7nh_400x400.jpg
OpenAI
public://topics-images/ztsar0jw_400x400.jpg
Thailand
public://topics-images/flag_of_thailand.svg_.png
NVIDIA
public://topics-images/srvczsfq_400x400.jpg
ServiceNow
public://topics-images/ytnrfphe_400x400.png
PS5
public://topics-images/playstation_5_logo_and_wordmark.svg_.png
Klarna
public://topics-images/urcllpjp_400x400.png
Google Play
public://topics-images/play.png
Drupal
public://topics-images/drupal.png
Virtua Fighter
public://topics-images/virtua_figther_2024_logo.png