Tags:
Node Thumbnail

ช่วงนี้ไม่มีสมรภูมิไหนสู้กันดุเดือดเท่ากับการแข่งเอนจินจาวาสคริปต์อีกแล้ว

เรื่องเริ่มจากค่าย WebKit นั้นเปิดตัว SquirrelFish (ปลากระรอก - โลโก้) เพื่อเป็นเอนจินตัวใหม่แทน JavaScriptCore ของเดิมที่สืบทอดมาตั้งแต่สมัย KJS จากนั้นก็เป็นฝั่ง Mozilla อัพเกรดเอนจิน SpiderMonkey มาเป็น TraceMonkey (ข่าวเก่า) และปิดท้ายด้วย V8 จากกูเกิล

ล่าสุด SquirrelFish ตัวเดิมแท้งก่อนคลอดเสียแล้ว เพราะทีมงานตัดสินใจทิ้งของเก่าและเปลี่ยนชื่อมันเป็น SquirrelFish Extreme (SFX) ซึ่งแรงกว่าเดิมอีกเท่าตัว (ผลการวัดด้วย SunSpider) และแรงกว่าใน Safari 3.0 ถึงสิบเท่า ส่วนผลการเปรียบเทียบกับเอนจินอีกสองตัวคือ TraceMonkey และ V8 ก็ดีกว่าตามคาด (กราฟ) ไม่งั้นคงยังไม่เปิดตัว

สาเหตุของประสิทธิภาพที่เพิ่มขึ้นคือเทคนิค 4 ประการดังนี้ (รอผู้เชี่ยวชาญมาอธิบายละกันนะครับ)

  • Bytecode Optimizations
  • Polymorphic Inline Cache
  • Context Threaded JIT
  • Regular Expression JIT

มีให้ลองเล่นแล้วใน WebKit nightly ว่าแต่เราลืม IE กับ Opera กันหรือเปล่า?

ที่มา - WebKit

Get latest news from Blognone

Comments

By: dafty
AndroidWindowsIn Love
on 20 September 2008 - 15:22 #65501

... นั่นสิ IE กะ Opera ไปไหนหว่า

By: onimaru
SymbianWindows
on 20 September 2008 - 20:38 #65520 Reply to:65501

รอเค้าเสร็จเรียบร้อยดีแล้วค่อยเอามาใส่ทีเดียว มั้ง ไม่แน่อาจซุ่มทำของตัวเองมั่ง

By: wiennat
Writer
on 20 September 2008 - 15:26 #65502

ยังเชื่อมั่นใน Mozilla ว่าจะทำให้ Tracemonkey เร็วกว่า SquirrelFish EX ได้


onedd.net

By: demon69gt on 20 September 2008 - 15:31 #65504 Reply to:65502

เห็นด้วย

ตอนนี้ลืม ie ไปแล้ว ถ้าไม่เหตุสุดวิสัยจริงๆ จะไม่แตะเลย

By: willwill
ContributorAndroid
on 20 September 2008 - 15:31 #65503
willwill's picture

http://www.satine.org/archives/2008/09/19/squirrelfish-extreme-fastest-javascript-engine-yet/#comment-10110

Who cares for JS speed as long as the browser can be crashed by Flash content.

By: loptar on 20 September 2008 - 20:14 #65518 Reply to:65503
loptar's picture

+10

By: lew
FounderJusci's WriterMEconomicsAndroid
on 20 September 2008 - 21:14 #65522 Reply to:65503
lew's picture

ปัญหาใหญ่ตอนนี้คือ Canvas ไม่เกิดซักที

LewCPE


lewcpe.com, @public_lewcpe

By: hereblur on 20 September 2008 - 22:31 #65531 Reply to:65503

+10

By: sugree
FounderWriterAndroidBlackberry
on 20 September 2008 - 16:52 #65508

IE บอกว่า

ช้าๆ ได้พร้าเล่มงาม

Opera บอกว่า

หัวเราะทีหลังดังกว่า

By: dafty
AndroidWindowsIn Love
on 20 September 2008 - 19:58 #65517 Reply to:65508

+1 ^^

By: wildseed on 20 September 2008 - 17:40 #65510

ไม่รู้ว่าจะทัน Safari 4 รึป่าว เห็นออกเป็น Developer Preview แล้ว

By: jirayu
ContributorWindows PhoneBlackberrySymbian
on 20 September 2008 - 18:42 #65512

ส่วนตัวยังชื่นชอบโอเปร่าอยู่ - -"

WhisperForum : หันมาใช้ Freeware และ Opensource กันดีกว่า!


By: polaromonas
ContributorWindows PhoneWindows
on 20 September 2008 - 19:55 #65516 Reply to:65512

แม่นเล้ย

หวังว่า Opera 10 จะปรับปรุงเรื่องนี้เหมือนกัน

By: adamy
iPhoneAndroidBlackberryUbuntu
on 20 September 2008 - 19:15 #65514

โลโก้ดูฮาดีครับ

ขอบคุณครับ สวัสดีครับ

:: Take minimum, Give Maximum ::

By: gudgee
iPhoneAndroidWindows
on 20 September 2008 - 19:29 #65515
gudgee's picture

