ทำไมคนยังพูดว่า Java ช้า? [ปิด]


61

เป็นเวลานานใน SO และในที่อื่น ๆ Java มีชื่อเสียงว่าเป็นคนช้า จากเรื่องตลกไปจนถึงความคิดเห็นในคำถามและคำตอบผู้คนยังคงเชื่อว่า Java นั้นช้าตามประสบการณ์ในยุค 90 เพียงอย่างเดียว

นี่คือปัญหาของฉัน: เราได้หักล้าง (ส่วนใหญ่) สาเหตุที่ผู้คนเชื่อว่าชวาช้า นอกเหนือจากสิ่งเล็ก ๆ แล้ว Java นั้นค่อนข้างเร็ว

ดังนั้นทำไมคนยังปฏิเสธที่จะเชื่อว่า Java เร็วในขณะนี้ เป็นส่วนหนึ่งของความคิดของพวกเขาหรือไม่ว่าอะไรที่ไม่ใช่ C / C ++ นั้นช้า? เป็นเพราะคนไม่ได้ตรวจสอบเมื่อเวลาผ่านไป? เป็นเพราะคนมีความลำเอียงใช่ไหม


10
Umm, C # เร็วเกินไป;)
Evan Plaice

12
อืมมลิงค์นั้นไม่ได้พิสูจน์ว่าจาวาช้า

13
ความรู้สึกของฉันคือ Java ไม่ตอบสนองช้ากว่า
zneak

23
UI ไลบรารีที่น่ากลัวและน่ากลัว .. ?
dmp

4
เนื่องจาก JVM ไม่ใช่ส่วนหนึ่งของเคอร์เนล โอ้บางทีลินุกซ์บางคนอาจจะเพิ่มมันในอนาคต
XièJìléi

คำตอบ:


131

มันเป็นแอพพลิเคชั่น ดังที่คุณทราบเราได้พิสูจน์ครั้งแล้วครั้งเล่าว่าในสถานการณ์สมมติโค้ด Java สามารถตอบสนองหรือแม้กระทั่งเอาชนะประสิทธิภาพของภาษาที่เรียกว่า "นักแสดง" เช่น C, C ++, Lisp, VB6 หรือ JavaScript และเมื่อนำเสนอด้วยหลักฐานดังกล่าวฝ่ายตรงข้ามที่มีสติและมีสติส่วนใหญ่จะแขวนหัวพวกเขาด้วยความอับอายและสัญญาว่าจะไม่พูดจาใส่ร้ายอีกต่อไป

... แต่หลังจากนั้นพวกมันก็เปิดไฟ Eclipse หรือ NetBeans หรือ Guiffy หรือเปิดใช้งานการสนับสนุน Java ในเบราว์เซอร์ของพวกเขาหรือลองเรียกใช้แอพบนฟีเจอร์โฟนที่พวกเขาชื่นชอบ และพวกเขาก็รอให้มันตอบสนอง ...

... และรอ ...

... และรอ ...



... และรอ ...







... และรอ ...











... และ ...




... ... ... สิ่งที่ฉันสัญญาว่าจะไม่ทำอีกครั้ง ? ขออภัยต้องปิดแล้ว ...


44
แม้แต่ Java GUI ที่ง่ายที่สุดก็ใช้เวลาอย่างน้อย 1.5 วินาทีในการเริ่มต้น นั่นไม่ใช่เรื่องเล็กน้อย
Peter Boughton

32
ฉันไม่เคยคิดว่า Javascript ถือเป็นภาษา "นักแสดง"
zneak

11
+1 สำหรับการกล่าวถึง IDEs มีความแตกต่างอย่างมากระหว่างการตอบสนองของ Eclipse และ IDE เช่น Visual Studio
mellowsoon

56
ฉันมีปัญหากับสิ่งนี้ Firefox เขียนเป็นภาษา C ++ เป็นหลักและช้า หมายความว่า C ++ ช้าหรือไม่ ไม่นั่นหมายความว่า Firefox ช้า การพูดว่าภาษานั้นช้าเพราะโปรแกรมที่ใหญ่ที่สุดที่เขียนในภาษานั้นช้านั้นเป็นคนโง่
TheLQ

13
โจนัสโดยใช้ตัวอย่างที่ง่ายที่สุดที่ฉันสามารถหาได้ไม่ทำให้ฉันเป็นโปรแกรมเมอร์ที่ไม่ดี หากคุณมีวิธีมายากลที่ทำงาน Java GUI ในเวลาน้อยกว่าพริบตา, ไปข้างหน้าและแสดงให้เห็นถึงมัน
Peter Boughton

48

คำถามนี้ทำงานในสถานที่ที่เป็นเท็จ: ที่มีการนับJava ยังคงช้า ที่ซึ่งการนับเป็นอัลกอริธึมการคำนวณหนักบนชุดข้อมูลขนาดใหญ่ จริงอยู่ที่สิ่งเหล่านี้สามารถปรับให้เหมาะสมบางครั้งจะเทียบเท่ากับรหัส C / C ++ แต่ค่าใช้จ่ายของ modularity และ genericity รหัส C ++ ที่มีประสิทธิภาพสามารถออกแบบให้เป็นแบบทั่วไปและใช้งานได้เป็นไลบรารีเอนกประสงค์ รหัส Java ไม่สามารถ เพียงแค่ดูArray.sortวิธีการที่ได้รับการปรับให้เหมาะสมที่สุดซึ่งใช้การปรับใช้ที่แตกต่างกันสำหรับประเภทพื้นฐานทั้งหมดและตัวแปรของวัตถุยังคงช้ากว่าทั่วไปมากใน C ++ sortเพราะวัตถุเหล่านี้ต้องทำการเปรียบเทียบความเท่าเทียมกันแบบไดนามิก

ได้รับการปรับให้เหมาะสมทันเวลาตามที่ดำเนินการโดยโปรแกรม HotSpot จริง ๆ แล้วสามารถทำนายเป้าหมายของการโทรเสมือนเหล่านี้และพยายามอินไลน์ แต่นี่ยังช้ากว่าการโทรแบบอินไลน์โดยตรงที่ส่งภายในsortวิธีการC ++

อดีตเพื่อนร่วมงานของฉันได้ทำการเปรียบเทียบมาตรฐานของปัญหาในชุดข้อมูลขนาดใหญ่ (การนับคิว -กรัมโดยใช้รูปร่างแบบไดนามิก) ด้วยการใช้งาน C ++ แบบเทมเพลตและการใช้งานจาวาเชิงวัตถุ รหัสจาวาคือลำดับความสำคัญช้ากว่ารหัส C ++

