How memory works in Python

What is memory and why is it needed?

. , , . ? , «» , , - 16Gb DDR4 2666MHz. , , β€” , , , . , , ( ) .





-, , () , SWAP- .





-, , , «», , , . « », , 4 RAM ( 32- ) ( 64-).





, , . , ? :





  1. () ( ) .





  2. .





  3. .





. , , , .. .. . β€” . β€” . - , : , .





, . , , runtime . , , .





Python

Python β€” . . . , Python’ CPython, - , - :)





Python- , , . Python , .





Python’. CPython , . , .





. β€” , .., . . , Python . β€” , .. Python β€” .





. ( 512 ) Python . , . RAM .





? :





  • β€” ( 256 ), .





  • β€” ( 4 ).





  • β€” , .





. Python’ - . , . «»? . . ? . β€” , Python. - , . , , .





. ( , ).





β€” used, full empty. Full , . Empty β€” ( ). Used β€” , , .





Python . , Python used- . used- , empty-, ( empty used). empty- , .





. . . 8, 16, 24, 32 …. 512 . 44 , 48 . ( , untouched-, , free-, ). , , . , .





GIL

, Python, , . Python :





  • .





  • .





Python β€” , , , PyObject. PyObject : ob_refcnt



β€” , ob_type



β€” , .





β€” ob_refcnt



. . , , .. ( - ), . , , .. ( ), . 0 β€” Python ( , , ).





, . . CPython GIL β€” Global Interpreter Lock. , , GIL β€” β€” . , , .





β€” (garbage collector), . , ? , , A B, B β€” A. , A B, . ( gc, Python 1.5).





: GC (-, ) , Python. , . β€” .





, . . GC . . , . , . . : , . , , .





. . , , Python , . , Python . 





Python. , , .





?

:





  • .





  • , Python .





  • Memory Mapping.





  • .





:)








All Articles