แม้ว่าภาษา Python จะมีความดีงามหลายๆ อย่างโดยเฉพาะตัว syntax ที่เข้าใจได้ง่ายมาก แต่โครงสร้างของ Python เองนั้นยังคงมีปัญหาในแง่ของประสิทธิภาพ และการทำงานแบบขนานบนคอมพิวเตอร์ที่มีหลายซีพียูอยู่
งานนี้กูเกิลในฐานะคนใช้ Python ระดับ "ตัวพ่อ" คนหนึ่ง (Guido van Rossum คนสร้าง Python ก็ทำงานที่กูเกิล) ก็เปิดโครงการพัฒนา Python ในชื่อโครงการ unladen-shallow โดยมีเป้าหมายคือ
- สร้าง Python ที่เร็วกว่าเดิมอย่างน้อยๆ 5 เท่าตัว
- ความเร็วในการทำงานต้องมีเสถียรภาพดีขึ้น
- เข้ากันได้กับซอฟต์แวร์ที่ใช้ Python เดิม
- เข้ากันได้กับโมดูลเดิมของ Python
- โครงการเป็นการสร้าง branch เพื่อเตรียมรวมกลับเข้าโครงการหลักเท่านั้น ไม่ใช่การแยก Python
ความเข้ากันได้ของโครงการนี้จะเป็นความเข้ากันได้ในระดับซอร์ส นั้นคือโปรแกรมที่ต้องการใช้ Python รุ่นของกูเกิลนี้จะต้องคอมไพล์ใหม่ แต่ก็ไม่ใช่ปัญหาใหญ่นักสำหรับโลกโอเพนซอร์ส
ที่น่าสนใจคือโครงการนี้มีความหวังว่าจะขจัด Global Interpreter Lock (GIL) ที่เป็นปัญหาหลักที่ทำให้ภาษา Python ไม่สามารถทำงานได้เต็มประสิทธิภาพเมื่อใช้บนเครื่องหลายซีพียูมานาน และมีความพยายามแก้ปัญหานี้หลายต่อหลายครั้งแล้ว
ตัว Guido van Rossum เองเคยตั้งเงื่อนไขในการแก้ไขปัญหานี้ไว้ว่าการทำให้ Python รองรับ Multi-Core นั้นจะต้องไม่ไปลดประสิทธิภาพของซอฟต์แวร์ปรกติลง
ที่มา - ArsTechnica, unladen-shallow
- 3396 reads



Comments
โอ้ววว ชอบจัง คลอดออกมาเร็ว ๆ นะครับบบบ จะได้อัพเกรด
คนเขียนเว็บ
ลาก่อน GIL!!!
โอ้โห ปรับแรงกว่าเดิม 5 เท่า sugree ชอบเลย
ผมก็คงต้องหันมาจริงจังบ้างแล้ว
meteenee.com
5 เท่า!! อย่างน้อย!! ตอนนี่มันก็เร็วโขแล้วนะ! <br/>
:→♀MOSS♂←:A LITTLE PLANT ON THE ROCK.
Moss 's blog
มันจะเร็วยังไงแต่ผมว่ามันก็ยังช้าอยู่นะครับ
onedd.net
onedd.net
ช้ายังไงครับช่วยอธิบายหน่อยครับผมจะได้หลีกเลี่ยง
Chaow
แค่เทียบกับ Java ก็ช้ากว่ามากๆ แล้วครับ
อ๋อเข้าใจละครับ
Chaow
เห็นด้วย
Java VM สมัยใหม่คอมไพล์ byte code เป็น native code ช้าตอนเปิดโปรแกรม
http://www.embes.com
ช้าตอนโหลด JVM :P
Sent from my computer
ขอโทษครับถ้าผมผิดพลาดประการใด ผมว่ามันเร็วแล้ว แต่ว่า 5 เท่านี่มันเหลือเชื่อ ความเร็วหลักๆ ยังไงก็น่าจะมาจาก algorithm ที่ดีอยู่ดี ภาษาดี algo ห่วยแตก โปรแกรมช้าเป็นเต่าแน่นอน :) Moss 's blog
Moss 's blog
อยากให้เกิดกับ Ruby มั่ง _______________________ อำลา
ผมไม่ใช่แมว
IronPython ไม่มี GIL นะครับ
แล้ว R จะได้อานิสงส์ไปด้วยไหมครับ... _________________pawinpawin | blog
pawinpawin | clinicalepi.com
จริงๆ แล้วถ้าใครใช้ 2.6.x ลองใช้ multiprocessing ดูก็ได้ครับ
ถ้าใช้ 2.4/2.5 ก็เอาตัวนี้ไปลง http://code.google.com/p/python-multiprocessing/
@sugree ลองทำ benchmark โดยใช้ multiprocessing ดูมั้ยครับ?
PEP-371 แค่พยายามเลี่ยง GIL โดยแยกโปรเซส แต่ GIL ตัวจริงยังอยู่เหมือนเดิมทุกอย่าง แยกโปรเซสแล้วจะใช้ address space แยกกันจึงไม่มี GIL ถ้าจะใช้วิธีนี้ต้องแก้โค้ดเก่าทั้งหมด ห้ามใช้ thread แบบเดิม ต้องส่งข้อมูลกันด้วย IPC แทน
ถ้าเชือด GIL ออกได้โดยไม่ต้องแก้โค้ดจะดีกว่านะ
IPC เจอโปรแกรมที่ highly coupled ก็เดี๊ยงครับ เสียเวลาส่งข้อมูลไปมามหาศาล
LewCPE
LewCPE's Google+
Java หนาวแน่นอน
--- Khajochi Blog : It's not a Bug ... It's a Feature
Khajochi Blog : It's not a Bug ... It's a Feature
สงสัย ต้องหัดอย่างจริงจังๆซ่ะแล้ว