34 คะแนน โดย xguru 2023-06-29 | 11 ความคิดเห็น | แชร์ทาง WhatsApp
  • มีการเผยแพร่วิดีโอบนทวิตเตอร์ที่เปรียบเทียบความเร็วระหว่างคอมพิวเตอร์เก่าที่รัน Windows NT 3.51 กับคอมพิวเตอร์ใหม่ที่รัน Windows 11 และมันกลายเป็นไวรัลพอสมควร
    • ทั้งคู่ทำการทำงานแบบเดียวกัน: เปิดและปิด Command Prompt, Explorer, Notepad และ Paint
    • บนคอมพิวเตอร์เก่า โปรแกรมทำงานทันที แต่บนคอมพิวเตอร์ใหม่กลับช้า
  • ความหน่วงของส่วนติดต่อผู้ใช้บนคอมพิวเตอร์สมัยใหม่นั้นแย่มาก และกำลังแย่ลงเรื่อยๆ
  • มีคนพูดว่าฮาร์ดแวร์ที่ใช้เปรียบเทียบไม่ยุติธรรม เพราะเป็นเดสก์ท็อปกับโน้ตบุ๊ก (Surface Go)
  • จึงติดตั้ง Windows 2000 บนเครื่อง K7-600 และติดตั้ง Windows 11 บน Mac Pro 2013 (Xeon 6 คอร์ + 32GB) เพื่อเปรียบเทียบใหม่ แต่ผลก็ยังคล้ายเดิม

พัฒนาการของคอมพิวเตอร์

  • ตั้งแต่ยุค 2000 เป็นต้นมา มีความก้าวหน้าในหลายด้าน: กราฟิกที่น่าทึ่ง จอความละเอียดสูง เครือข่ายความเร็วสูงมาก การตัดต่อวิดีโอแบบเรียลไทม์ เป็นต้น
  • ฝั่ง I/O ก็พัฒนาไปมากเช่นกัน โดยในระบบสมัยก่อน ดิสก์ I/O มักเป็นจุดอ่อนที่สุดเสมอ
    • ฟลอปปีดิสก์ไม่น่าเชื่อถือและช้า, CD/DVD เชื่อถือได้มากขึ้นแต่ก็ยังช้า, และ HDD เป็นคอขวดของหลายสิ่ง
    • Random I/O เริ่มชนขีดจำกัดทางกายภาพ
  • เมื่อ SSD ปรากฏขึ้นและเริ่มถูกใช้บนเดสก์ท็อป ก็เริ่มแก้ปัญหา Random I/O นี้ได้
    • อยู่ๆ ทุกอย่างก็เร็วขึ้น: การบูต, การโหลดเกม, การเปิดโฟลเดอร์ที่มีไฟล์จำนวนมาก...
  • การติดตั้งฮาร์ดแวร์ใหม่ก็สะดวกขึ้น การเชื่อมต่อไร้สายกลายเป็นเรื่องทั่วไป และข้อความ/แอปก็รองรับสากลมากขึ้น (ยอมรับว่า Unicode ไม่ได้ง่ายและไม่ได้ถูกเสมอไป)
  • หลายอย่างดีขึ้น และเรามีพลังมากกว่าที่เคย หากไม่เป็นเช่นนั้น เราคงทำสิ่งอย่างการประมวลผลภาพด้วย ML บนโทรศัพท์มือถือเล็กๆ ซึ่งในยุค 2000 คงนึกไม่ถึงไม่ได้

ความหน่วงที่เลวร้าย

  • แต่ไม่มีความก้าวหน้าใดเลยที่อธิบายได้ว่าทำไม UI latency ถึงได้ช้ามากอย่างรุนแรงในทุกวันนี้
  • ความก้าวหน้าของฮาร์ดแวร์ควรทำให้สถานการณ์นี้ดีขึ้นสิ

