โปรเจ็กต์นี้พยายามเปรียบเทียบความเร็วของภาษาการเขียนโปรแกรมต่างๆ ในโครงการนี้ เราไม่สนใจการคำนวณพายอย่างแม่นยำ เราแค่ต้องการดูว่าภาษาโปรแกรมทำงานเร็วแค่ไหน
โดยจะใช้สูตรไลบ์นิซสำหรับ π เพื่อทำการเปรียบเทียบ
นี่คือวิดีโอที่อธิบายวิธีการทำงาน: การคำนวณ π ด้วยมือ
คุณสามารถดูผลลัพธ์ได้ที่นี่: https://niklas-heer.github.io/speed-comparison/
ฉันไม่มีความเชี่ยวชาญในภาษาเหล่านี้ทั้งหมด ดังนั้นควรพิจารณาผลลัพธ์ของฉันให้ดี
นอกจากนี้ การค้นพบยังแสดงให้เห็นว่าภาษาต่างๆ สามารถจัดการกับการดำเนินการจุดลอยตัวได้ดีเพียงใด ซึ่งเป็นเพียงแง่มุมหนึ่งของภาษาการเขียนโปรแกรมเท่านั้น
คุณสามารถมีส่วนร่วมและช่วยฉันแก้ไขโค้ดที่น่ากลัวในบางภาษาได้ -
ทุกอย่างดำเนินการโดยคอนเทนเนอร์ Docker และสคริปต์ทุบตีที่เรียกใช้โปรแกรม
เพื่อวัดเวลาดำเนินการจะใช้แพ็คเกจหลาม
Docker
Earthly อนุญาตให้รันทุกสิ่งด้วยคำสั่งเดียว:
earthly --config earthly-config.yml +all
การดำเนินการนี้จะรันงานทั้งหมดเพื่อรวบรวมการวัดทั้งหมด จากนั้นจึงดำเนินการวิเคราะห์
หากต้องการรวบรวมข้อมูลสำหรับทุกภาษาให้รัน:
earthly --config earthly-config.yml +collect-data
หากต้องการรวบรวมข้อมูลสำหรับการรันภาษาเดียว:
earthly --config earthly-config.yml + < replace me with language name >
หากต้องการสร้าง CSV แบบรวมจากผลลัพธ์ทั้งหมด ให้ใช้คำสั่งนี้:
earthly --config earthly-config.yml +analysis
ทำไมคุณถึงนับการอ่านไฟล์และการพิมพ์ผลลัพธ์ด้วย?
เพราะฉันคิดว่านี่เป็นสถานการณ์ที่สมจริงมากกว่าในการเปรียบเทียบความเร็ว
เวลาในการรวบรวมรวมอยู่ในการวัดหรือไม่
ไม่ จะไม่รวมอยู่ด้วย เพราะเมื่อรันโปรแกรมในโลกแห่งความเป็นจริง จะต้องทำมาก่อนด้วย
รายชื่อผู้ร่วมให้ข้อมูลจะถูกสร้างขึ้นโดยอัตโนมัติ
นิคลาส เฮียร์ | ฟรานเชสโก อเลมานโน | หยูจู้ | เจอร์รี่ หลิง | โกต โฮป | frak0d |
โจนาธาน แคร์โรลล์ | ซิดดิก อาชิล | เซอร์ก จินี่ | กาเบรียล บารัลดี | ซามูเอล | โจ แลนด์แมน |
ซันดีป กุมาร์ | แมตต์ | พอล ฮารัลด์สัน | ออสการ์ สมิธ | ไมเคิล แอบบอตต์ | ลอเรนโซ กาเบรียล |
LazyKernel | คริส เนิร์นเบอร์เกอร์ | เดิร์กี้ ดาร์กี้ | กุ้ยเจินเว่ย | RDPatrickTheDev | ภูมิใจ |
เซอร์เกย์ โทรฟิมอฟ | โธมัส เอ. แคสเวลล์ | โทโมฮิโระ | genmeblog | ยูตะ อิมาสึ | โคเฮอิ โฮโซกิ |
หยินเฮลี |
สำหรับการสร้างไฮเปอร์ไฟน์ซึ่งใช้สำหรับการเปรียบเทียบพื้นฐาน
โครงการนี้ได้รับแรงบันดาลใจจากโทมัสที่ทำการเปรียบเทียบที่คล้ายกันในบล็อกของเขา