แน่นอนว่านี่คือการเปรียบเทียบแอปเปิ้ลกับส้ม แต่ประเด็นก็คือการนำ Java ไปใช้นั้นเป็นการนำไปใช้ที่ดีที่สุด (ในแง่ของประสิทธิภาพกำหนดระดับของ modularity ที่จำเป็นสำหรับไลบรารี) และดังนั้นก็คือการนำ C ++ ไปใช้

น่าเสียดายที่ข้อมูลมาตรฐานไม่สามารถใช้งานได้อย่างอิสระ แต่คนอื่น ๆ พบว่าตัวเลขที่คล้ายกันเมื่อเปรียบเทียบค่าใช้จ่ายของนามธรรมนามธรรม ตัวอย่างเช่น Scott Meyers เขียนในEffective STLเกี่ยวกับโอเวอร์เฮดของqsortฟังก์ชันทั่วไปของ C :

การเรียงลำดับของ C ++ เป็นเรื่องที่น่าอายเสมอ qsort ของ C เมื่อพูดถึงความเร็ว […] ที่รันไทม์การเรียงลำดับทำให้การเรียกแบบอินไลน์ไปยังฟังก์ชั่นการเปรียบเทียบของมัน ... ในขณะที่ qsort เรียกฟังก์ชั่นการเปรียบเทียบผ่านตัวชี้ […] ในการทดสอบของฉันบนเวคเตอร์หนึ่งล้านคู่ [เรียงลำดับ] วิ่งเร็วขึ้นถึง 670% ...


6
เพื่อความเป็นธรรมstd::sortเป็นหนึ่งในกรณีที่ยากที่จะทำสิ่งที่คล้ายกันในภาษาอื่น แต่โครงการส่วนใหญ่ที่ฉันเห็นไม่ได้เขียนstd::sortโค้ดเหมือนกัน พวกเขากำลังเขียนโค้ด Java (ไม่ดี) ใน C ++ และบ่นว่าพวกเขามีปัญหา
Billy ONeal

2
คุณมีรายงานเพื่อสำรองข้อมูลเรื่องราวของคุณว่าชุดข้อมูลขนาดใหญ่ช้าหรือไม่ ฉันได้ยินคนพูดคุยเกี่ยวกับการดำเนินการรายการ 1-2 ล้านรายการและมันยังคงเป็นไปอย่างรวดเร็ว และไม่ได้ยุ่งกับชุดข้อมูลขนาดใหญ่ในหน่วยความจำ (มักจะเป็นสิ่งที่อยู่ในฐานข้อมูล) บิตของช่องเฉพาะหรือไม่?
TheLQ

8
@TheLQ: แหล่งที่มาคือหนังสือ SeqAn โดย Gogol-Döring & Reinert และเกี่ยวกับเคาน์เตอร์ตัวอย่างเช่นสิ่งที่ดำเนินงาน? และพวกเขาคิดว่าอะไร“ เร็ว” นอกจากนี้รายการ 1E6 ไม่ได้มีขนาดใหญ่มาก ;-) และเป็นไปได้ไหมว่านี่เป็นช่องเฉพาะ - แน่นอน แต่นี่คือที่ที่คุณต้องการการคำนวณที่รวดเร็ว ประเด็นคือไม่ว่า Java จะเร็วหรือไม่ "เร็วพอ" สำหรับการดำเนินการที่ไม่แพง ในชุดข้อมูลขนาดเล็กพอทุกอย่างเร็วพอ
Konrad Rudolph

2
ไม่มีสิ่งดังกล่าวเป็นที่ดีที่สุดของการดำเนินงานที่เป็นไปได้
เจเรมีจอร์จ

3
@fonzo อาจมีการประมาณที่เหมาะสม รอยขีดข่วนว่าสำหรับขั้นตอนวิธีการมากพอที่เรียบง่ายและดีที่กำหนดตัวชี้วัดที่มีสามารถเป็นการดำเนินงานที่ดีที่สุด นี่เป็นกรณีที่นี่ อัลกอริทึมนั้นง่ายและมีกรณีที่ถูกกำหนดอย่างดีซึ่งได้รับการปรับปรุง: ใช้เวลากับอินพุตที่กำหนด
Konrad Rudolph

28

เพราะมันช้า ... ในบางแอพพลิเคชั่น แอปพลิเคชันบนเดสก์ท็อปจะต้องตอบสนองตั้งแต่ต้นและค่าใช้จ่ายในการเริ่มต้นนับว่าช้า

ในทางตรงกันข้ามถ้าคุณเรียกใช้เซิร์ฟเวอร์มันไม่สำคัญว่าจะมีระบบทำความร้อน (การวิเคราะห์และการรวบรวม JIT) - คุณทำมันหนึ่งครั้งใน Blue Moon ดังนั้นเวลาส่วนใหญ่นั้นจะไม่ถือว่าช้าอย่างสิ้นเชิง


ค่าใช้จ่ายในการเริ่มต้นเป็นปัญหา แต่คุณสามารถปรับแต่งมันได้ด้วยสวิตช์บรรทัดคำสั่งบางตัว
TheLQ

22
มีผู้ใช้กี่คนที่รู้เกี่ยวกับสวิตช์บรรทัดคำสั่งจริง
Walter

17
TheQQ หากคุณสามารถให้สวิตช์บรรทัดคำสั่งเพื่อลบการเริ่มต้นล่าช้า 1.5s สำหรับ Swing / AWT โปรดไปข้างหน้าและตอบคำถามนี้: stackoverflow.com/questions/508723/…
Peter Boughton

6
และฉันจะปรับเปลี่ยนบรรทัดคำสั่งเหล่านั้นเพื่อหลีกเลี่ยงโดยเบราว์เซอร์ทั้งล็อคเป็นเวลา 5 วินาทีถ้าฉันคลิกที่ลิงค์ที่มีสิ่ง Java? นั่นคือสิ่งที่ทำให้คนเรียก Java ช้าและไม่สำคัญว่าเมื่อโหลดแล้วมันจะทำงานได้ค่อนข้างเร็ว
Roman Starkov

21

ฉันจะบอกว่ามันเป็นเพราะเมื่อคนแรกพบมันช้า จากนั้นพวกเขาสร้างความประทับใจให้กับมัน การแสดงผลนั้นไม่น่าจะเปลี่ยนแปลงหากพวกเขาไม่ได้ใช้และพวกเขาไม่ได้ใช้เพราะความประทับใจนั้น - มันเป็นวงจรอุบาทว์