ตัวอย่าง

  • จนไม่นานมานี้ Notepad ยังเป็นแอปเนทีฟและเปิดได้เร็ว แต่พอถูกเขียนใหม่เป็นแอป UWP ก็ช้าลง ช้ามากขึ้น แต่ก็ยังขาดฟีเจอร์อยู่ดี เป็นความช้าลงที่ผู้ใช้ไม่ได้ประโยชน์อะไรเลย
  • Windows Terminal ดีกว่าสมัยก่อนมาก แต่ก็หนักอย่างสังเกตได้ชัด หากเพิ่ม PowerShell เข้าไป อาจต้องใช้เวลาหลายวินาทีกว่าจะเปิดหน้าต่างเทอร์มินัลใหม่ เว้นแต่จะใช้ฮาร์ดแวร์ระดับสูงมาก
  • macOS ดีกว่า Windows แต่ก็ยังมีปัญหา ความเร็วในการเปิดหน้าต่าง Settings บนเครื่องเก่ากลับเร็วกว่าอย่างชัดเจน
  • Linux น่าจะได้รับผลกระทบจากปัญหานี้น้อยที่สุด Fedora Linux 38 ที่ออกในเดือน 4/2023 ยังทำงานได้ดีบนพีซีอายุ 11 ปี แต่สิ่งนี้ก็อาจเป็นภาพลวงตา เพราะเมื่อรันแอปสมัยใหม่ที่ไม่ได้พัฒนามาเพื่อ Linux โดยเฉพาะ เวลาเริ่มต้นแอปก็จะช้าลง และโดยรวมประสิทธิภาพก็ลดลง
  • สิ่งที่ทำให้ฉันตกใจที่สุดคือ ตอนเข้าทำงานที่ Google ในปี 2009
    • ตอนนั้น Google Search และ Gmail มีประสิทธิภาพยอดเยี่ยมและเป็นแบบอย่างให้คนอื่น
    • แต่ฉันตกใจมากเมื่อเห็นว่าเครื่องมือ command line ภายในองค์กรที่ใช้งานกันนั้นช้าแค่ไหน
    • ฉันคิดว่าการที่พวกเขาผลักดันเว็บแอปอย่างไม่หยุดยั้งไม่ว่าจะต้องแลกด้วยอะไรก็ตาม ได้สร้างสถานการณ์ที่เราเผชิญอยู่ในวันนี้

สาเหตุ

  • ทำไมทั้งหมดนี้ถึงเกิดขึ้น? พูดว่าเป็น "Bloat" นั้นง่าย แต่ให้นิยามยาก
    • Bloat อาจถูกมองว่ามีเหตุผลรองรับได้ เพราะแต่ละคนคิดเรื่อง Bloat ไม่เหมือนกัน
  • สิ่งที่ทำให้ทุกอย่างช้าลงคือ "ลำดับความสำคัญ"
    • ไม่มีใครให้ความสำคัญกับประสิทธิภาพอีกแล้ว นอกจากกรณีสำคัญอย่างเกม/การแปลงวิดีโอ
    • สิ่งที่ผู้คน (และบริษัท) ให้ความสำคัญคือ "เวลาของนักพัฒนา": Rust และ Electron
  • การพัฒนาแอปเนทีฟแยกแต่ละแพลตฟอร์มนั้นเป็นงานซ้ำซ้อน จึงเลือกใช้ Electron
    • มันทำให้ทุกอย่างง่ายขึ้น แต่ก็ส่งผลอย่างมากต่อความหน่วงบนเดสก์ท็อป
    • อย่างกรณีของ 1Password หรือ Spotify ก็ถูกเขียนใหม่ด้วย Electron เพื่อให้ประสบการณ์เป็นหนึ่งเดียวและลดต้นทุน
    • แต่การลดต้นทุนเป็นเรื่องเพื่อบริษัท ไม่ใช่เพื่อผู้ใช้
    • การลดต้นทุนนี้เปรียบเหมือนการเก็บภาษีกับพวกเราที่ต้องใช้งานมันทุกวัน
  • อีกการตัดสินใจหนึ่งที่เพิ่ม latency คือการยอมรับภาษาแบบ Managed และ Interpreted ในวงกว้าง
    • JDK/CLR เก่งในการปรับแต่งโปรเซสที่รันระยะยาว แต่เรื่องเวลาเริ่มต้นที่รวดเร็วไม่ใช่สิ่งที่พวกมันจัดการได้ดี

