34 điểm bởi xguru 2023-06-29 | 11 bình luận | Chia sẻ qua WhatsApp
  • Một video so sánh tốc độ giữa một máy tính cũ chạy Windows NT 3.51 và một máy tính mới chạy Windows 11 đã được đăng lên Twitter và lan truyền khá mạnh
    • Cả hai đều thực hiện cùng một thao tác: mở và đóng Command Prompt, Explorer, Notepad và Paint
    • Trên máy cũ, các thao tác diễn ra ngay lập tức, nhưng trên máy mới thì chậm
  • Độ trễ giao diện người dùng trên máy tính hiện đại rất tệ và đang ngày càng xấu đi
  • Có ý kiến cho rằng phần cứng dùng để so sánh là không công bằng vì đó là máy bàn và máy tính xách tay (Surface Go)
  • Tác giả đã cài Windows 2000 lên máy K7-600 và Windows 11 lên Mac Pro 2013 (Xeon 6 nhân + 32GB) để so sánh lại, nhưng kết quả vẫn tương tự

Sự phát triển của máy tính

  • Từ những năm 2000 đến nay, máy tính đã tiến bộ theo nhiều hướng: đồ họa ấn tượng, màn hình độ phân giải cao, mạng siêu nhanh, chỉnh sửa video thời gian thực, v.v.
  • Ở phía I/O cũng đã có rất nhiều tiến bộ; trên các hệ thống cũ, I/O đĩa luôn là điểm yếu nhất
    • Đĩa mềm thì thiếu ổn định và chậm, CD/DVD đáng tin hơn một chút nhưng vẫn chậm, còn HDD là nút thắt cổ chai của rất nhiều thứ
    • Random I/O bắt đầu chạm tới các giới hạn vật lý
  • Khi SSD xuất hiện và được dùng cả trên máy bàn, vấn đề random I/O này bắt đầu được giải quyết
    • Đột nhiên mọi thứ đều nhanh hơn: khởi động, tải game, mở thư mục có rất nhiều tệp...
  • Việc lắp phần cứng mới cũng trở nên thuận tiện hơn, kết nối không dây trở nên phổ biến, và văn bản/ứng dụng được quốc tế hóa tốt hơn (dù phải thừa nhận Unicode không hề đơn giản hay rẻ)
  • Nhiều mặt đã được cải thiện, và chúng ta có nhiều sức mạnh hơn bao giờ hết. Nếu không, sẽ không thể làm những việc như xử lý ảnh bằng ML trên một chiếc điện thoại nhỏ bé—điều không thể tưởng tượng nổi trong thập niên 2000

Độ trễ khủng khiếp

  • Nhưng không có tiến bộ nào trong số đó giải thích được vì sao độ trễ UI ngày nay lại chậm khủng khiếp đến vậy
  • Sự tiến bộ của phần cứng lẽ ra phải cải thiện tình hình này

Ví dụ

  • Cho đến gần đây, Notepad vẫn là một ứng dụng native và khởi chạy nhanh, nhưng sau khi được viết lại thành ứng dụng UWP thì nó trở nên chậm. Chậm đi rất nhiều nhưng chức năng vẫn thiếu. Sự suy giảm tốc độ này không mang lại lợi ích gì cho người dùng
  • Windows Terminal tốt hơn xưa rất nhiều, nhưng cũng nặng thấy rõ. Nếu thêm PowerShell, thì trừ khi dùng phần cứng cao cấp, có thể mất vài giây để mở một cửa sổ terminal mới
  • macOS khá hơn Windows, nhưng cũng có vấn đề. Máy cũ mở cửa sổ cài đặt nhanh hơn nhiều
  • Linux có lẽ là nền tảng ít bị ảnh hưởng nhất bởi vấn đề này. Ngay cả trên PC 11 năm tuổi, Fedora Linux 38 phát hành vào tháng 4/2023 vẫn chạy tốt. Nhưng đó cũng chỉ là một phần ảo tưởng; khi chạy các ứng dụng hiện đại không được phát triển riêng cho Linux, thời gian khởi động ứng dụng sẽ chậm đi và hiệu năng nói chung cũng giảm
  • Cú sốc lớn nhất với tôi là khi gia nhập Google năm 2009
    • Khi đó, Google Search và Gmail nổi tiếng về hiệu năng xuất sắc và là hình mẫu cho cả ngành
    • Nhưng tôi đã rất sốc khi thấy các công cụ dòng lệnh nội bộ mà họ dùng lại chậm đến mức nào
    • Tôi nghĩ chính việc họ liên tục thúc đẩy web app bằng mọi giá đã góp phần tạo ra tình trạng mà chúng ta đang mắc phải ngày nay