ฉันต้องยอมรับว่าฉันรู้สึกว่าชวาช้าและใช่นั่นคือจากการเปิดเผยครั้งก่อนของฉัน ตอนนี้ฉันได้เปลี่ยนไปใช้ภาษาอื่นและมีการเปิดเผยอย่าง จำกัด กับ Java ตั้งแต่นั้นมา ดังนั้นความคิดเห็นของฉันจึงไม่เปลี่ยนแปลงมากนัก


3
+1 - ฉันเห็นด้วยอย่างยิ่ง ฉันเกลียดชวาในช่วงแรก ๆ . NET Framework ช่วยในการจัดการรหัสสาเหตุ: ฉันชอบ C # และในที่สุดฉันก็ชื่นชม Java เช่นกัน
Wizard79

7
มันยังคงใช้เวลากว่าหนึ่งวินาทีในการวิ่งสวัสดีชาวโลก มันช้าในแง่ของเวลาเริ่มต้น
intuited

@intuited ลองสร้างเซิร์ฟเวอร์บน C ++ / C # หรือภาษาใดก็ตามที่คุณสามารถหา HECK ลองสร้างด้วย C และจากนั้นเปรียบเทียบกับ JAVA สิ่งที่มี C คือมันเร็วถ้าคุณเป็น "Ma ฉันเขียนโค้ด C 10 บรรทัดที่เร็วกว่า Java แต่คุณอ่านมันไม่ได้" ประเภทของคนที่แต่งตัวประหลาด ช่วงเวลาที่รหัส C ของคุณเติบโตขึ้นความเร็วของคุณจะช้าลง)
AceofSpades

16

เพราะต้องใช้เวลาในการสร้างการเปลี่ยนแปลงการรับรู้ของผู้คนเกี่ยวกับผลิตภัณฑ์

มันไม่เกี่ยวอะไรกับความเร็วของจาวา ในใจของคน Java เป็นตัวระบุ const ที่เกี่ยวข้องกับคำว่า 'ช้า' ไม่มีอะไรที่คุณหรือออราเคิลสามารถทำได้

เพียงแค่มีความสุขว่า Oracle ยังไม่ได้ทำลายวัฒนธรรมการเขียนโปรแกรม Java (ยัง) โดยการทำอะไรผื่นหรือโง่ เช่นเดียวกับการเรียกเก็บเงินค่าลิขสิทธิ์ที่มากเกินไปเพื่อใช้งาน หรือฟ้องร้องผู้คนตามสิทธิบัตรซอฟต์แวร์ที่ Sun เป็นเจ้าของก่อนหน้านี้ :: ถอนหายใจ ::

ฉันเกลียดที่จะเป็นผู้เข้าร่วมที่นี่ แต่ถ้า Oracle และ Google ยุติการต่อสู้ของ Java ในแง่ดีหรือ Google ถูกบังคับให้ซื้อ Java และทำให้มันเป็นแพลตฟอร์มโอเพ่นซอร์สที่ 'ถูกต้อง' Java เป็นอย่างดีในการเป็นเด็ก สนามเด็กเล่นที่มีเหา IE ไม่มีใครอยากสัมผัสกับเสา 20 ฟุต

หมายเหตุ: เพื่อให้ชัดเจนเมื่อฉันพูดรุ่นฉันกำลังพูดในแง่คนไม่ใช่ศัพท์คอมพิวเตอร์ IE จนกว่าคนที่ถือการรับรู้นั้นจะตายในวัยชราหรือถูกแทนที่ด้วยคนรุ่นใหม่ คิดในแง่ของ 5 ทศวรรษไม่ใช่ 5 ปี


2
ฉันคิดว่า Google ใช้จาวามากที่พวกเขาซื้อมันไม่ใช่ทฤษฎีที่ไม่สามารถทำได้โดยสิ้นเชิง ฉันอาจจะมีความสุขกับมัน
Bart van Heukelom

1
@donroby: และใครสนใจภาษาเหล่านี้ ในอีกสองทศวรรษ Java จะเป็นภาษาเฉพาะ
aasc

1
@aasc - Java อาจล้าสมัยในสองทศวรรษ แต่ LISP ไม่ใช่ตอนนี้และจะไม่เป็นเช่นนั้น
Don Roby

2
@aasc "ภาษาการเขียนโปรแกรมมักจะไม่ได้มีชีวิตอยู่มากกว่ารุ่น" คนดีผู้ดี Delphi Developers 1 ล้านคนที่ Pascal, 5 ล้าน Visual Basic Developers err ... ไม่ต้องพูดถึง Perl, Lisp, Fortran, Cobol, C ++ เหตุผลใด ๆ สำหรับความคิดเห็นนั้น ???
จรรยา

2
@ ตามหลักจรรยาไม่ได้อยู่ในกระแสหลัก จำนวนธุรกิจที่ต้องพึ่งพา Lisp, Fortran, Cobol ด้วยเสียงกระเพื่อมมันส่วนใหญ่ติดอยู่ในสถาบันการศึกษาและใช้เป็นแบบจำลองสำหรับคุณสมบัติของภาษาอื่น ๆ น้อยใช้สำหรับโครงการผลิตจริง Fortran ได้กลายเป็นภาษาเฉพาะสำหรับการสร้างแบบจำลองทางคณิตศาสตร์ที่มีประสิทธิภาพสูงและ Cobol ยังคงอยู่เพียงเพราะอุตสาหกรรมธนาคารต้องกลัวที่จะเปลี่ยนรหัสเก่า / ที่เชื่อถือได้ของพวกเขาเป็นแพลตฟอร์มใหม่ C ++ เป็นข้อยกเว้นที่เห็นได้ชัดเพราะมันยังใช้กันอย่างแพร่หลายและนำมาใช้ในวันนี้
Evan Plaice

11

เหตุผลหนึ่งก็คือคนที่ไว้วางใจในสิ่งที่คนอื่นพูดแทนสิ่งที่พวกเขาเห็น

ตามที่ฉันบอกเมื่อฉันเริ่มเขียนโปรแกรม Java คือ "ช้าลง" กว่า C ++ และเหตุผลที่ Java สามารถใช้งานได้ก็เพราะ "สะดวกและง่ายขึ้น" เป็นที่เชื่อกันโดยทั่วไปว่า Java ให้ความปลอดภัยและความสะดวกสบายในราคาที่เหมาะสม แม้ภายหลัง C # ก็ถูกประดิษฐ์ขึ้นคนเชื่อว่ามันเร็วกว่า Java เพราะเป็น "เจ้าของภาษา"

