การเขียนโปรแกรมด้วยภาษา C : เร็วและประหยัดพลังงานที่สุด

ในฐานะที่เป็นอดีตวิศวกรซอฟต์แวร์ซึ่งส่วนใหญ่ทำงานเกี่ยวกับการเขียนโปรแกรม C และ Assembly ภาษาโปรแกรมระดับต่ำ, สองภาษานี้เป็นภาษาการเขียนโปรแกรมที่มีประสิทธิภาพที่สุด เนื่องจากอยู่ใกล้กับฮาร์ดแวร์มาก

แต่เพื่อขจัดข้อสงสัยใดๆ ทีมนักวิจัยของมหาวิทยาลัยในโปรตุเกสพยายามหาปริมาณประสิทธิภาพการใช้พลังงานของภาษาโปรแกรมต่างๆ (และของคอมไพเลอร์ (Compiler)/อินเตอร์พรีเตอร์ (Interpreter)) ในบทความเรื่อง Energy Efficiency across Programming Languages ที่ตีพิมพ์ในปี 2560 โดยดูจากรันไทม์ การใช้หน่วยความจำ และการใช้พลังงานของภาษาโปรแกรมที่รู้จักกันดี 27 ภาษา, ภาษา C เป็นผู้ชนะมีประสิทธิภาพมากที่สุด ในขณะที่ Python ซึ่งตอนนี้ฉันจะเรียกว่า ภาษาการเขียนโปรแกรมของผู้ก่อมลพิษ 🙂 อยู่ที่ด้านล่างสุดของมาตราส่วนพร้อมกับ Perl

การศึกษาดำเนินการผ่านระเบียบวิธีวิจัยและเบนช์มาร์ค, แต่มาเลือกผลลัพธ์ binary-trees เพื่อแสดงจุดเริ่มต้นด้วยโค้ดที่คอมไพล์แล้ว

binary-trees-compiled

ผลการศึกษาสรุปได้ว่า “ภาษาที่คอมไพล์มักจะเป็นจะต้องเร็วและประหยัดพลังงานที่สุด” ภาษา C และ C++ เป็นภาษาที่มีประสิทธิภาพและรวดเร็วที่สุด, Go เป็นภาษาที่แย่ที่สุดจากหมวดหมู่ภาษาที่คอมไพล์แล้ว และมันแย่ยิ่งกว่าภาษาที่ใช้ VM เช่น Java หรือ Erlang, อย่างน้อยกับตัวอย่าง binary-trees ที่ใช้

code-efficiency-VM

แต่ภาษาที่ไม่มีประสิทธิภาพมากที่สุดตกเป็นของภาษาที่ตีความเช่น Perl, Lua หรือ Python และนั่นก็เป็นเพียงส่วนต่าง

interpreted-languages-poor-efficiency

ควรสังเกตว่าการทดสอบทั้งหมดดำเนินการบนเครื่องที่ใช้ Intel Core i5-4460 Haswell CPU @ 3.20GHz พร้อม RAM ขนาด 16GB และใช้งานระบบปฏิบัติการ Ubuntu Server 16.10 พร้อม Linux 4.8.0-22 เมื่อพิจารณาว่าขณะนี้ MicroPyhon ทำงานบนไมโครคอนโทรลเลอร์หลายตัว ฉันสงสัยว่ามันอาจไม่เลวร้ายเท่ากับแพลตฟอร์มเหล่านั้นที่มี footprint เล็กกว่า และคงจะน่าสนใจที่จะค้นหาความแตกต่าง

time-memory-energy-programming-language

การศึกษายังจัดอันดับแต่ละภาษาด้วยการผสมผสานวัตถุประสงค์ต่างๆ ที่ผสมเวลา หน่วยความจำ และพารามิเตอร์พลังงานเข้าด้วยกัน และ ภาษา C จะอยู่ด้านบนสุดของเมตริกเหล่านั้นเสมอ เป็นที่ทราบกันมานานหลายปีแล้ว แต่ถ้าคุณต้องการเพิ่มประสิทธิภาพโปรแกรมของคุณสำหรับอายุการใช้งานแบตเตอรี่/พลังงานต่ำ กิจวัตรบางอย่างจะต้องได้รับการปรับให้เหมาะสมใน C, Assembler, คำแนะนำ SIMD หรือคำแนะนำแบบกำหนดเองสำหรับ accelerators

ที่มา : Hackaday

แปลจากบทความภาาาอังกฤษ : Save the planet! Program in C, avoid Python, Perl

FacebookTwitterLineEmailShare

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *

โฆษณา
โฆษณา