Tags:
.NET

ที่ BentUser มีการทดสอบประสิทธิภาพสองแพลทฟอร์มคู่กัดในการพัฒนาโปรแกรมยุคใหม่ .NET 2.0 และ Java 1.5 ผลสรุปว่า .NET ชนะ 2 ใน 3 การทดสอบ รายละเอียดเกี่ยวกับการทดสอบอ่านได้จากลิงก์ข้างต้น

ก่อนที่แฟนๆ ทั้งฝ่าย Java และ .NET จะทะเลาะกันเช่นเดียวกับฟอรัมอื่นๆ ขอให้นึกไว้เสียว่า การทดสอบ benchmark แบบนี้ไม่มีผลที่ถูกต้องแท้จริงอยู่แล้ว benchmark เป็นเครื่องมือในการยืนยันความเชื่อซะมากกว่า ยิ่งไม่ต้องลืมว่า benchmark สามารถโกงได้อีกด้วย (nVidia ทำมาแล้วนะครับ)​ดังนั้นอ่านเอาความรู้เฉยๆ ดีกว่าครับ

การทดสอบจะเป็นกลางขนาดไหนไม่รู้ แต่ผมค่อนข้างชอบข้อสรุปของบทความนี้ คือ .NET และ Java ทำให้การเขียนโค้ดง่ายขึ้นจริง แต่โปรแกรมที่เราใช้อยู่ทุกวี่วันยังเป็น C/C++ กันทั้งนั้น การใช้แพลทฟอร์มในการพัฒนาแบบ dynamic ที่มี managed code ต้องแลกมาด้วยข้อเสียในเรื่องประสิทธิภาพอยู่แล้ว เมื่อเทียบกับ native ถ้าคุณตัดสินใจเลือก Java/.NET ด้วยเหตุผลด้านความง่ายในการพัฒนาตั้งแต่แรก เรื่องประสิทธิภาพก็ไม่ต้องใส่ใจมากมายครับ

Comments

By: lew
FounderJusci's WriterMEconomicsAndroid
lew's blog
on 05/11/05 22:57 #2092 toggle
lew's picture

โดยส่วนตัวที่ใช้งานมาเองรู้สึกว่า .NET เร็วกว่าตั้งนานแล้ว แต่เรื่องนี้ก็คงมีข้อโต้แย้งว่า Java นั้นเป็น Platform-Independent อย่างแท้จริง มากกว่า .NET

ลองสองแพลตฟอร์มนี้มานาน ผมกลับรู้สึกว่าโลกเดสก์ทอปยังไม่พร้อมสำหรับ Managed Code พวกนี้เลย เพราะที่ว่าความเร็วเครื่องในวันนี้สูงพอที่จะเอามาจ่ายเป็น Overhead นั้นดูเหมือนยังไม่จริงซักเท่าใหร่

เคยพยายามพอร์ตตัวเองไปอยู่ Java มาพักหนึ่ง พบว่าโปรแกรมต่างๆ เมื่อใช้รวมๆ กันแล้ว เครื่องแทบจะเดี๊ยงเอา วันนี้โปรแกรมที่ใช้แล้วเหลือรอดก็มีแต่ jEdit ที่กำลังวางแผนจะเอาออกเพราะมันกินแรมผมไป 40 เมก มันมากเกินไปสำหรับ Text-Editor

เรื่องการโกงก็เคยเจอมาบ้างที่การ์ดจอ Asus มีการ Overclock มาจากโรงงานเลย ส่วนพวก Benchmark นี่โกงกันตั้งแต่ผมยังไม่เริ่มจับคอมเลยก็มีมาแล้ว


LewCPE's Google+

By: plynoi (not verified)
plynoi's blog
on 06/11/05 0:30 #2093 toggle
plynoi's picture

ตามอยู่ที่ OSNEWs เหมือนกับครับ(ตอบไป 2 reply) มันเป็นเปรียบเทียบ .NET2.0 กะ Java 5 ซึ่ง .NET 2.0 ออกหลัง Java 5 ตั้งนาน(เกือบๆครึ่งปี ถึงปีนึงด้วยซ้ำ) ถ้ามันไม่ดีกว่าก็ให้มันรู้ไปครับ

ป.ล. โกง VGA ATI ก็ทำนะ

By: Anonymous (not verified)
Anonymous's blog
on 06/11/05 1:38 #2094 toggle
Anonymous's picture

โลกนี้ยังมีคนไช้ apple กะ linux .net คงไม่สามารถยึดครองตลาดใด้แบบ ie .... แต่ .net ก็เร็วกว่า java จริงๆ java น่าจะทำโปรแกรมใหม่ให้ไปคำนวณที่เครื่องตัวเองแบบ .net เพื่อการชนะที่สมบูรณ์

By: deans4j
deans4j's blog
on 06/11/05 6:20 #2095 toggle
deans4j's picture

ก็ว่ากันไปครับ บทความถ้าออกจากฝั่ง microsoft จะให้บอก Java ชนะ มันก็ยังไงๆ อยู่

ของอย่างนี้ก็ bias กันไป ทีใครทีมันครับ ตามไปอ่านมาแล้ว ปรากฏว่า การทดสอบแบ่งเป็น 3 การทดสอบดังนี้

- ความเร็วของการทำงาน โดยเน้นที่การใช้ memory หนักๆ โดยใช้ selection sort ซึ่งเป็นการ sort แบบไม่ค่อยมีประสิทธิภาพ เพราะต้องใช้ memory สูง

การทดสอบนี้ .Net ชนะไป

- การทดสอบที่สอง เป็นการทดสอบประสิทธิภาพของการจัดการ memory ทดสอบโดยแข่งกัน allocate สร้าง float 100,000 ตัว ใครเสร็จก่อนชนะ

