
จากการเปรียบเทียบ performance ของภาษาโปรแกรมต่าง ๆ ในสมาคม programmer
ด้วย Prime number ซึ่งใช้งาน algorithm ที่ชื่อว่า The sieve of Eratosthenes
ก็เลยลองไปดู code นิดหน่อย
เนื่องด้วยไม่ค่อยได้เขียนภาษาต่าง ๆ มากนัก
เลยหยิบมาพวกภาษา Go และ Java มาดูหน่อย ว่าเขียนอย่างไร ?
เริ่มด้วยภาษา Go พบว่าทำงานช้า เช่น
- การ allocate slide ซึ่งไม่ทำการ preallocate ทำให้ช้า
- ตามธรรมาชาติของ go สามารถทำพวก go routine และ go channel ได้
- มีการเขียน file สำหรับการบันทึกผล
ดังนั้นลองเปลี่ยน code นิดหน่อย ทำเพียงเอาการบันทึกผลลงไฟล์ออกไป ได้ประมาณนี้
ส่วน Java นั้นที่ผลการทำงานเร็วมาก ก็เลยเอาส่วนของบันทึกผลออกไป
กับเปลี่ยนการ initial ข้อมูลใน array ของ boolean ให้เป็น true ทั้งหมดนิดหน่อย
ได้ผลการทำงานดังนี้
ในส่วนของ C# ก็เอาส่วนบันทึกผลลงไฟล์ไปเช่นกัน
กับเปลี่ยนการ initial ข้อมูลใน array ของ boolean ให้เป็น true ทั้งหมดนิดหน่อย
ได้ผลการทำงานดังนี้
ต้องดูว่า เราจะเอาการบันทึกผลลงไฟล์มาวัดกันหรือเปล่า เท่านั้นเอง
ว่าง ๆ เลยลองปรับปรุง code ดูนิดหน่อย สนุกดีนะครับ