แต่ความจริงที่ผู้คนเห็นโดยไม่รู้สึกว่าคือคราส IDE ที่สร้างขึ้นด้วย Java นั้นเป็น IDE ที่เร็วที่สุดในชั้นเรียน ฉันใช้ IDE กระแสหลักเกือบทั้งหมดจาก MS และ GNU, Borland ... , eclipse เป็นราชาที่แท้จริงของ IDEs ส่วนใหญ่เนื่องจากมันรวดเร็ว

เหตุผลก็คือมันเริ่มต้นขึ้นเวลานาน

จาวาไม่เหมาะสำหรับการพัฒนาแอพเล็ก ๆ ที่อยู่ในถาดระบบใช้หน่วยความจำเล็ก ๆ น้อย ๆ ผุดขึ้นกล่องโต้ตอบเพื่อเตือนให้คุณหยุดพัก หรือแผ่นจดบันทึกที่คุณใช้เพื่อเปิดไฟล์ข้อความอ่านและปิด ควรใช้กับบางสิ่งที่ยิ่งใหญ่เช่นเว็บเซิร์ฟเวอร์ที่มีอยู่เสมอใช้ประโยชน์จากทรัพยากรคอมพิวเตอร์ของคุณให้ได้รับการตอบสนองต่อการร้องขอนับล้านครั้งทุกชั่วโมง หรือ IDE เช่น eclipse ที่จัดการไฟล์พื้นที่ทำงานหลายพันไฟล์ คุณไม่ทราบว่าแอป Java ของคุณนั้นเร็วจนกว่าจะใช้งานได้อย่างน้อยหลายชั่วโมงฉันเชื่อว่า


1
Isee slowness ตลอดเวลา
aasc

28
คราสเร็ว? LMAO
finnw

2
@finnw - ถ้าคุณปรับมัน ออกจากกล่องและเสียบปลั๊กทั้งหมดเห็นได้ชัดว่ามันจะไม่เร็ว เห็นได้ชัดว่าไม่สามารถเปรียบเทียบกับ vim หรือ jedit หรือ Notepad ++ ได้ แต่อาร์กิวเมนต์และข้อความสั่ง "เร็ว" หรือ "ช้า" เหล่านี้ไม่มีความหมายหากไม่มีบริบท
luis.espinal

2
@luis แต่คุณสามารถเปรียบเทียบกับ Delphi 7 ซึ่งฉันไม่เชื่อว่าทั้งหมดนั้นง่ายกว่า Eclipse และ Delphi 7 นั้นเกือบจะเร็วเท่ากับ Notepad มันบ้า
Roman Starkov

4
@finnw, สำหรับ IDE ที่มี zillions ของ plugin มันค่อนข้างเร็ว :)

8

@bigown "ทำไมผู้คนถึงพูดว่า Java ช้า"

เพราะพวกเขาเป็นใบ้ เพราะพวกเขาไม่มีประสบการณ์การทำงาน แต่คิดว่าพวกเขาเป็นชาติที่มีชีวิตของ Dikjstra หรือการมาครั้งที่สองของ Linus Torvald โอ้ฉันไม่ได้ดู เหตุผลในการพูดสิ่งที่หน่วงเหนี่ยวนั้นมีมากมาย แต่โดยปกติแล้วจะเป็นความโง่เขลาความคลั่งไคล้ทางจิตใจที่ไร้เหตุผลและความสนใจทางอารมณ์ดูเหมือนจะอยู่ข้างหลังพวกเขา

เรามากำจัดสิ่งนี้กันเพื่อที่คุณจะได้เห็นความจริงของสิ่งที่ฉันได้กล่าวไว้ข้างต้น:

อย่างแรกสิ่งที่ช้าในสิ่งที่บริบทอะไรภายใต้เงื่อนไขอะไรกับวัตถุประสงค์ทางวิศวกรรม / วิทยาศาสตร์ / ธุรกิจ (สำหรับการพูดว่ามันเป็นสิ่งที่ไม่ได้เป็นหนึ่งในนั้น) บุคคลใดก็ตามที่กล่าวว่า "X ช้า" สำหรับเทคโนโลยีใด ๆ X หรือเพียงแค่ "X คือ Y" โดยที่ Y เป็นข้อความเชิงลบบางประเภทโดยไม่ตอบคำถามใด ๆ ข้างต้นควรถูกมองว่าเป็นคนโง่ ข้อความเช่นนั้นไม่มีที่ในด้านวิศวกรรม ในทางการเมืองและห้องสนทนาเด็กและเยาวชนอาจจะ แต่ไม่ใช่ในด้านวิศวกรรม

ประการที่สองคนโง่ที่เข้าใจผิดส่วนใหญ่ร้องไห้เกี่ยวกับ Java ที่ช้าเพราะ ZOMG คราสของพวกเขาใช้เวลานานในการลุกขึ้น (gee โหลดสิ่งที่มีปลั๊กอินทั้งหมดและคาดเดาว่าจะเกิดอะไรขึ้น) คนโง่เหล่านี้ส่วนใหญ่ไม่รู้ด้วยซ้ำว่า เพื่อปรับ jvm สำหรับ eclipse ให้ทำงานเร็ว (หรือสำหรับแอ็พพลิเคชัน Java ใด ๆ สำหรับเรื่องนั้น) นั่นคือพวกเขาไม่มีเงื่อนงำเกี่ยวกับการปรับแต่งประสิทธิภาพซึ่งเป็นความจริงไม่ใช่แค่สำหรับ Java แต่สำหรับระบบที่ไม่สำคัญไม่ว่าจะเป็นฮาร์ดแวร์หรือซอฟต์แวร์ ดังนั้นที่นั่นพวกเขาปลดอาวุธตัวเองสำหรับความถูกต้องทางเทคนิคใด ๆ ในการทำงบไม่สนใจดังกล่าว

ประการที่สามมาพิจารณาว่าการพัฒนา Java ส่วนใหญ่มีไว้เพื่ออะไร: back end OLTP ก่อนอื่น ระบบตรวจสอบที่สองมา ระบบประเภทใดประเภทหนึ่งมีวัตถุประสงค์เพื่อให้ทำงานในกลุ่มและทำงานอย่างต่อเนื่องเป็นเวลาหลายสัปดาห์หากไม่ใช่เดือน จริง ๆ แล้วมันเป็นเรื่องสำคัญที่แอพ eclipse หรือของเล่นเล็ก ๆ ของคุณใช้เวลาหนึ่งหรือสองนาทีในการโหลดเมื่อวัตถุประสงค์ของแอปพลิเคชัน REAL Java เพื่อให้ทำงานเป็นระยะเวลานาน? บริบทบุคคลบริบท