การทดสอบนี้ Java ชนะไป

- การทดสอบที่สาม เป็นการตบหัว Java อีกรอบโดยเป็นเรื่องเดิมคือการ ทดสอบประสิทธิภาพของการจัดการ memory ในการใช้งานแบบ real world application

ต้องกล่าวเพิ่มเติมหน่อยตรงที่ .Net กับ Java นั้น implement native type แตกต่างกัน Java ถ้าเป็น native type จะไม่ใช่ Object type คือถ้าจะใช้งานแบบให้เป็น Object type ต้องใช้ Wrapper Class มาหุ้มอีกทีนึงก่อน

แตกต่างจาก .Net ที่ treat เจ้า native type ต่างๆ เหมือนเป็น object type จริงๆ

ผลการทดสอบก็ออกมาตามคาด .Net ก็ชนะไป

ส่วนตัวมองการทดสอบนี้ไม่ค่อย แฟร์ เท่าไหร่ เหมือนรู้อยู่แล้วว่า Java มีจุดอ่อนตรงไหน ก็ไปทำ benchmark ตรงนั้นซะงั้น

By: wiennat
Writer
wiennat's blog
on 06/11/05 10:14 #2098 toggle
wiennat's picture

ไม่ค่อยเชื่อผลทดสอบแบบนี้เท่าไหร่

จะใช้อะไรก็ใช้เหอะ


onedd.net

By: MP3WizarD (not verified)
MP3WizarD's blog
on 06/11/05 20:06 #2103 toggle
MP3WizarD's picture

no comment เพราะผมทำงานด้าน graphic เสียมากกว่า.. แต่ยังไงก็แอบเชียร์ java อยู่ลึกๆ ... เพราะผมยังใช้ Apple ทำงานเป็นหลัก

By: TiD (not verified)
TiD's blog
on 06/11/05 22:31 #2106 toggle
TiD's picture

ถ้าไม่สนผล benchmark ครั้งนี้

ผมว่า syntax และ semantic ของ .NET มัน familiar มากกว่า Java สำหรับคนเขียน C มาก่อนอย่างผมนะครับ

และ Java ก็ยังเน้นเรื่อง backward compatible มากไปจนทำให้ประสิทธิภาพลดลงพอสมควร security ก็สู้ .NET ไม่ได้(โดยเฉพาะเรื่อง Generic ของ Java 5 ก็เห็นได้ว่ามันไม่ใช่แค่ประสิทธิภาพลด แต่มันคือรัน code บางแบบไม่ได้เลย)

ซักวันเมื่อเครื่องแรงพอ managed code นี่คงจะเป็นอะไรที่เป็นตัวเลือกอันดับหนึ่งแหละครับ C/C++ นี่ข้อเสียเรื่อง memory management นี่ก็เป็นปัญหากับ programmer พอสมควรเลยนะครับ (เป็นสาเหตุที่ทำให้ผมไม่ใช้ firefox ล่ะครับ)

By: plynoi (not verified)
plynoi's blog
on 07/11/05 2:04 #2107 toggle
plynoi's picture

"Java ก็ยังเน้นเรื่อง backward compatible มากไป"

เห็นด้วยนะคร้าบบบบบบบบบบบบบ ผมลุ้นอยู่ว่าถ้า Sun ยอมรื้อสักรอบ อะไรๆน่าจะดีขึ้นกว่านี้

หรือว่า Java5 ออก Generic มาก่อน เพื่อลองของก่อน MS???

By: sid
Writer
sid's blog
on 07/11/05 11:52 #2114 toggle
sid's picture

ผมว่าโอกาสที่จะริ้อคงยากครับเพราะ Sun เน้นเรื่อง backward compatability ค่่อนข้างมาก แต่ยังไงผมก็ยังเชื่อมั่นในอนาคตของ Java ว่าจะยังดีขึ้นไปเรื่อยๆแน่นอนครับ

ตอนนี้ก็รอ Java 6.0 อยู่อย่างใจจดใจจ่อ

By: teedech
WriterWindows Phone
teedech's blog
on 15/12/05 3:28 #2613 toggle
teedech's picture

ผมคิดว่า นักคอมพิวเตอร์ช่วงหลังๆ จะคำนึงเรื่อง Reliability, Security และ Reusaibility มากกว่า Performance ครับ โดยเฉพาะเรื่อง Project's Success ทำให้ VM มีบทบาทตรงนี้มาก เพราะหลายๆ Application ที่เป็นผลผลิตของนักคอมพิวเตอร์มีปัญหาอย่างหนักที่ 1.ทำไม่ค่อยทัน ยิ่งโครงการเก่ายิ่งแก้บักนาน 2.ตั้งอยู่ได้ไม่นาน (ไม่ค่อยเสถียร) 3.ยากในเรื่อง Portable แม้ Performance จะตกลง แต่ก็แลกมาซึ่งข้อดีอีกหลายอย่าง ผมว่าคุ้มครับ ที่จะใช้ .NET หรือ Java platform ในการพัฒนาซอฟแวร์ ทุกวันนี้การผลิตซอฟแวร์จะต้องเกี่ยวกับเงิน งานวิจัยทาง Software Engineering จึงมีบทบาทในการกำหนดทิศทางของการพัฒนาซอฟแวร์ครับ


VB.NET Programming

By: Gmz
Windows PhoneAndroid
Gmz's blog
on 01/06/06 10:26 #7197 toggle
Gmz's picture

สงสารคนงบน้อยหน่อยซิครับ performance ก็ยังสำคัญนะครับ ก็รอดู jdk 6.0 เนี่ยแหละครับ ว่าจะเร็วขึ้นกว่าเก่าไหม