Tags:
Node Thumbnail

การเกิดขึ้นของภาษา Rust ที่เป็น memory-safety ทำให้เราค่อยๆ เห็นกระบวนการเปลี่ยนผ่านไลบรารีหรือเครื่องมือพื้นฐานที่เดิมเขียนด้วย C/C++ มาเป็น Rust ซึ่งเหนือกว่าด้วยเหตุผลด้านความปลอดภัย และบางครั้งอาจมีประสิทธิภาพเพิ่มขึ้นด้วย

Sergey Davidoff หรือ Shnatsel นักพัฒนาภาษา Rust ได้ทดสอบไลบรารีถอดรหัสไฟล์ภาพ PNG แบบดั้งเดิม (libpng, spng, stb_image) กับไลบรารียุคใหม่ที่เขียนด้วย Rust (png ในชุด image-rs, zune-png, wuffs) พบว่าไลบรารียุคใหม่มีประสิทธิภาพดีกว่ายุคก่อนถึง 1.8 เท่า (x86) และ 1.5 เท่า (Arm)

เหตุผลที่ไลบรารี Rust ให้ประสิทธิภาพดีกว่า มาจากการเป็นไลบรารียุคใหม่ๆ มีเทคนิคด้านอัลกอริทึมที่มีประสิทธิภาพมากกว่า ทำให้สามารถคลาย (deflate) และใส่ฟิลเตอร์ (filtering) ภาพจากการบีบอัดแบบ PNG ได้เร็วกว่า รายละเอียดอ่านได้จากที่มา

ไลบรารีภาพ Rust ทั้งสามตัวถูกใช้งานในระดับโปรดักชันมาพอสมควรแล้ว และน่าจะแพร่หลายขึ้นเรื่อยๆ ในอีกไม่ช้า

ที่มา - Reddit via Phoronix

No Description

Get latest news from Blognone

Comments

By: rattananen
AndroidWindows
on 10 December 2024 - 12:14 #1328659

ถ้า rewrite/refactor program แล้วยังได้ performance/feature เท่าเดิม ก็อย่าทำเลยดีกว่า
ไม่ว่าภาษาไหน

ถ้าภาษาที่สามารถ access memory ได้ตรงๆ แล้ว
program จะช้าหรือเร็วมันไม่ได้อยู่ที่ภาษาแล้วล่ะครับ
อยู่ที่ algorithm/ program design มากว่า
ส่วน standard library นั้นมีผลไม่มากเท่า

By: mk-
Symbian
on 10 December 2024 - 14:22 #1328672
mk-'s picture

ภาษามีผลแน่นอน ในภาษามีกลไกที่ทำให้ภาษาต่างๆ มีความต่างกัน ซึ่งกลไกเหล่านั้นจะละทิ้งไม่ได้ แม้จะสามารถ access memory ได้ตรงๆ เพราะคอมไพเลอร์เป็นคนทำให้

By: mr_tawan
ContributoriPhoneAndroidWindows
on 10 December 2024 - 20:28 #1328689
mr_tawan's picture

ใช้ Zlib เหมือน libpng หรือว่าเขียนใหม่ล่ะครับนั่น


  • 9tawan.net บล็อกส่วนตัวฮับ
By: rattananen
AndroidWindows
on 11 December 2024 - 10:01 #1328720 Reply to:1328689

ถ้าไม่เอา full feature เขียนเอง (ลอก algorithm คนอื่นมาแก้) ก็ไม่ได้ยากเย็นครับ
deflate

/me แอบ show ของตัวเอง

By: arayaphong on 10 December 2024 - 21:22 #1328693

แล้วเทคนิคด้านอัลกอริทึมใช้กับภาษาเก่าไม่ได้เหรอ?

ผมว่า คห.1 เขาพูดถูกอยู่นะ ถ้าลงไปต่ำกว่า C ก็เป็นระดับ CPU instructions แล้วล่ะ (ภาษา assembly) ก็ optimize ผ่าน driver หรือ stdlib อะไรก็ว่าไป