สุดท้ายกระดูกสันหลังของ OLTP บน Google และ Ebay ทำงานบน Java ฉันจะใช้มันเป็นข้อพิสูจน์โดยแย้งว่า Java ไม่ช้า (อย่างน้อยสำหรับเงื่อนไขที่สำคัญไม่ใช่สำหรับการทดลองของเล่นเล็ก ๆ น้อย ๆ การทดสอบและหลักฐานประกอบบันทึกย่อที่พิสูจน์ไม่ได้ทำโดยเฉพาะเพื่อจุดประสงค์ในการพูดว่า "tehe X ช้า

มีวิศวกรรมและมีแฟนบอย เดาว่าหมวดหมู่ข้อความเช่นนี้เป็นของใคร?


19
ถ้าฉันต้องจูน JVM ของฉันเพื่อให้ Java ทำงานได้อย่างรวดเร็วในขณะที่ฉันไม่จำเป็นต้องปรับแต่งอะไร (ยกเว้น-O2) เพื่อให้ C ++ ทำงานได้อย่างรวดเร็วและยอมรับได้ Java นั้นช้า
David Thornley

@David - ข้อความที่ชัดเจน ทุกคนรู้ว่า Java ช้ากว่า C ++ ที่ไม่ได้มีเหตุผลตามว่ามันช้าอย่างไรก็ตาม การกล่าวถึงธง gcc ไม่ได้ให้ความคิดเห็นที่ถูกต้อง มันระบุว่าit is slower than something else.เสือจากัวร์ช้ากว่าเสือชีต้า นั่นทำให้อดีตslowหรือไม่ ลองใช้ความเป็นกลางทางวิศวกรรมและถามตัวคุณเองว่า: ใครสามารถประกาศarbitrarilyอย่างเป็นslowเหตุเป็นผลได้ว่าบางสิ่งเป็นเพียงเพราะit is slowerสิ่งอื่นwithout mentioning a context of operationsที่กำหนดว่าอะไรคืออะไรfast enoughและเพื่ออะไร มีเหตุผลไหม?
luis.espinal

5
@ luis.espinal: ฉันตอบกลับด้วยเหตุผลของคุณ # 2: ผู้คนพูดว่า Java ช้าเพราะในความเห็นของคุณพวกเขาล้มเหลวในการปรับแต่ง Java โปรดสังเกตการใช้งานของฉัน "เร็วพอ" สำหรับฉันมันดูเหมือนว่าบางสิ่งที่ไม่ "เร็วพอยอมรับได้" นั้นช้าและฉันคิดว่าบางสิ่งที่ผู้คนเรียกร้องเป็นประจำช้าไม่น่าจะยอมรับเร็ว
David Thornley

4
@luis espinal คุณดูเหมือน Kant :) ผู้คนที่นี่ได้ตั้งสมมติฐานโดยนัยว่าช้าหมายถึงช้ากว่าเมื่อเปรียบเทียบกับภาษาอื่น ๆ ที่ใช้งานได้จริงเช่น C ++ (จำฟิสิกส์ได้ไหม?) เมื่อคุณวัดพลังงานที่อาจเกิดขึ้นคุณจะวัดด้วยความสัมพันธ์กับพื้นดิน ตอนนี้ไปตามหลักไวยากรณ์ของคุณ "X is dumb" ไม่มีมูลความจริง และ "X นั้นโง่กว่า Knuth" ไม่ได้ทำให้ X เป็นใบ้แน่นอนเพราะทุกคนสามารถเป็น X ได้ที่นี่ ฉันเห็นด้วยว่าการเรียก lang lang นั้นไม่ใช่ยอด แต่คนที่นี่ที่บอกว่าไม่ใช่ "โง่" แต่เพิ่งเกิดขึ้นเพื่อทำข้อตกลงโดยปริยาย
yati sagade

1
@luis hahaa .. การสังเกตที่ดี (ความเชื่อของฉันที่ว่าคุณคือวิญญาณของคานท์นั้นแข็งแกร่งยิ่งขึ้น;)) และการสนทนาเช่นนี้จบลงที่สงครามเปลวไฟและการกดแป้นที่ไม่ก่อผล ... ตามที่ฉันคนหนึ่งควรติดอยู่กับสิ่งที่ดูเหมือนว่าเป็นเครื่องมือที่ดีที่สุด งานในมือ เห็นด้วย Kant2? : P
Yati sagade

8

เพราะเราสามารถปิดหัวข้อนี้ครั้งแล้วครั้งเล่าได้หรือไม่?

https://days2011.scala-lang.org/sites/days2011/files/ws3-1-Hundt.pdf [เลื่อนลงไปที่ตาราง Java เป็น 3.7-12.6 เท่าช้ากว่า C ++ วิจัยโดยพนักงานของ Google]

PS: ถ้าไม่ใช่ให้ตั้งชื่อฉันอย่างน้อยหนึ่งแอพ Java เร็ว ๆ สำหรับการเริ่มต้น แต่ไม่เคยเห็นมาก่อน


6
โปรดสรุปเนื้อหาของ PDF ในคำตอบของคุณ
อดัมเลียร์

1
บทความนี้อยู่ไกลจากมาตรฐานการวิจัยทางวิทยาศาสตร์มาก มันไม่ได้เปรียบเทียบอัลกอริทึมและการปรับให้เหมาะสมที่เหมือนกันในทุกภาษา "E. Java Tunings Jeremy Manson นำประสิทธิภาพของ Java มาใช้กับรุ่น C ++ ดั้งเดิมรุ่นนี้ถูกเก็บไว้ในไดเรกทอรี java_pro โปรดทราบว่า Jeremy จงใจปฏิเสธที่จะปรับรหัสให้เหมาะสมอีกต่อไปการเพิ่มประสิทธิภาพ C ++ จำนวนมากจะใช้กับ Java เวอร์ชั่นเช่นกัน " jeremymanson.blogspot.com/2011/06/scala-java-shootout.html
Piotr Kolaczkowski

6

TMHO นี้เป็นเพราะเวลาที่จำเป็นในการเริ่มต้น VM ในเบราว์เซอร์ หากแอปพลิเคชั่นเริ่มช้าผู้คนจะจำได้แค่นั้น เพราะเวลาเริ่มต้นที่ยาวนานนั้นน่ารำคาญจริงๆ จริงๆ. หนึ่งในเพื่อนร่วมงานของฉันบอกฉันว่าเขาไม่ได้ใช้ Firefox เพราะมันช้าเกินไป (?!?) แต่ใช่แล้วตกลงบน windows Firefox ใช้เวลาเป็นจำนวนมากในการแสดง แอพนี้ช้าเขาทำให้ความคิดของเขาเกี่ยวกับความเร็วทั่วไปของมัน


