Korean subtitles

← 03-13 Container_Performance

03-13 Container_Performance

Get Embed Code
13 Languages

Showing Revision 2 created 01/08/2016 by sp8.

  1. 하드웨어가
    코드를 실행시키기 힘든 계렬인 경우
  2. 실행속도가
    떠질수 있다는 점에 대해서 보았습니다.
  3. 부동 소수점 분기 문제를 기억하셨죠?
  4. 오늘 날의 하드웨어에는
    거의 그런 문제가 없습니다.
  5. 그러나
    고려해야 할 한가지 문제가 있습니다.
  6. 그것은 우리가 사용하는 언어의
    기본 성능입니다.
  7. 기본적인 알고리즘을 이렇게 분류해 봅니다.
  8. 정렬하데는 많은 방법이있습니다.
  9. 상황에 따라 좀 나은 쪽도 있을 수 있겠죠.
  10. 예를 들어 빠른 정렬은 일반적으로
    개체 수가 천개 미만이거나
  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. 크리스 씨의 코드를 가지고
    살펴보도록 합시다.