YouTube

Got a YouTube account?

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

Vietnamese subtitles

← 03-13 Container_Performance

03-13 Container_Performance

Get Embed Code
13 Languages

Showing Revision 3 created 01/25/2016 by QA_SP_5_VI.

  1. Chúng ta đã nói về mã của bạn
    có thể bị chậm thế nào
  2. vì loại phần cứng thực thi bên dưới,
  3. bạn có nhớ việc chia nhánh
    dấu chấm động gây ra vấn đề?
  4. Đó không phải là vấn đề
    với phần cứng.
  5. Có một loạt vấn đề mà bạn
    vẫn cần phải lo lắng,
  6. đó là hiệu suất của các từ gốc
    trong ngôn ngữ mà bạn đang sử dụng.
  7. Dùng thuật toán cơ bản
    như phân loại.
  8. Bây giờ có rất nhiều
    cách để sắp xếp,
  9. và một số cách tốt hơn các cách khác,
    tùy thuộc vào hoàn cảnh.
  10. Ví dụ, quicksort thường
    nhanh hơn bubble sort
  11. trừ khi bạn có một ít hơn một nghìn yếu tố
  12. hoặc tìm kiếm các đối tượng
    trong một danh sách sắp xếp lớn.
  13. Cách tốt nhất để làm
    điều này là bằng tìm kiếm nhị phân.
  14. Nhưng khác hoàn toàn là tìm kiếm
    đối tượng trong mảng không sắp xếp.
  15. Thay vì so sánh đối tượng
    cho các giá trị mà bạn tìm kiếm,
  16. bạn có thể dùng một hàm harsh
    để tìm đối tượng ngay.
  17. Đó là tiêu chuẩn cơ bản của khoa học
    máy tính hiện đại và cấu trúc dữ liệu.
  18. Và may mắn là, ngôn ngữ hiện đại
    như Java cung cấp các bộ chứa
  19. và các thuật toán thay bạn, vì vậy
    không cần viết lại hàm Murmur3 hash.
  20. hoặc quicksort hết lần này đến lần khác.
  21. Nhưng hãy để tôi cho bạn biết.
  22. Nhiều năm tôi làm về lập trình,
  23. một vấn đề luôn ảnh hưởng đến
    hiệu suất dự án của bạn
  24. có liên quan đến hiệu suất
    của đối tượng bộ chứa ngôn ngữ được cấp.
  25. Điều đó tuyệt vời, phải không?
  26. Java cung cấp cho bạn
    thực hiện một lớp véc tơ
  27. mà bạn có thể đẩy, hiển thị, thêm và
    loại bỏ đối tượng nếu thấy phù hợp,
  28. nhưng để linh hoạt, bạn phải dùng
    cấu trúc danh sách liên kết dưới mũ,
  29. trong đó có một chuỗi
    đặc tính hiệu suất duy nhất.
  30. Miễn là bạn chỉ hoạt động trên
    mặt trước của danh sách, nó sẽ rất nhanh.
  31. Nếu bạn cố chèn hoặc xóa những nơi khác,
  32. nó sẽ mặc định thời gian
    tồi tệ nhất có thể.
  33. Điểm đáng nói là chỉ vì
    hệ thống cơ bản cung cấp bộ chứa,
  34. không có nghĩa
    là chúng làm việc với hiệu suất
  35. tương ứng với mức mà chương trình của bạn
    thực sự sẽ sử dụng chúng.
  36. James Sutherland công bố loạt tiêu chuẩn
    đánh giá siêu nhỏ về hiệu suất
  37. của cấu trúc dữ liệu cụ thể được cung cấp
    bởi khung làm việc Java
  38. và thấy rằng có một số khác biệt
    trong hiệu suất so với chức năng
  39. mà mọi người cần biết.
  40. Ví dụ, ông thấy rằng hiệu suất Hashtable
  41. nhanh hơn khoảng 22%
    so với hiệu suất HashMap,
  42. tùy thuộc vào cách bạn thực sự
    sử dụng bản thân các bộ chứa.
  43. Vấn đề nằm ở chỗ.
  44. Bạn tóm lược lớp bộ chứa
    đang sử dụng trong mã chưa?
  45. Bạn có tự tin rằng chúng đang sử dụng
    bộ chứa nhanh nhất
  46. cho những gì mã của bạn thực sự đang làm?
  47. Vâng, đó là những gì tôi nghĩ.
  48. Nhưng tin tốt là bạn có thể biết
    hiệu suất của các bộ chứa
  49. với một số MPI tóm lược
    tiện dụng trong Android.
  50. Xem mã của Chris có qua
    bài kiểm tra không.