글 읽기 - 시간과 메모리는 어떤 기준으로 줄거나 길어지는건가요?
시간 : 1초당 약 1500만번~ 2000만번 연산 (대략 for문 6만번 연산 당 4ms = 1.5만번 연산 당 1ms = 1500만번 당 1초)
메모리 : 1MB당 int 변수 약 2.5만개인 리스트 (int변수 1만개 리스트 당 400~420KB → 리스트에서 int변수 하나당 약 40 Byte 차지)
파이썬에서 리스트에 변수가 저장되면 call by reference 형태로 저장된다.
이는 getsizeof()함수를 통해 알 수 있다.
https://docs.python.org/ko/3/library/sys.html
리스트 객체가 직접 기여한 메모리는 요소가 하나 추가될 때 8Byte 늘어난다. 즉 리스트의 각 요소가 reference로 저장된다.
그러면 int변수 기본 28 Byte + 리스트에 요소가 저장될 때 8 Byte = 36 Byte
그럼 나머지 4 Byte정도는 어디서 나오는가
리스트가 길어지면 요소들의 주소값 외에 리스트 자체 메모리 크기도 커지는 것 같다.
리스트 h의 메모리 사용량 8448728 Byte - 요소가 차지하는 메모리는 8 Byte * 1000000
= 448728 Byte가 리스트 자체 메모리 크기로 보인다.
파이썬에서 int 변수의 크기는 왜 28 Byte로 클까
https://tyoon9781.tistory.com/entry/python-int-size-28bytes
generator?
CPP
https://syh39.github.io/algorithm/algorithm_2/
파이썬