โลโก้ หัวหมา หางปลา รึเปล่าครับ :D

JavaScript Engine แข่งกันสนุกสนาน งานนี้ google ยิ้มอย่างเดียว

By: wiennat
Writer
on 20 September 2008 - 21:04 #65521 Reply to:65515

ถูก!!!

ผมก็คิดงี้นะ แต่ไม่กล้าเขียนแฮะ ไม่รู้ว่าเพราะอะไร


onedd.net

By: loptar on 20 September 2008 - 20:14 #65519
loptar's picture

โลโก้ดูตลกดี ปลากระรอกติงต๊อง :-)

By: heha
Android
on 20 September 2008 - 21:58 #65525

โลโก้คิดจะใช้อันนั้นจริงๆ เหรอ - -"

My Blog -> http://paiboonpa.wordpress.com

By: cblue on 20 September 2008 - 22:04 #65526

รู้จักไม่ครบทั้ง 4 เทคนิคครับ

  • Bytecode optimisation คือการจัดเรียงเซตของ instruction ให้สามารถแทนที่ได้ด้วยเซตของ instruction อื่นที่ถูกกว่าเร็วกว่า
    แต่เท่าที่อ่าน ดูเหมือนว่าจะมีการออกแบบ bytecode ใหม่ ๆ เพิ่มเข้าไปด้วย เพื่อให้ได้ประสิทธิภาพดีขึ้นไปอีก

  • Polymorphic inline cache (PIC) คือการ cache การเรียกใช้ method แต่ว่าใช้ type ของ parameter เพิ่มในการค้นหา cache ด้วย อันนี้เป็นเทคนิคที่ใช้กันกว้างขวางใน dynamic language

  • Context Threading ยังไม่รู้ว่ามันคืออะไร แต่มี paper อ้างอิงอยู่บนหน้าของ Webkit ครับ ต้องเอามาอ่านในทันที

  • Regular Expression JIT ก็ไม่มีอะไีร แค่การ compile RE ให้เป็น native code ก่อนที่จะรัน(แทนที่จะ interpret) ดูแล้วไม่น่าเกียวกับ JavaScript ซักเท่าไหร่ แต่มันก็ทำให้การใช้ RE เร็วขึ้นแน่นอน

พูดกันตรง ๆ แล้วทีม Webkit ไม่ได้ทำอะไรใหม่ คือเอาเทคนิคที่มีอยู่แล้วมา implement ผมว่า Tracemonkey ดูมีภาษีกว่าในแง่ innovation ที่อาจจะทำให้เร็วได้อีก(มาก)

By: Jedt3D
iPhoneAndroidUbuntuWindows
on 20 September 2008 - 22:41 #65534
Jedt3D's picture

จริงๆ ก็ดีหมดแล้วครับ แต่เสียวที่...
- จะเข้ากันขนาดไหนน้อ...
- แยกค่ายกันแบบนี้จะกลายเป็นปัญหาเสียมากกว่าหรือไม่ในบางฟีเจอร์
- ชอบทาง squirrelfish ยกเว้นโลโก้... ยกนี้เห็นเอาพวก "ลูกครึ่ง" มาแข่งกัน..

-- Flex | Java | REALBasic --

By: tekkasit
ContributorAndroidWindowsIn Love
on 21 September 2008 - 07:59 #65576 Reply to:65534
tekkasit's picture

ผมว่าไม่น่าจะมีปัญหาเท่าไร เพราะวิธีการที่เค้าอธิบายกันเป็นกระบวนการหลังฉากมากกว่า ว่าทำอย่างไรให้เร็วและมีประสิทธิภาพมากที่สุด

By: mk
FounderAndroid
on 21 September 2008 - 14:05 #65592 Reply to:65534
mk's picture

JavaScript มีมาตรฐาน ECMAScript อยู่น่ะครับ มันก็มีความเข้ากันในระดับหนึ่ง แต่เวอร์ชันใหม่ๆ บางอันอย่างของ Mozilla ที่มีส่วนขยายของตัวเอง (ที่เรียกเป็นเวอร์ชัน 1.6, 1.7 อะไรแบบนั้น) ก็มีแต่ SpiderMonkey/TraceMonkey ตัวเดียวที่สนับสนุน

By: ipats
ContributorNOOBIn Love
on 20 September 2008 - 22:57 #65540

อนาคตเราอาจได้เห็นคนโม Firefox V8 Edition หรือไม่ก็ ChromeMonkey

iPAtS


iPAtS

By: LawrenceX on 20 September 2008 - 23:54 #65546

โลโก้ ได้ใจมากครับ

By: wiennat
Writer
on 21 September 2008 - 10:57 #65582

ต่อไปคงมีแบบ onmibrowser เลือก rendering engine กับ javascript engine ได้ เช่นเลือกใช้ renderer เป็น gecko แล้วใช้ js เป็น V8

หรือไม่ก็เอา webkit ไปจับคู่กับ TraceMonkey


onedd.net

By: oakyman
ContributorAndroid
on 22 September 2008 - 03:11 #65629

Opera เป็นลูกเมียน้อยอยู่แล้ว ไม่มีใครสนใจหรอก (ฮือๆ)

Oakyman.com