แม้ว่าภาษา 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
on
โอ้ววว
konkeanweb Fri, 27/03/2009 - 10:44
โอ้ววว ชอบจัง คลอดออกมาเร็ว ๆ นะครับบบบ จะได้อัพเกรด
ลาก่อน GIL!!!
sugree Fri, 27/03/2009 - 10:45
ลาก่อน GIL!!!
โอ้โห
obiconbig Fri, 27/03/2009 - 10:49
โอ้โห ปรับแรงกว่าเดิม 5 เท่า sugree ชอบเลย
ผมก็คงต้องหันมาจริงจังบ้างแล้ว
5 เท่า!!
mossila Fri, 27/03/2009 - 11:00
5 เท่า!! อย่างน้อย!! ตอนนี่มันก็เร็วโขแล้วนะ!
:→♀MOSS♂←:A LITTLE PLANT ON THE ROCK.
มันจะเร็ว
wiennat Fri, 27/03/2009 - 11:50
In reply to 5 เท่า!! by mossila
มันจะเร็วยังไงแต่ผมว่ามันก็ยังช้าอยู่นะครับ
onedd.net
ช้ายังไงค
chaow Fri, 27/03/2009 - 11:59
In reply to มันจะเร็ว by wiennat
ช้ายังไงครับช่วยอธิบายหน่อยครับผมจะได้หลีกเลี่ยง
แค่เทียบก
qute Fri, 27/03/2009 - 13:06
In reply to ช้ายังไงค by chaow
แค่เทียบกับ Java ก็ช้ากว่ามากๆ แล้วครับ
อ๋อเข้าใจ
chaow Fri, 27/03/2009 - 17:03
In reply to แค่เทียบก by qute
อ๋อเข้าใจละครับ
เห็นด้วย Jav
Jonix Sat, 28/03/2009 - 02:31
In reply to แค่เทียบก by qute
เห็นด้วย
Java VM สมัยใหม่คอมไพล์ byte code เป็น native code
ช้าตอนเปิดโปรแกรม
ช้าตอนโหล
lancaster Mon, 30/03/2009 - 03:45
In reply to เห็นด้วย Jav by Jonix
ช้าตอนโหลด JVM :P
ขอโทษครับ
mossila Fri, 27/03/2009 - 16:27
In reply to มันจะเร็ว by wiennat
ขอโทษครับถ้าผมผิดพลาดประการใด ผมว่ามันเร็วแล้ว แต่ว่า 5 เท่านี่มันเหลือเชื่อ
ความเร็วหลักๆ ยังไงก็น่าจะมาจาก algorithm ที่ดีอยู่ดี
ภาษาดี algo ห่วยแตก โปรแกรมช้าเป็นเต่าแน่นอน :)
Moss 's blog
อยากให้เก
lunargone Fri, 27/03/2009 - 12:08
อยากให้เกิดกับ Ruby มั่ง
_______________________
อำลา
IronPython ไม่มี
cwt Fri, 27/03/2009 - 13:33
IronPython ไม่มี GIL นะครับ
แล้ว R
pawinpawin Fri, 27/03/2009 - 13:41
แล้ว R จะได้อานิสงส์ไปด้วยไหมครับ...
_________________pawinpawin | blog
จริงๆ
cwt Fri, 27/03/2009 - 13:44
จริงๆ แล้วถ้าใครใช้ 2.6.x ลองใช้ multiprocessing ดูก็ได้ครับ
ถ้าใช้ 2.4/2.5 ก็เอาตัวนี้ไปลง http://code.google.com/p/python-multiprocessing/
@sugree ลองทำ benchmark โดยใช้ multiprocessing ดูมั้ยครับ?
PEP-371
sugree Fri, 27/03/2009 - 14:14
In reply to จริงๆ by cwt
PEP-371 แค่พยายามเลี่ยง GIL โดยแยกโปรเซส แต่ GIL ตัวจริงยังอยู่เหมือนเดิมทุกอย่าง แยกโปรเซสแล้วจะใช้ address space แยกกันจึงไม่มี GIL ถ้าจะใช้วิธีนี้ต้องแก้โค้ดเก่าทั้งหมด ห้ามใช้ thread แบบเดิม ต้องส่งข้อมูลกันด้วย IPC แทน
ถ้าเชือด GIL ออกได้โดยไม่ต้องแก้โค้ดจะดีกว่านะ
IPC
lew Fri, 27/03/2009 - 14:28
In reply to จริงๆ by cwt
IPC เจอโปรแกรมที่ highly coupled ก็เดี๊ยงครับ เสียเวลาส่งข้อมูลไปมามหาศาล
LewCPE
Java
khajochi Fri, 27/03/2009 - 16:45
Java หนาวแน่นอน
---
Khajochi Blog : It's not a Bug ... It's a Feature
สงสัย
absulation Fri, 27/03/2009 - 17:29
สงสัย ต้องหัดอย่างจริงจังๆซ่ะแล้ว