การปรับปรุงแบบครั้งเดียวถูกกลืนหายไป (One-off improvements eaten away)

  • สุดท้ายขอกลับไปพูดถึงความก้าวหน้าของฮาร์ดแวร์ และปิดท้ายด้วยมุมมองเชิง pessimistic
  • การปรับปรุงพิเศษที่ SSD มอบให้นั้นเป็นการเปลี่ยนแปลงแบบครั้งเดียว
    • HDD เร็วขึ้นเรื่อยๆ ก็จริง แต่ไม่สามารถให้ Random I/O ที่รวดเร็วตามที่เดสก์ท็อปต้องการได้
    • การเปลี่ยนไปใช้ SSD เป็นการยกระดับแบบคนละชั้น แต่เราจะได้รับประโยชน์นี้เพียงครั้งเดียวเท่านั้น
    • ไม่มีเทคโนโลยีอื่นที่มอบประสบการณ์พลิกโลกแบบนี้อีกแล้ว
    • ดังนั้นเมื่อประโยชน์จากเทคโนโลยีใหม่นี้ถูกซอฟต์แวร์ที่ประมาทกลืนหายไป เราก็จะกลับไปอยู่ที่เดิม
    • แน่นอนว่า SSD ก็ยังเร็วขึ้นเรื่อยๆ แต่ไม่อาจสร้างความต่างมหาศาลเท่ากับตอนเปลี่ยนจาก HDD มาเป็น SSD
  • คุณพิสูจน์เรื่องนี้ได้เองด้วยการลองใช้ Windows/macOS เวอร์ชันใหม่โดยไม่มี SSD
  • นั่นจึงทำให้ฉันกังวลเกี่ยวกับ Apple Silicon
    • จำประสิทธิภาพอันยอดเยี่ยม แบตเตอรี่ที่ใช้งานได้นานมาก และความเงียบไร้พัดลมตอน M1 เปิดตัวได้ไหม?
    • หากเรายังคงเดินหน้าอย่างประมาท ข้อดีเหล่านี้ก็จะหายไปเช่นกัน และเมื่อถึงตอนนั้นก็อาจสายเกินไป
  • การเสริมประสิทธิภาพให้แอปพลิเคชันที่มีอยู่แล้วนั้นยากมากทั้งในเชิงเทคนิค และแทบเป็นไปไม่ได้เลยที่จะทำให้มันเป็นลำดับความสำคัญภายในองค์กร
  • แล้วสถาปนิกคอมพิวเตอร์จะช่วยเราด้วยการเปลี่ยนแปลงทางเทคโนโลยีครั้งใหญ่อื่นได้ไหม? ฉันไม่อยากพึ่งพาสิ่งนั้น ไม่ใช่เพราะมันอาจเป็นไปไม่ได้ แต่เพราะเราไม่ควรจำเป็นต้องรอการเปลี่ยนแปลงแบบนั้นต่างหาก