นั่นเป็นสาเหตุที่ Mozilla ใช้ความพยายามอย่าง
ยิ่งยวด

2
มันอาจกลายเป็นเหมือน Windows ใช่หลังจากที่คุณลงชื่อเข้าใช้คุณจะเห็นเดสก์ท็อปอย่างรวดเร็ว แต่คุณยังต้องรอสักครู่เพื่อให้เครื่องตอบสนอง
Bart van Heukelom

6

ช้าเมื่อเทียบกับอะไร ฉันคิดว่าจะเปลี่ยนจาก Ruby ธรรมดาเป็น JRuby (ruby จาก Java) เพราะฉันได้ยินมาเร็วกว่า


1
JRuby เป็นเร็วกว่าทับทิมแม้ใน 1.9 อย่างไรก็ตามช่องว่างกำลังปิด
Dan Rosenstark

2
+1 สำหรับการชี้ปัญหาใหญ่ แม้ว่าฉันจะบอกว่า OP อาจเปรียบเทียบกับ C # หรือ C ++
Billy ONeal

@ ใช่คุณกำลังชี้ให้เห็นว่า CRuby กำลังติดต่อกับ JRUby อยู่ใช่ไหม?

6

ความคิดเห็นคือความคิดเห็นและข้อเท็จจริงคือข้อเท็จจริง

นี่คือความจริงจาก Google Code Jam ที่ท้าทายให้โปรแกรมเมอร์เขียนโปรแกรมเพื่อแก้ปัญหาการคำนวณที่ยากลำบากในช่วงเวลาสั้น ๆ ซึ่งหมายความว่าประสิทธิภาพของภาษาที่พวกเขาใช้มีบทบาทสำคัญ:

ในระหว่างรุ่นที่ผ่านมา (2009, 2010, 2011) ประมาณ 75% ของโปรแกรมเมอร์ที่มาถึงรอบสุดท้ายใช้ C ++ แทนการใช้ Java ประมาณ 15%

แหล่งที่มา -> http://www.go-hero.net/jam/


3
สิ่งนี้พิสูจน์ให้เห็นว่า Java สามารถทำให้การแข่งขันเป็นไปได้อย่างรวดเร็ว แต่คนส่วนใหญ่เลือก C ++
อดัมเลียร์

3
"แก้ปัญหาการคำนวณที่ยากลำบากในระยะเวลาอันสั้น" - อะไรเวลาที่ใช้ในการเขียนรหัสหรือเวลาที่ใช้ในการเรียกใช้รหัส? ไม่ว่าข้อเท็จจริงของคุณคือ - ข้อเท็จจริง - สิ่งที่เกี่ยวข้องกับคำถามคืออะไร คุณได้ข้อสรุปจากข้อเท็จจริงของคุณหรือไม่?
occulus

ซึ่งอาจเป็นเพราะ 75% ของคนเขียนโปรแกรมที่ทำให้รอบสุดท้ายคิดว่า Java ช้าโดยไม่ต้องทำการทดสอบดังนั้นจึงใช้ C ++ แทนเพราะพวกเขาเชื่อว่ามันรวดเร็วโดยไม่ต้องทำการทดสอบเลย
jwenting

4

ในปี 1997 ฉันใช้ HP Vectra VE (200 MHz) และ Windows 95 แอปพลิเคชันส่วนใหญ่ทำงานได้อย่างรวดเร็ว แต่ฉันลองใช้แอปพลิเคชั่นบางตัวที่เขียนด้วย Java (IDEs ถ้าฉันจำได้ถูกต้อง) พวกเขาช้ามากอย่างน้อยก็ส่วน GUI ของพวกเขา พวกเขาใช้เวลานานในการเริ่มต้นและองค์ประกอบ GUI (เช่นเมนู) ไม่ตอบสนองมาก - มีความล่าช้าในการตอบกลับด้วยภาพ นอกจากนี้เนื่องจากแอปพลิเคชัน Java GUI มี (มี) รูปลักษณ์ที่ค่อนข้างโดดเด่นฉันเรียนรู้ที่จะเชื่อมโยงรูปลักษณ์นี้ (และ Java) กับประสิทธิภาพที่ไม่ดี


2
ฉันจำได้ว่าปี 1997! ปีที่ยอดเยี่ยมแม้ว่าไวน์จำนวนมาก - และการสังเกต - ตั้งแต่ปี 1997 จะไม่สามารถใช้งานได้อีกต่อไป
Dan Rosenstark

1
ฉันจำได้ว่าปี 1997 เช่นกัน Windows เกิดข้อผิดพลาดตลอดเวลาและจำเป็นต้องบูตเครื่องใหม่เมื่อติดตั้งไดรเวอร์ เศษขยะ.

และคุณไม่ได้เปลี่ยนความคิดเห็นของคุณในปี 1997? คุณสังเกตเห็นหรือไม่ว่าปี 2554 แตกต่างจากปี 1997 โดยสิ้นเชิง?
Jesper

5
การวิเคราะห์ของฉันจากข้อมูลนี้น่าจะเป็นปี 1997 ที่ถูกดูด
JasonTrue

4

ขึ้นอยู่กับว่าคุณหมายถึงว่าช้า

ก่อนอื่นจาวามีความคืบหน้ามากมายและเร็วมากในกรณีส่วนใหญ่ แต่:

  • Java ช้าเมื่อเริ่มต้นเนื่องจากคุณต้องโหลด JVM ก่อนที่จะทำอะไร
  • คุณสมบัติความปลอดภัยบางอย่างสามารถฆ่าการแสดงในบางกรณี ตรวจสอบที่ถูกผูกไว้ด้วยการเข้าถึงแบบสุ่มเป็นตัวอย่าง
  • ทำให้บางสิ่งบางอย่างรวดเร็วในจาวาต้องทำงานกับ JVM (เพื่อใช้ประโยชน์จากบรรทัดแคชสำหรับตัวอย่าง)
  • การขาด metaprogramming บ่งบอกถึงความผิดทางอาญาในเวลาทำงานกับสิ่งที่เป็นนามธรรมแต่ละครั้งดังนั้นประสิทธิภาพจึงมาจากต้นทุนการออกแบบในหลายกรณี
  • Java แทบจะไม่สามารถมั่นใจได้ว่าข้อ จำกัด ตามเวลาจริง - โดยการออกแบบ - และบางคนอาจถือได้ว่า "กำลังช้า"