Nguyên nhân

  • Vì sao mọi chuyện lại thành ra thế này? Dễ nói đó là "bloat", nhưng lại khó định nghĩa
    • Bloat có thể được biện minh: mỗi người lại có cách nhìn khác nhau về bloat
  • Thứ khiến mọi thứ chậm đi là "ưu tiên"
    • Không ai còn ưu tiên hiệu năng nữa, trừ những trường hợp quan trọng như game hay transcoding video
    • Điều mà mọi người (và các công ty) ưu tiên là "thời gian của lập trình viên": Rust và Electron
  • Người ta dùng Electron vì phát triển từng ứng dụng native riêng lẻ là công việc bị trùng lặp
    • Dùng nó thì dễ, nhưng nó ảnh hưởng lớn đến độ trễ trên desktop
    • Như các trường hợp của 1Password hay Spotify, ứng dụng được viết lại bằng Electron để tạo ra trải nghiệm thống nhất và giảm chi phí
    • Nhưng việc cắt giảm chi phí là vì công ty, chứ không phải vì người dùng
    • Khoản tiết kiệm chi phí đó thực chất là một thứ thuế áp lên chúng ta, những người dùng nó mỗi ngày
  • Một quyết định khác làm tăng độ trễ là việc chấp nhận rộng rãi các ngôn ngữ managed và interpreted
    • JDK/CLR tối ưu khá tốt cho các tiến trình chạy lâu dài, nhưng thời gian khởi động nhanh không phải thứ họ xử lý tốt

Các cải tiến một lần rồi mất dần (One-off improvements eaten away)

  • Cuối cùng, quay lại với tiến bộ phần cứng để kết lại bằng một nhận định bi quan
  • Bước tiến đặc biệt mà SSD mang lại chỉ là một thay đổi mang tính một lần
    • HDD có tiếp tục nhanh hơn, nhưng không thể cung cấp random I/O nhanh mà máy tính để bàn cần
    • Việc chuyển sang SSD mang lại một mức cải thiện hoàn toàn khác, nhưng lợi ích đó chỉ có thể tận hưởng một lần
    • Không có công nghệ nào khác có thể mang lại kiểu trải nghiệm đột phá như vậy
    • Vì thế, một khi lợi ích do công nghệ mới này mang lại bị phần mềm cẩu thả bào mòn, chúng ta sẽ quay lại vạch xuất phát
    • Tất nhiên SSD vẫn ngày càng nhanh hơn, nhưng không thể tạo ra khác biệt khổng lồ như lúc chuyển từ HDD sang SSD
  • Bạn có thể tự kiểm chứng điều đó nếu dùng các phiên bản Windows/macOS hiện đại mà không có SSD
  • Vì vậy tôi lo ngại về Apple Silicon
    • Bạn còn nhớ hiệu năng xuất sắc, thời lượng pin rất dài và sự im lặng không quạt của M1 khi mới ra mắt chứ?
    • Nếu chúng ta tiếp tục sự cẩu thả này, những ưu điểm đó rồi cũng sẽ biến mất, và đến lúc ấy thì đã quá muộn
  • Việc cải thiện hiệu năng cho các ứng dụng hiện có là điều rất khó cả về mặt kỹ thuật lẫn trong việc sắp xếp ưu tiên trong tổ chức
  • Vậy liệu các kiến trúc sư máy tính có thể cứu chúng ta bằng một thay đổi công nghệ mang tính cách mạng khác không? Tôi không muốn phụ thuộc vào điều đó. Không phải vì thay đổi như vậy là bất khả thi, mà vì lẽ ra chúng ta không cần đến nó

Phiên bản được GN⁺ tóm tắt (giữ lại để lưu trữ)

  • Một chuỗi bài trên Twitter so sánh độ phản hồi giữa máy tính cũ và máy tính mới đã nhận được 8.8K lượt thích.
  • Trong video, ứng dụng trên máy cũ mở ngay lập tức, còn trên máy mới thì có độ trễ đáng kể.
  • Tác giả đặt câu hỏi vì sao độ trễ giao diện người dùng trên máy tính hiện đại lại tệ hơn dù phần cứng đã tiến bộ.
  • Sau khi sửa các điểm chưa hợp lý trong phép so sánh, kết quả vẫn giống nhau.
  • Bài viết bàn về các tiến bộ công nghệ như đồ họa, màn hình độ phân giải cao và mạng nhanh.
  • Tác giả cho rằng độ trễ giao diện người dùng trên máy tính hiện đại là rất tệ và đang xấu đi.
  • Các ví dụ về ứng dụng chậm trên Windows, macOS và Linux đã được đưa ra.
  • Phần mềm nặng nề, framework và ngôn ngữ managed được nêu là nguyên nhân gây ra vấn đề độ trễ.
  • Tác giả lo ngại rằng lợi ích của SSD đang bị phần mềm cẩu thả triệt tiêu, và điều tương tự có thể xảy ra với Apple Silicon.
  • Cải thiện hiệu năng cho các ứng dụng hiện có là việc khó cả về kỹ thuật lẫn tổ chức.
  • Theo tác giả, một bước nhảy công nghệ mang tính cách mạng có thể sẽ không cứu được chúng ta.
  • Làm việc từ xa không phải là lời giải cho vấn đề độ trễ.
  • Phát triển mã nguồn mở trong thập niên 90 và 2000 vốn đã cho phép làm việc hoàn toàn phân tán và bất đồng bộ.
  • Độ trễ máy tính đã là một vấn đề ít nhất từ năm 1977.
  • Theo Dan Luu, chiếc máy tính có độ trễ tốt nhất được biết đến là một sản phẩm từ năm 1983, nhưng nó không thể đáp ứng khối lượng công việc hiện đại.