เวอร์ชันที่ GN⁺ สรุปไว้ (เก็บไว้เพื่อบันทึก)

  • เธรดบนทวิตเตอร์ที่เปรียบเทียบความตอบสนองของคอมพิวเตอร์เก่ากับใหม่ได้รับ 8.8K ไลก์
  • ในวิดีโอ แอปบนคอมพิวเตอร์เก่าเปิดขึ้นทันที ขณะที่แอปบนคอมพิวเตอร์ใหม่มีความหน่วงอย่างเห็นได้ชัด
  • ผู้เขียนตั้งคำถามว่าทำไมทั้งที่ฮาร์ดแวร์พัฒนาขึ้น แต่ความหน่วงของส่วนติดต่อผู้ใช้บนคอมพิวเตอร์สมัยใหม่กลับแย่ลง
  • เมื่อแก้ข้อบกพร่องในการเปรียบเทียบแล้ว ผลลัพธ์ก็ยังเหมือนเดิม
  • มีการพูดถึงความก้าวหน้าทางเทคโนโลยี เช่น กราฟิก จอความละเอียดสูง และเครือข่ายความเร็วสูง
  • มีการเสนอว่าความหน่วงของส่วนติดต่อผู้ใช้บนคอมพิวเตอร์สมัยใหม่แย่มากและกำลังแย่ลง
  • มีการยกตัวอย่างแอปที่ช้าบน Windows, macOS และ Linux
  • มีการเสนอว่าซอฟต์แวร์ที่หนัก เฟรมเวิร์ก และภาษาแบบ managed เป็นสาเหตุของปัญหาความหน่วง
  • มีความกังวลว่าอนาคตของ Apple Silicon อาจถูกบั่นทอน เพราะข้อดีของ SSD ถูกชดเชยด้วยซอฟต์แวร์ที่ประมาท
  • การปรับปรุงประสิทธิภาพให้แอปพลิเคชันเดิมนั้นยากทั้งในเชิงเทคนิคและเชิงองค์กร
  • ตามมุมมองของสถาปนิกคอมพิวเตอร์ การเปลี่ยนแปลงทางเทคโนโลยีแบบปฏิวัติอาจไม่สามารถช่วยเราได้
  • การทำงานทางไกลไม่ใช่วิธีแก้ปัญหาความหน่วง
  • การพัฒนาโอเพนซอร์สในยุค 90 และ 2000 ก็ทำให้การทำงานแบบกระจายตัวเต็มรูปแบบและอะซิงโครนัสเป็นไปได้อยู่แล้ว
  • ความหน่วงของคอมพิวเตอร์เป็นปัญหามาตั้งแต่อย่างน้อยปี 1977
  • คอมพิวเตอร์ที่ Dan Luu พบว่ามีความหน่วงดีที่สุดเป็นผลิตภัณฑ์จากปี 1983 แต่ไม่สามารถรองรับเวิร์กโหลดสมัยใหม่ได้

11 ความคิดเห็น

 
nuthatch 2023-06-29

พวกเขาเลือกการบำรุงรักษาแทนประสิทธิภาพ และแนวคิดที่จะชดเชยต้นทุนนั้นด้วยพัฒนาการของฮาร์ดแวร์ ก็คงพาเรามาถึงจุดนี้แล้วกระมัง
ตอนที่ MacBook Air ปี 2010 ช้าจนเกินทน ผมก็พยายามติดตั้ง Snow Leopard ลงไป และมันเร็วแบบเหลือเชื่อเลยครับ แน่นอนว่าไม่ได้เอามาใช้งานจริงก็ตาม..

 
googol 2023-06-29

เริ่มรู้สึกแล้วว่าบริษัทต่าง ๆ ไม่ได้ให้ความสำคัญกับประสิทธิภาพเป็นลำดับแรกอีกต่อไปแล้ว

 
anyjava 2023-06-29

แต่การลดต้นทุนนั้นเป็นไปเพื่อบริษัท ไม่ได้เป็นไปเพื่อผู้ใช้

เป็นประเด็นที่ชวนให้คิดหลายอย่างเลยนะครับ

 
edunga1 2023-06-29

