0
0
Lập trình
Harry Tran
Harry Tran106580903228332612117

Tối ưu hóa hiệu suất ứng dụng Discord với kĩ thuật Code-Splitting

Đăng vào 3 ngày trước

• 3 phút đọc

Discord là một ứng dụng giao tiếp nổi tiếng, cho phép người dùng kết nối qua giọng nói và văn bản, hiện đang có hơn 10 triệu người dùng hoạt động hàng ngày. Bài viết này sẽ giúp bạn hiểu rõ hơn về cách ứng dụng này áp dụng code-splitting để nâng cao hiệu suất hoạt động của mình.


Chúng mình đã tạo ra một Group nơi các bạn có thể chia sẻ và học hỏi về thiết kế hệ thống. Hãy tham gia để cùng xây dựng cộng đồng System Design Việt Nam ngày càng mạnh mẽ hơn nhé! 😍

Cộng Đồng System Design Việt Nam: Tham gia nhóm

Kênh TikTok: Xem kênh


Hiểu về Software Bloat (Phình code)

Software bloat là hiện tượng khi các phiên bản phần mềm mới thường chậm hơn, tiêu tốn nhiều tài nguyên máy tính hơn mà không cung cấp nhiều cải tiến thực sự. Điều này thường xảy ra khi một ứng dụng phục vụ cho một thị trường lớn và đa dạng. Người dùng thường chỉ cần một phần nhỏ các tính năng mà ứng dụng cung cấp, trong khi phần còn lại có thể bị coi là không cần thiết.

Một cách hiệu quả để giảm thiểu tình trạng này là tiến hành split test để xác định những tính năng nào được ưa chuộng nhất. Dù vậy, sự phức tạp cơ bản của ứng dụng vẫn còn tồn tại. Đó là lý do tại sao kĩ thuật code-splitting xuất hiện như một giải pháp tiềm năng giúp cải thiện hiệu suất mà không làm ảnh hưởng đến khả năng mở rộng của ứng dụng.

Lợi ích của Code Splitting 🍽

Code-splitting là phương pháp tối ưu hóa việc tải ứng dụng qua việc chia nhỏ code thành các gói riêng biệt có thể tải độc lập. Điều này cho phép ứng dụng chỉ cần tải những phần cần thiết cho một thao tác cụ thể, đồng thời các gói khác có thể được tải theo yêu cầu.

Discord sử dụng kỹ thuật code split để giảm bớt tải trọng cho bộ nhớtài nguyên CPU bằng cách chỉ gửi những phần cần thiết trong thời điểm khởi chạy ứng dụng. Khi người dùng điều hướng qua các tính năng trong Discord, máy chủ sẽ tiếp tục gửi các file hàng cần thiết ở thời điểm đó.

Một trong những phương pháp bắt đầu tối ưu cho code-splitting là tại cấp độ định tuyến (Route level) của ứng dụng. Mỗi đường dẫn URL tượng trưng cho một route khác nhau. Các route này sẽ được tự động tổ chức thành các chunks để tải lên khi cần thiết, do đó giúp tiết kiệm thời gian và tài nguyên.

Các file có thể áp dụng code split bao gồm:

  • Stylesheets
  • Translations
  • Fonts

Hiệu quả của việc Lazy Loading

Discord chỉ tải các file translation cần thiết tại thời điểm người dùng sử dụng, giúp dễ dàng hỗ trợ thêm nhiều ngôn ngữ mà không làm tăng thời gian tải.

Lợi ích của code-splitting:

  • Tăng tốc độ tải trang và ứng dụng, đặc biệt cho người dùng di động.
  • Giảm chi phí khi sử dụng dịch vụ CDN nhờ giảm lượng dữ liệu cần truyền tải.
  • Cải thiện khả năng SEO do tốc độ tải trang nhanh hơn.

Hạn chế của code-splitting:

  • Tăng chi phí xử lý do số lượng request tới máy chủ tăng.
  • Chậm trễ trong phản hồi có thể xảy ra nếu có quá nhiều yêu cầu đồng thời.

Việc áp dụng hiệu quả kĩ thuật code-splitting không chỉ giúp cải thiện hiệu suất mà còn mở rộng khả năng phát triển của ứng dụng mà không làm phình code.

Cuối cùng, Sydexa.com mong sẽ gặp lại các bạn trong những bài viết thú vị hơn sau!

Thông điệp từ Sydexa

Chúng mình đã tạo ra nhóm cho những ai yêu thích và muốn mở rộng kiến thức về thiết kế hệ thống. Hãy tham gia để cùng nhau phát triển cộng đồng System Design Việt Nam nhé!

Cộng Đồng System Design Việt Nam: Tham gia nhóm

Kênh TikTok: Xem kênh
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào