2014-07-21 3 views
1

큰 bytearray를 만들었다 고 가정합니다. 합계가 1000000 바이트 또는 1MB라고합시다. 인터프리터는 메모리에 1MB를 예약하거나 바이트 배열로 메모리를 사용합니다. 메모리에 1MB를 사용하는 1000000 바이트의 비어있는 바이트 트리가 대부분 의미가됩니까?Python Large bytearray 메모리

답변

2

건축물에 할당/예약 된 것 같습니다. 라인 울부 짖기는 시스템에서 인터프리터의 메모리 사용량을 100MB까지 증가시킵니다.

b = bytearray(1024*1024*100) 

설명서에 언급되어 있지 않은 경우 구현에 따라 달라질 수 있습니다.

1

sys.getsizeof 바이트에서 개체의 크기를 반환

In [242]: sys.getsizeof(bytearray(10**6)) 
Out[242]: 1000025 

그래서 실제로 bytearray(10**6) 공간 1MB의에 대해 사용합니다. sys.getsizeof가 bytearrays에 대한 정확한 답을 제공하는 동안 이러한 목록으로 용기에 적용하는 경우, 그것은뿐만 아니라 컨테이너의 내용을 포함하여 컨테이너의 크기를 준다

참고.

내용을 포함하여 개체의 크기를 계산해야하는 경우 a recipe (the docs 참조)이 있습니다.