Korean subtitles

← 03-13 Container_Performance

03-13 Container_Performance

Get Embed Code
13 Languages

Showing Revision 1 created 12/29/2015 by sp8.

  1. 우리는 하드웨어가 코드를 실행시키기엔 낮은 계렬인 경우
  2. 코드속도가 떠질수 있다는 점에 대해서 보았습니다.
  3. 부동 소수점 분기 문제를 기억하셨죠?
  4. 오늘 날의 하드웨어에는 거의 문제가 없습니다.
  5. 그러나 고려해야 할 한가지 문제가 있습니다.
  6. 그것은 여러분이 사용하는 언어의 기본 성능입니다.
  7. 기본적인 알고리즘을 이렇게 분류해 봅니다.
  8. 정렬하데는 많은 방법이있습니다.
  9. 상황에 따라 좀 나은 쪽도 있을 수 있겠죠.
  10. 예를 들어 빠른 정렬은 일반적으로
    개체수가 1000개 미만이거나 거대한 리스트에서
  11. 몇개의 오브젝트들을 찾으려고 하는 경우에는
  12. 거픔정렬 보다 빠릅니다.
  13. 그러나 가장 최선의 방법은 2진탐색을 하는 것입니다.
  14. 하지만 완전히 다른것은 정렬되지 않은
    배열에서 객체를 찾는 다는 점입니다.
  15. 여려분이 값을 찾기 위해 각 개체를 비교하는 대신
  16. 그것을 즉시 찾기 위해 해시 함수를 이용할 수 있습니다
  17. 이것은 현대 컴퓨터 과학 및 데이터 구조의
    기본적은 규범입니다.
  18. 또한 다행히 자바와 같은 현대 언어들은
    이러한 컨테이너들과
  19. 알고리즘을 지원해 주기 때문에
    여러분들은 Murmur 3 Hash를 재정의하거나
  20. 빠른 정렬을 반복해서 할 필요가 없게 됩니다.
  21. 한가지 보여 드릴게 있습니다.
  22. 저의 프로그래밍 경험에 비추어 보면
  23. 여러분의 프로젝트의 성능을 떨어뜨리는 한가지 문제는
  24. 바로 언어가 제공하는 컨테이너 개체입니다.
  25. 제 말이 옳죠?
  26. 자바의 여려분들이 필요한 개체를
    푸시 , 팝, 추가, 제거 할 수 있는
  27. 벡터 클래스의 구현을 제공하지만
  28. 그 유연성을 얻기 위해서
    성능 특성의 고유 세트를 포함하고 있는
  29. 링크 된 리스트 구조를 후드 아래에 사용하게 됩니다.
  30. 리스트의 정면에서 조작하는 경우
    속도는 헐씬 바르지만
  31. 삽입하거나
  32. 제거하려고 하는 경우는 사정이 다릅니다.
  33. 그것은 기본 시스템이 이러한 컨네이너를 제공하는것이
  34. 그것들을 사용할때의 성능까지
  35. 고려하지 않았기 때문입니다.
  36. 제임스 서덜랜드가 자바 프레임 워크에 의해 제공되는
  37. 특정 데이터 구조의 성능에 대한
    microbenchmarks 시리스를 출판하였는데
  38. 여기에는 성능대 기능에서 알아아야 몇가지 문제들이
  39. 명시되여 있습니다.
  40. 예를 들어
    그는 해시 테이블의 성능이 HashMap의 성능보다
  41. 실제로 컨테이너 자체를 사용하는 방법에 따라
  42. 약 22 % 빠르다는것을 발견 하였습니다.
  43. 요점은 바로 이것입니다.
  44. 코드에서 사용하는 컨테이너 클래스를
    프로파일 한 적이 있습니까?
  45. 지금 사용하고 있는 컨테이너가
    지금 작성하는 코드에서
  46. 절대적으로 빠르다고 말할수 있습니까?
  47. 이건 저의 생각인데요
  48. 안드로이드에서 지원하는 몇 가지 편리한
    프로파일 링 MPIs를 이용하여 이러한
  49. 컨네이너의 성능에 대한 가시성을
    확보 할 수 있다는 것입니다.
  50. 크리스의 코드가 우리의 요구를
    만족하겠는지 살펴 봅시다.