ขอบคุณครับ อ่านแล้วรู้สึกเห็นด้วยมาก
เวลาเปิดเมนูคลิกขวาบนเดสก์ท็อป Windows ไม่ว่าจะเมื่อ 20 ปีก่อนหรือตอนนี้ก็ยังต้องมองนาฬิกาทรายรอ รู้สึกว่ามันช้าอยู่ดี (หลังจากครั้งแรกแล้วก็ดีขึ้นหน่อย แต่ก็ยังน่ารำคาญมาก)
เห็นได้ชัดว่าฮาร์ดแวร์เร็วขึ้น แต่ดูเหมือนซอฟต์แวร์จะไม่ได้เป็นแบบนั้นครับ

 
ruinnel 2023-06-29

ฉันเหมือนเคยเห็นเว็บไซต์ที่รวบรวมเฉพาะแอปพลิเคชันเบา ๆ ไว้พร้อมกับพูดถึงเรื่องคล้าย ๆ กัน (น่าจะเป็นฝั่ง linux) ... แต่พอลองหาเข้าจริงกลับไม่เจอเลย ฮ่าๆ

 
nicewook 2023-06-29

ขอบคุณที่ให้อ่านครับ

 
iolothebard 2023-06-29

อะไรสำคัญกันแน่?

 
devjeonghwan 2023-06-29

สมัยที่ทำกันด้วย WinAPI ล้วน ๆ นั้น UI ดูเรียบร้อยและตอบสนองไวมาก
ทุกวันนี้มีทั้งเฟรมเวิร์ก UI สารพัดแบบปะปนกัน ไหนจะพวกแอปที่อิงเว็บอีก.. แค่จะยกเว็บเอนจินหรือเฟรมเวิร์กเอนจินขึ้นมาก็กินทรัพยากรไปมากแล้ว

 
xguru 2023-06-29

นี่เป็นโพสต์ที่ขึ้นบน GN⁺ แต่ดูเหมือนว่าจะเข้าใจได้ยากหากอ่านจากสรุปของ AI ผมเลยสรุปเรียบเรียงใหม่อีกครั้งครับ

 
botplaysdice 2023-06-30

เห็นไหมล่ะว่าฉันพูดถูก 555...

ให้ความรู้สึกเหมือนตอนที่อีเซดลชนะเลย... ความมั่นคงในงานของพวกเรา.... ตอนนี้ยังโอเคอยู่ใช่ไหม? ;_;

 
GN⁺ 2023-06-29
ความคิดเห็นบน Hacker News
  • ผู้ใช้รุ่นใหม่ไม่เคยได้สัมผัสประสิทธิภาพที่แท้จริงจากซอฟต์แวร์สแตก
  • วิศวกรซอฟต์แวร์ทำงานอย่างไม่มีประสิทธิภาพและมองข้ามการประมวลผลแบบขนาน
  • คนที่ไม่ใช่สายเทคนิคไม่ได้ใส่ใจกับคอมพิวเตอร์ที่ทำงานช้า
  • มาตรการด้านความปลอดภัยอาจส่งผลต่อความหน่วงของแอปเดสก์ท็อป
  • บน macOS ประสิทธิภาพกราฟิกดีขึ้นด้วย Quartz Extreme และ Metal
  • การปรับแต่งซอฟต์แวร์เพื่อความเร็วเป็นสิ่งสำคัญ
  • Rust ไม่ได้มีเส้นโค้งการเรียนรู้ที่ชัน
  • การเฉลิมฉลองความสำเร็จเล็ก ๆ ด้านคอมพิวเตอร์เป็นสิ่งสำคัญ
  • เราควรคาดหวังจากฮาร์ดแวร์ของเราให้ได้มากกว่านี้
  • UI แบบไดนามิกมีส่วนทำให้ประสิทธิภาพลดลง
  • Linux ทำงานได้รวดเร็วบนฮาร์ดแวร์สเปกต่ำ แต่แอปข้ามแพลตฟอร์มมีประสิทธิภาพแย่
  • เฟรมเวิร์กแอปพลิเคชันสมัยใหม่อาจเป็นสาเหตุให้เวลาเริ่มต้นแอปช้าลง