11 bình luận

 
nuthatch 2023-06-29

Có lẽ chúng ta đã đi đến mức này vì đã chọn khả năng bảo trì thay vì hiệu năng, rồi nghĩ rằng có thể bù cái giá đó bằng sự phát triển của phần cứng. Khi chiếc MacBook Air 2010 trở nên quá chậm, tôi xoay xở cài Snow Leopard lên nó, và nó nhanh đến mức không thể tin được. Tất nhiên tôi không dùng nó trong thực tế..

 
googol 2023-06-29

Giờ thì cảm nhận được rõ rằng các công ty không còn đặt hiệu năng lên hàng đầu nữa.

 
anyjava 2023-06-29

Nhưng việc cắt giảm chi phí là vì công ty, chứ không phải vì người dùng.

Đoạn đó thực sự khiến tôi phải suy nghĩ khá nhiều.

 
edunga1 2023-06-29

Cảm ơn bạn. Tôi đã đọc với sự đồng cảm.
Khi mở menu ngữ cảnh trên màn hình nền Windows thì dù là 20 năm trước hay bây giờ vẫn chậm đến mức phải nhìn đồng hồ cát (sau lần đầu thì có khá hơn một chút, nhưng vẫn rất khó chịu).
Rõ ràng phần cứng ngày càng nhanh hơn, nhưng có vẻ phần mềm thì không được như vậy.

 
ruinnel 2023-06-29

Tôi nhớ là đã từng thấy một trang web tập hợp các ứng dụng nhẹ, kiểu cũng nói về câu chuyện tương tự (có lẽ là phía Linux)... mà giờ tìm lại thì không ra nữa haha

 
nicewook 2023-06-29

Cảm ơn, tôi đã đọc.

 
iolothebard 2023-06-29

Điều gì mới là quan trọng?

 
devjeonghwan 2023-06-29

Hồi còn thời UI chỉ được triển khai bằng WinAPI thì gọn gàng và phản hồi nhanh nhạy thật.
Dạo này thì đủ kiểu framework UI lộn xộn, rồi nào là ứng dụng dựa trên web... để một web engine hay framework engine chạy lên được thì tốn khá nhiều tài nguyên.

 
xguru 2023-06-29

Đây là bài đăng trên GN⁺, nhưng tôi thấy khá khó để hiểu chỉ qua phần tóm tắt của AI nên đã tự sắp xếp lại.

 
botplaysdice 2023-06-30

Thấy chưa, tôi đã nói mà haha...

Cảm giác như hồi Lee Sedol giành chiến thắng vậy... sự an toàn việc làm của chúng ta.... chắc vẫn còn ổn chứ? T_T

 
GN⁺ 2023-06-29
Ý kiến Hacker News
  • Những người dùng trẻ chưa từng trải nghiệm hiệu năng thực sự trong ngăn xếp phần mềm
  • Các kỹ sư phần mềm làm việc kém hiệu quả và phớt lờ điện toán song song
  • Những người không làm kỹ thuật không quan tâm đến tình trạng điện toán chậm
  • Các biện pháp bảo mật có thể ảnh hưởng đến độ trễ của ứng dụng desktop
  • Trên macOS, hiệu năng đồ họa được cải thiện nhờ Quartz Extreme và Metal
  • Tối ưu hóa phần mềm để tăng tốc độ là điều quan trọng
  • Rust không có đường cong học tập quá dốc
  • Việc ăn mừng những thành tựu nhỏ trong điện toán là điều quan trọng
  • Chúng ta nên kỳ vọng nhiều hơn từ phần cứng của mình
  • Giao diện người dùng động góp phần làm suy giảm hiệu năng
  • Linux chạy nhanh trên phần cứng cấu hình thấp, nhưng các ứng dụng đa nền tảng có hiệu năng kém
  • Các framework ứng dụng hiện đại có thể là nguyên nhân khiến thời gian khởi động ứng dụng chậm đi