Thực ra Electron ổn hơn bạn nghĩ
(blog.vaxry.net)- Electron thường bị hiểu lầm là chậm và kém hiệu quả, nhưng thực tế lại là một công cụ hiệu quả và mạnh mẽ
- Vấn đề mức sử dụng RAM và dung lượng lưu trữ chỉ là xu hướng chung của các ứng dụng hiện đại, không phải vấn đề riêng của Electron
- Với các ứng dụng mà tính năng dựa trên công nghệ web là quan trọng, như dịch vụ streaming, Electron lại là một lựa chọn tự nhiên hơn
- Nó được tối ưu cho tốc độ phát triển nhanh và networking bất đồng bộ, nên năng suất rất cao
- Đánh giá rằng Electron chậm chủ yếu đến từ những ứng dụng chất lượng thấp do doanh nghiệp tạo ra; các ứng dụng Electron được làm tốt hoàn toàn đủ nhanh và đủ dùng
Định kiến về Electron
- Electron giống như một trình duyệt Chromium mở trang web ở cục bộ
- Vì thế mà xuất hiện nhận thức rằng nó chậm, kém hiệu quả và “không native”, nhưng thực tế không phải vậy
Hiệu quả
- Nếu Electron thực sự kém hiệu quả, thì bản thân trình duyệt Chromium đã không thể hoạt động tử tế
- Electron chỉ đơn giản là đóng gói nhiều thành phần lại với nhau để ứng dụng vận hành tốt
Mức sử dụng RAM
- Nhận định rằng “Electron ngốn nhiều RAM” là không đúng sự thật
- Kết quả đo thực tế
- Vermilion (dựa trên Electron): 215MB
- Dolphin (dựa trên Qt6/KDE): 258MB
- Nautilus (dựa trên GTK4/Libadwaita): 374MB
- Ứng dụng hiện đại có xu hướng tiêu tốn nhiều RAM hơn khi số lượng tính năng tăng lên, và đây không phải vấn đề riêng của Electron
Dung lượng lưu trữ
- Ứng dụng Electron có dung lượng lớn vì đóng gói kèm nhiều dependency
- Cấu trúc này tương tự Flatpak hay AppImage, nhờ đó tính di động và độ ổn định cao hơn
Tốc độ
- Việc ứng dụng Electron chậm không phải do bản thân Electron, mà chủ yếu là do các ứng dụng do doanh nghiệp làm ra được phát triển cẩu thả
Khi nào Electron lại là lựa chọn tốt hơn
Xử lý DRM
- Các dịch vụ streaming sử dụng DRM, và điều này đòi hỏi công nghệ nền web
- Ví dụ, Tidal yêu cầu Widevine, và Electron đã có sẵn một hệ sinh thái cho phép tích hợp việc này dễ dàng
- Spotify cũng chỉ được phép streaming thông qua module JS về mặt pháp lý
Tốc độ phát triển nhanh
- Typescript và Electron cho phép những người có kinh nghiệm với công nghệ web phát triển rất nhanh
- So với framework dựa trên GTK hay QT, công nghệ web vượt trội hơn nhiều về khả năng tiếp cận và độ khó học tập
Networking bất đồng bộ
- Với các trường hợp giao tiếp bất đồng bộ diễn ra thường xuyên, như ứng dụng streaming, công nghệ web là lựa chọn được tối ưu tốt
Electron có phù hợp cho mọi thứ không?
- Về lý thuyết thì có thể, nhưng với những trường hợp đòi hỏi tài nguyên tối thiểu như ứng dụng desktop cốt lõi, nó không phù hợp
- Với các ứng dụng phức tạp, có nhiều tính năng online và cần cân nhắc cross-platform, Electron là lựa chọn hợp lý
- Nếu chất lượng phát triển được đảm bảo, ứng dụng Electron cũng có thể được làm đủ nhanh và đủ hiệu quả
- Ví dụ như các ứng dụng Electron như Obsidian hay VS Code có hiệu năng rất tốt
- Với sự phát triển gần đây của WASM, nếu offload các tác vụ nặng thì ứng dụng Electron cũng có thể cạnh tranh với các ứng dụng desktop truyền thống
Kết luận
- Phần lớn sự khó chịu với Electron đến từ các phiên bản Electron cũ hoặc những ứng dụng chất lượng thấp của doanh nghiệp
- Nhận thức rằng “vì là một trang trình duyệt nên chậm” là xa rời thực tế, bởi các trình duyệt hiện đại cho thấy hiệu năng rất cao
16 bình luận
Là vì bạn chưa từng gặp một nơi làm Electron thực sự giỏi thôi ~
... chắc kiểu đang nói vậy đó haha
Tôi cũng chỉ dùng Electron từ 2-3 năm trước thôi, dạo này thì lại làm bằng Tauri..
Thích.
Hãy dùng Tauri. Backend là Rust và việc tích hợp dễ hơn bạn nghĩ.
Chỉ có mỗi khẳng định, chẳng có lấy một chút căn cứ nào cả.
Dù sao thì trải nghiệm mở cũng tốt hơn mấy thứ như Qt, đúng không?
Tôi hiểu những điểm khác, nhưng nhận định liên quan đến RAM thì khác biệt quá nhiều so với trải nghiệm thực tế...
Các ứng dụng Electron luôn phải chạy thường trú ở chế độ nền thì quả là hơi gây nặng nề.
Chà... chỉ cần mở 3~4 ứng dụng Electron thôi là đã thường xuyên vật lộn vì thiếu bộ nhớ rồi....
Bề mặt tấn công quá nhiều nhưng lại không được quan tâm đúng mức, nên giờ tôi định rút tay khỏi chuyện này.
Tôi đồng ý rằng bản thân nó là một framework tốt, nhưng vì nhiều công ty và startup lấy năng suất cao làm cái cớ rồi cứ thế xuất xưởng mà không quan tâm đến hiệu năng, nên cứ hễ nghe nói được làm bằng Electron là tôi lại có cảm giác muốn từ chối.
Dù đang dùng laptop tốt, nhưng thành thật mà nói tôi không thấy VSCode nhanh đến vậy. Cuối cùng thì hoặc là dùng IntelliJ vốn nặng hẳn nhưng nhiều tính năng nên tiện, hoặc là dùng IDE hay trình soạn thảo văn bản được phát triển native ngay từ đầu. Rõ ràng là nhanh và trải nghiệm tốt hơn hẳn.
Rất tốt, nhưng vì kích thước cơ bản của nó vốn đã lớn nên cũng không tiện dùng ở mọi nơi..
Electron thật sự rất ổn mà, ai bảo là không tốt chứ... tốt lắm luôn
Những vấn đề như Flatpak hay AppImage thì khi quay lại Windows có vẻ hoàn toàn không liên quan nhỉ, haha..
Bản thân Electron thì tôi nghĩ là một framework rất tốt. Việc phát triển framework cũng rất năng động, và hơn hết là mọi thứ sẽ được triển khai trong Chromium thì hầu như đều đã có đủ cả rồi.
Những điều mọi người hiểu sai về Electron
So sánh Tauri và Electron - hiệu năng, kích thước gói và những đánh đổi thực tế