YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

Vietnamese subtitles

← 04-04 Memory_Leaks

04-04 Memory_Leaks

Get Embed Code
13 Languages

Showing Revision 9 created 02/26/2016 by sp4.

  1. Một trong những điều tốt về ngôn ngữ
    Java của Android
  2. môi trường bộ nhớ được quản lý của nó,
  3. nghĩa là bạn không cần
    quá quan tâm về việc phải xử lý
  4. khi các đối tượng hình thành hay phá hủy.
  5. Mặc dù điều này nhìn chung rất tuyệt,
  6. nhưng vẫn có một số vấn đề được
    che giấu ẩn dưới bề mặt này.
  7. Bây giờ hãy nhớ các vùng bộ nhớ
    trong thời gian chạy Android
  8. được chia thành các khoảng,
    dựa vào loại phân bổ và
  9. cách tốt nhất mà hệ thống có thể tổ chức
    phân bổ các sự kiện GC trong tương lai.
  10. Mỗi không gian có kích thước
    bộ nhớ dành riêng cho nó.
  11. Khi kích thước kết hợp của đối tượng
    trong vùng bắt đầu đạt cận trên,
  12. một sự kiện garbage collection sẽ
    được kích hoạt để giải phóng không gian
  13. và loại các đối tượng không cần thiết.
  14. Các sự kiện GC này nói chung không phải
    vấn đề đáng lưu ý với hiệu suất của bạn.
  15. Tuy nhiên, rất nhiều trong số đó
    định kỳ và lặp đi lặp lại mãi
  16. có thể nhanh chóng chiếm lĩnh
    thời gian khung của bạn.
  17. Bạn càng mất nhiều
    thời gian với các GC
  18. thì càng có ít thời gian làm những việc
    như cung cấp và truyền tải audio.
  19. Một tình trạng các nhà phát triển
    triển hay gặp phải
  20. gây ra rất nhiều GC diễn ra được gọi là
    lỗ hổng bộ nhớ.
  21. Lỗ hổng bộ nhớ là các đối tượng mà
    ứng dụng không còn sử dụng tới, nhưng
  22. bộ Garbage Collector không nhận ra
    rằng chúng không được sử dụng.
  23. Kết quả là chúng cư trú lại
    trong vùng của bạn,
  24. chiếm đi không gian giá trị và không bao
    giờ giải phóng cho các đối tượng khác.
  25. Khi tiếp tục bị rò rỉ bộ nhớ,
  26. không gian có sẵn trong nguồn của
    vùng tiếp tục
  27. trở nên càng ngày càng nhỏ hơn, nghĩa là
    nhiều GC được thi hành thường xuyên hơn
  28. để cố gắng giải phóng không gian để
    thực thi các chương trình thường.
  29. Phát hiện và sửa chữa
    các lỗ hổng là một công việc khó khăn.
  30. Có những lỗ hổng rất dễ sinh ra,
  31. giống như tạo tham chiếu vòng tròn tới
    đối tượng mà chương trình không sử dụng.
  32. Các loại khác thì
    không đơn giản như vậy,
  33. giống như giữ tay cầm tới những đối tượng
    class-loader khi chúng đang được tải.
  34. Trong cả hai trường hợp, một ứng dụng
    nhanh chóng,
  35. chạy ổn định cần có nhận thức và nhạy cảm
    về các lỗ hổng bộ nhớ có thể tồn tại.
  36. Ý tôi là, mã của bạn sẽ chạy trên
  37. một liên kết thiết bị
    và loại hình khác nhau,
  38. và không phải tất cả trong đó sẽ có
    dấu vết và kích thước bộ nhớ tương tự.
  39. Thật may mắn, có một công cụ đơn giản
    có sẵn sẽ giúp chúng ta tìm ra nơi mà
  40. những lỗ hổng này có thể
    tồn tại trong Android SDK.
  41. Hãy cũng tìm hiểu nhé.