อย่างไรก็ตาม Java ในบางกรณีเร็วกว่าวานิลลา C / C ++ แต่ภาษาเหล่านั้นให้เครื่องมือในการปรับแต่ง

Java เป็นภาษาโปรแกรมที่มุ่งเน้นการเพิ่มผลผลิต ตอนนี้มันเร็วพอสำหรับแอปพลิเคชั่นส่วนใหญ่ แต่ไม่เพียงพอสำหรับแอปพลิเคชันอื่น ๆ

โดยทั่วไปความเชื่องช้าของจาวาเป็นข้อโต้แย้งที่มากเกินไปเพราะส่วนใหญ่ไม่เกี่ยวข้อง


2

โค้ด Javaical แบบธรรมดามีแนวโน้มว่าจะเทียบเท่าหรือเร็วกว่าโค้ด C / C ++ / D แบบมาตรฐานซึ่งเป็นที่ยอมรับ รหัสธรรมดาซึ่งเป็นที่ยอมรับมีแนวโน้มที่จะทำการจัดสรรหน่วยความจำจำนวนมากโดยไม่จำเป็นไม่ได้ถูกปรับไปยังสถาปัตยกรรม CPU ใด ๆ โดยเฉพาะอย่างยิ่งไม่ได้มีการปรับระดับต่ำให้เหมาะสมมากเกินไปเป็นต้น HotSpot GC ของ Java ดีกว่าสิ่งที่คอมไพเลอร์สแตติกสามารถทำได้

ในทางกลับกันหากคุณต้องการประสิทธิภาพจริงๆและยินดีที่จะปรับแต่งสิ่งต่างๆเพื่อให้ได้ C / C ++ / D จะมอบโอกาสมากมายให้กับสิ่งนี้ คุณไม่สามารถใช้แอสเซมเบลอร์แบบอินไลน์ใน Java คุณไม่สามารถใช้เคล็ดลับการสะกดคำแบบสกปรกเพื่อจัดการกับจำนวนจุดลอยตัวเป็นอาร์เรย์ของบิต คุณไม่สามารถใช้รูปแบบการจัดการหน่วยความจำที่กำหนดเองซึ่งอาจเร็วกว่า GC สำหรับกรณีการใช้งานเฉพาะของคุณ คุณไม่สามารถจัดสรรสแต็กใน Java ได้ใกล้เคียงกับ C / C ++ / D ใน Java วิธีเดียวที่จะได้รับสิ่งที่เทียบเท่ากับฟังก์ชั่นการสั่งซื้อที่สูงกว่าคือการเชื่อมต่อและการเชื่อมโยงรันไทม์ ใน D และ (ฉันคิดว่าแก้ไขให้ถูกต้องถ้าฉันผิด) C ++ คุณสามารถส่งผ่านฟังก์ชั่นไปยังเทมเพลตช่วยให้การรวมเกิดขึ้นในเวลาคอมไพล์โดยไม่สูญเสียความยืดหยุ่น


5
คุณสามารถระบุความคิดเห็นเหล่านั้นได้หรือไม่ คือมาตรฐานใดที่แสดงรหัสมาตรฐานในแต่ละภาษาที่แสดงว่า Java เร็วขึ้น?
Billy ONeal

1

อีกจุดสำหรับ "ความช้า" ของ Java คือ 64 บิตรันไทม์

ฉันได้ยินบางคนบ่นว่า Java ช้ามากสำหรับพวกเขาในคอมพิวเตอร์ 64 บิต ตามที่ปรากฎว่ารันไทม์ 64 บิต Java ใช้เซิร์ฟเวอร์ JVM ซึ่งรวบรวมโปรแกรมทั้งหมดก่อนที่จะเริ่ม

นี่คือคำอธิบายว่าทำไม 64bit VM เริ่มช้าลง

ตัวอย่างเช่นบน Windows:

C:\> java -version  
java version "1.6.0_21"  
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)  
Java HotSpot(TM) 64-Bit Server VM (build 17.0-b16, mixed mode)  

3
VM เซิร์ฟเวอร์ช้าลงในการเริ่มต้น แต่ไม่ได้รวบรวมโปรแกรมทั้งหมดก่อนเริ่มต้น ไม่สามารถโหลดคลาสได้อย่างเกียจคร้านและอาจเกิดจากการสะท้อนกลับดังนั้นจึงไม่มีวิธีที่จะรู้ล่วงหน้าว่าไบต์ใดที่จำเป็นต้องมีการรวบรวมโดยกำเนิด
Dan Dyer

@Dan Dyer หลังจากการวิจัยบางอย่างดูเหมือนว่าฉันเข้าใจผิดสิ่งที่ฉันอ่าน ฉันหมายความว่า Server VM เพิ่มประสิทธิภาพมากขึ้นในขณะที่ไคลเอนต์ได้รับการปรับให้เหมาะสมสำหรับการเริ่มต้นอย่างรวดเร็วและใช้หน่วยความจำขนาดเล็ก
AndrejaKo

เซิร์ฟเวอร์ VM ได้รับการปรับให้เหมาะสมสำหรับกระบวนการที่ใช้เวลานานดังนั้นโหลดล่วงหน้ามากขึ้นซึ่งนำไปสู่เวลาเริ่มต้นที่ยาวนานขึ้นและมีแนวโน้มที่จะใช้ RAM เพิ่มขึ้น ไคลเอ็นต์ VM ได้รับการปรับให้เหมาะสมที่สุดสำหรับช่วงเวลาการเริ่มต้นและเวลาเริ่มต้นที่ต่ำกว่า แต่อาจมีประสิทธิภาพการทำงานที่ลดลง
jwenting

0

ประสิทธิภาพของจาวาเป็นแบบอัตนัยอย่างไรก็ตามการรับรู้ว่าทำไม Java จึงช้าเป็นส่วนใหญ่ด้วยเหตุผลที่คนอื่นสังเกต: คนส่วนใหญ่รับรู้บางสิ่งบางอย่างเป็นสีจากประสบการณ์ก่อนหน้าของพวกเขากับมันและ Java ไม่ได้เป็นภาษาที่ดีที่สุดเสมอ เครื่องดูดควัน ในทำนองเดียวกันวานิลลา Eclipse ไม่ได้เป็น IDE ที่รวดเร็วในการทำงานกับและ pales ในแง่ของการตอบสนองเมื่อเทียบกับ IDE เช่น Visual Studio

ที่กล่าวถึงว่านอกเหนือจากปัญหา UI ที่ Java มีตอนเริ่มต้นแล้วมันเร็วพอสำหรับแอปพลิเคชันส่วนใหญ่ หากคุณค้นหาคุณสามารถค้นหาบทความที่เปรียบเทียบกับภาษาอื่น ๆและผลลัพธ์ส่วนใหญ่ที่นำเสนออยู่ในช่วงที่จะเป็นปัญหาเฉพาะเมื่อคุณจัดการกับชุดข้อมูลหลัก

ในฟิลด์ bioinformatics นั้นใช้ค่อนข้างน้อยเพราะได้รับการสนับสนุนเป็นอย่างดีและมีฐานการติดตั้งอยู่แล้วหนึ่งในข้อดีที่ Java มีคือคุณสามารถทำการพัฒนาที่ค่อนข้างรวดเร็วด้วยสิ่งที่คุณทำกับ C ไม่ได้ หากคุณดูภาษาที่ใช้สำหรับชีวสารสนเทศศาสตร์ (โดยส่วนตัวแล้วฉันใช้ R, Python และ Java เป็นประจำ) คุณจะทราบว่าไม่มีภาษาใดที่เร็วที่สุดและไม่แปลกที่ชุดข้อมูลในชีวสารสนเทศจะทำงานเป็น 100 จากกิกะไบต์ของข้อมูล ในตอนท้ายของวันเวลาของมนุษย์ยังคงมีค่ามากขึ้นและในขณะที่ความแตกต่างของความเร็วจะสังเกตเห็นได้ขนาดของชุดข้อมูลมีแนวโน้มที่จะใหญ่พอที่จะทำงานข้ามคืนได้

ถ้าง่ายต่อการเขียน UI เร็ว ๆ ใน Java มันค่อนข้างเหมือนกับว่าการรับรู้ความเร็วจะตกหล่นเรดาร์เนื่องจากคนส่วนใหญ่ไม่ได้ใช้ภาษามากพอที่ความเร็วจะเป็นปัญหาในชีวิตประจำวัน


0

ในการโยนเหรียญไร้ค่าฉันพบว่า Java webapps โดยทั่วไปมีเวลาเริ่มต้นและเวลาตอบสนองนานซึ่งฉันคิดว่า Python หรือ Ruby น่าจะทำได้ดีกว่า

ฉันใช้ Eclipse สำหรับการเขียนโปรแกรมส่วนใหญ่ของฉันและฉันต้องบอกว่า Java เร็วพอ ๆ กับสิ่งอื่นถ้าไม่เร็วกว่าการรันในเครื่องและ "สแตนด์อะโลน"


1
ในเว็บการเริ่มต้นใช้งานไม่ใช่สิ่งสำคัญ มันเป็นการสิ้นเปลืองทรัพยากรและความยืดหยุ่นที่สำคัญที่สุด
Berin Loritsch

-7

ฉันจะบอกว่า Java ช้าไม่สิ้นสุดไม่เพียง แต่เฉื่อยเพราะไม่สามารถแก้ปัญหาง่าย ๆ ซึ่งง่ายในภาษาระดับสูงจริง

ขอยกตัวอย่างง่ายๆ มีการเพิ่มประสิทธิภาพอย่างง่ายซึ่งใช้เมื่อทำการแมปรายการสองครั้งเรียกว่าการตัดไม้ทำลายป่า: นี่คือกฎสำหรับการเขียนในภาษาของฉัน Felix:

reduce deforest[T,U,V] (f:T->U, g:U->V, x:list[T]): 
  map g (map f x) => map (compose(g,f)) x
;

ซึ่งบอกว่า: แทนที่จะทำแผนที่รายการ x ด้วย f จากนั้นจึงทำการจับคู่กับ g อีกครั้งโดยใช้รายการสำรวจเส้นทางสองรายการและสร้างรายการชั่วคราวขยะเพียงแมปรายการด้วยองค์ประกอบของฟังก์ชั่น

นี่เป็นการเพิ่มประสิทธิภาพระดับสูงอย่างมีนัยสำคัญมากกว่าประสิทธิภาพระดับต่ำของ Java JVM สเปคที่ฉันให้ไว้ข้างต้นไม่ได้เป็นเพียงแค่รูปแบบสวย ๆ เท่านั้นนี่เป็นคำสั่งที่ เขียนโดยผู้ใช้ที่บอกคอมไพเลอร์ของเฟลิกซ์ว่าจะทำการปรับให้เหมาะสมได้อย่างไร

โปรดแสดงวิธีทำสิ่งนี้ใน Java ไม่มี? จากนั้น Java ก็ช้า ช้ามาก. [Haskell สามารถทำสิ่งนี้ได้โดยอัตโนมัติฉันเชื่อว่า]

และก่อนที่คุณจะพูดว่า "แต่ Java เป็นภาษา OO การเพิ่มประสิทธิภาพแบบนี้ไม่ได้ใช้" .. นั่นคือประเด็นของฉัน Java ดูดและการ OO เป็นหนึ่งในเหตุผลหลัก

การเพิ่มประสิทธิภาพของ JIT นั้นไม่สามารถใกล้เคียงกับการแข่งขันกับประเภทของการเพิ่มประสิทธิภาพที่คอมไพเลอร์ที่เหมาะสมสามารถทำได้


3
ฉันไม่รู้ว่าโค้ดของคุณทำอะไรที่นั่น และถ้าคุณบอกว่าทั้งภาษาช้าเพราะไม่สามารถทำการปรับให้เหมาะสมเพียงหนึ่งเดียวได้มีปัญหาอื่น ๆ ที่นี่
TheLQ

7
-1 ขุดคำถามเก่าและทุบตีภาษาด้วยข้อโต้แย้งที่อ่อนแอมาก บอกฉันถ้าคุณต้องการการเขียนอย่างละเอียดเกี่ยวกับเหตุผลของคุณ สำหรับผู้เริ่มต้นการตั้งชื่อ OO เป็นเหตุผลหลักที่มันไม่ได้มีวัตถุประสงค์มากและประสิทธิภาพของพฤตินัยของ JVM + JIT นั้นดีมากแม้ว่าจะมีการเพิ่มประสิทธิภาพที่เหลืออยู่

8
Haskell ช้ากว่า Java สำหรับแพลตฟอร์มหลักของเราอย่างมากเพราะมันไม่ได้รับการแจ้งความกับแพลตฟอร์มดังกล่าวดังนั้น Haskell จึงดูด ...

1
@ Thorbjørn Ravn Andersen ฉันหวังว่าฉันจะให้ +1 สำหรับการสังเกตนั้น
Patrick Hughes
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.