แน่นอน compiler ไม่ลงไปลึกกว่านี้แล้ว

By: hisoft
ContributorWindows PhoneWindows
on 11 December 2024 - 05:40 #1328702 Reply to:1328693
hisoft's picture

ได้ฮะ แต่น่าจะมาจากหลายเหตุ

  • lib เดิมไม่มีคนไปแก้เยอะขนาดนั้น (แต่ perf ดีขึ้นก็น่าจะลองอยู่?)
  • lib ใหม่ก็ไม่แพร่หลายเท่า
  • เริ่มใหม่หมดเลยก็มีแนวโน้มจะถูกเขียนด้วยภาษาใหม่กว่ามากกว่า
By: mr_tawan
ContributoriPhoneAndroidWindows
on 11 December 2024 - 09:13 #1328718 Reply to:1328702
mr_tawan's picture

เข้าใจว่าจริง ๆ libpng ไม่ได้ใช้ decompression ของตัวเอง แต่ไปใช้ zlib เป็นตัวบีบ-คลาย

ให้ผมเดา rust น่าจะใช้ async io หรือเปล่านะครับ? คิดว่า libpng หรือ stb มันไม่มีส่วน async นะ (กดไกภาษามันไม่มีถ้าจะเขียนก็วุ่นวาย) คือไม่แน่ว่าถ้า benchmark กันบน memory อาจจะไม่แพ้เยอะมากก็ได้

edit: ไปดูต้นทางมาแล้ว เค้าเร็วขึ้นเพราะใช้ SIMD ครับ ไม่เกี่ยวกับภาษา


  • 9tawan.net บล็อกส่วนตัวฮับ
By: btoy
ContributorAndroidWindows
on 11 December 2024 - 08:45 #1328714
btoy's picture

ตอนนี้มีอุตสาหกรรมไหนที่ใช้ Rust แบบเยอะๆแล้วรึยังครับ

เหมือน Rust ค่อยๆเติบโตจาก library, dev tools หรือ core ของหลายๆผลิตภัณฑ์ ซึ่งอยู่ในองค์กรใหญ่ๆ ที่มีคนเก่งเยอะ ซึ่งคนกลุ่มนี้แทบจะใช้ภาษาอะไรก็ได้ในการพัฒนา ทำให้อัตราการจ้างงาน Rust programmer เพิ่มเติมเติบโตค่อนข้างช้า


..: เรื่อยไป

By: mr_tawan
ContributoriPhoneAndroidWindows
on 11 December 2024 - 09:09 #1328717 Reply to:1328714
mr_tawan's picture

ก็มีการผลักดันกันพอสมควรแต่ด้วยความ SM ของภาษา ... อ่ะแฮ่ม ด้วยความที่มันออกแบบมาเป็นภาษาทดแทนภาษา C ผมว่ามันต้องใช้เวลาพอสมควร + หลาย ๆ ที่มันไม่ได้มีโค๊ดระดับต่ำขนาดนั้น


  • 9tawan.net บล็อกส่วนตัวฮับ
By: mr_tawan
ContributoriPhoneAndroidWindows
on 11 December 2024 - 09:35 #1328719
mr_tawan's picture

ไปดู Phoronix มาละ คนด่ากระจ่ายเช่นเดิม (ฮา)

เท่าที่อ่านผ่าน ๆ เหมือนกับว่า lib ตัวที่ว่าเร็วกว่าเค้าใช้ SIMD ซึ่ง lib ฝั่ง C ไม่ได้ใช้ (อย่าง stb เค้าเน้น portability เลยไม่ได้ใช้)

แต่กระแส Anti-Woke ... เอ๊ย กระแส Anti-Rust แรงมากในนั้น อาจจะด้วยความที่มิชชันนารีปูแดงค่อนข้าง aggressive ก็เลยโดนสวนแบบ aggressive กลับเยอะอยู่ครับ เข้าไปอ่านต้องปิดตาข้างนึงด้วยนะ


  • 9tawan.net บล็อกส่วนตัวฮับ