Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Python Memory Management ӣળࢿ (ML Research Engineer, Pingpong)
Slide 2
Slide 2 text
Python Memory Management ޖट ੌ ੌযզө?
Slide 3
Slide 3 text
Python Memory Management Name, Reference, Object 10 A name Reference Object
Slide 4
Slide 4 text
Python Memory Management ޖट ੌ ੌযզө?
Slide 5
Slide 5 text
Python Memory Management Reference Count 10 A Reference Object B Reference Count: 2 ࢜۽ чਸ Memory ী Allocation ೞח Ѫ ইצ ӝઓ Object ী Reference ୶о
Slide 6
Slide 6 text
Python Memory Management Delete Variable
Slide 7
Slide 7 text
Python Memory Management Reference Count 10 A Object B Reference Count: 1 (-1) पઁ A Object о Dealloc غח Ѫ ইצ Reference ݅ ઁ
Slide 8
Slide 8 text
Python Memory Management if Reference Count == 0
Slide 9
Slide 9 text
Python Memory Management if Reference Count == 0 10 A Object B Reference Count: 0 (-1) -> deallocation
Slide 10
Slide 10 text
Python Memory Management п ёо न Reference Count ܳ ٜҊ Ҋ, ೧ Count о 0 غݶ dealloc
Slide 11
Slide 11 text
Python Memory Management Ӓۢ Garbage Collection ਃ হחѢ ইצоৈ?? ࢎप Python ীࢲח ਤ җਸ Reference Count based GC ۄҊ ࠗܰҊ णפ.
Slide 12
Slide 12 text
Cyclic Reference GC ઁݾ ఫझ
Slide 13
Slide 13 text
Python Memory Management ޖट ੌ ੌযզө?
Slide 14
Slide 14 text
[L] Python Memory Management Recursive Reference L Object Reference Count: 2 ۠ ࣽജ ଵઑ غয ח ҃ Reference Count ܳ ӝ߈ਵ۽ ೠ Deallocation ࠛоמೞ
Slide 15
Slide 15 text
[L] Python Memory Management Cyclic Reference L Object Reference Count: 1 : Name L ਸ ਕب ࣽജଵઑ غয ӝ ٸޙী Reference Count ח 0 غ ঋח => Memory Leak!
Slide 16
Slide 16 text
Python Memory Management GC for Cyclic Reference Python ীࢲ GCח Cyclic Reference ܳ dealloc ೞחؘ ౠചغয णפ.
Slide 17
Slide 17 text
Python Memory Management GC for Cyclic Reference
Slide 18
Slide 18 text
Foo(0) Python Memory Management GC for Cyclic Reference A Object Next Foo(1) B Next Foo(0) Ref Count : 2 Foo(1) Ref Count : 2
Slide 19
Slide 19 text
Python Memory Management GC Reference Count Object Reference Count GC_Reference Count Reason Foo(0) 2 2 copy(refCnt) Foo(1) 2 2 copy(refCnt)
Slide 20
Slide 20 text
Python Memory Management Automated Garbage Collection Object Reference Count GC_Reference Count Reason Foo(0) 2 1 Foo(1).next.gcRefCnt -= 1 Foo(1) 2 1 Foo(0).next.gcRefCnt -= 1 Nothing Happened!
Slide 21
Slide 21 text
Python Memory Management GC for Cyclic Reference
Slide 22
Slide 22 text
Foo(0) Python Memory Management GC for Cyclic Reference A Next Foo(1) B Next Foo(0) Ref Count : 1 Foo(1) Ref Count : 1
Slide 23
Slide 23 text
Python Memory Management GC Reference Count Object Reference Count GC_Reference Count Reason Foo(1) 1 1 copy(ref_count) Foo(2) 1 1 copy(ref_count) Reference Count ч Deep Copy
Slide 24
Slide 24 text
Python Memory Management GC Reference Count Object Reference Count GC_Reference Count Reason Foo(0) 1 0 Foo(1).next.gcRefCnt -= 1 Foo(1) 1 0 Foo(0).next.gcRefCnt -= 1
Slide 25
Slide 25 text
Python Memory Management Cyclic Reference ী ೠ GC ࢿҕ!! Object Reference Count GC_Reference Count Reason Foo(0) 1 0 Foo(1).next.gcRefCnt -= 1 Foo(1) 1 0 Foo(0).next.gcRefCnt -= 1 Dealloc Dealloc
Slide 26
Slide 26 text
GIL: Global Interpreter Lock Python Memory Management
Slide 27
Slide 27 text
Pythonਵ۽ ѐߊೞח ഥࢎٜ ױҎ ݶ ޙઁ > ॆীࢲ GIL ަөਃ? Python Memory Management
Slide 28
Slide 28 text
Python Memory Management
Slide 29
Slide 29 text
Python Memory Management ୨ 3ѐ Reference Count о хࣗ غযঠ ೞחؘ, Ѿҗਵ۽ח 2ѐ݅ хࣗؽ -> Race Condition Ѿҗਵ۽ memory leak ਸ ߊࢤदఃѢա ߈۽ ই ইযঠ ೡ objectܳ લৈߡܾ ࣻب .
Slide 30
Slide 30 text
Python Memory Management Ѧ ߑೞ۰ݶ ݽٚ Reference Count Operation ী Lock ਸ Ѧݶ ؽ ೞ݅ Python Ѣ ݽٚ Operation ীࢲ Reference Count ܳ ೞӝ ٸޙী ח ষդ ࠺ബਯࢿਸ оઉ১
Slide 31
Slide 31 text
Python Memory Management Reference Counting ਸ ӝ߈ਵ۽ ೠ GC ܳ ࢎਊೞח ҃ Thread-Safe ೧ঠ ೣ Ӓ Ѿҗ GIL ߆ী উ হח Ѫ…. -> Ӓېࢲ Java ח Mark and Sweep ߑध GC ܳ ࢎਊפ Ѥ ܲ ࠙..^^7
Slide 32
Slide 32 text
Python Memory Management
Slide 33
Slide 33 text
Python Memory Management ࢎप ݫݽܻ ҕрী ҙೠ ղਊب חؘ.. - Pool, Block, Arena, Generation ١١… ۞р ೞܖઙੌ ೧ঠ ೧ࢲ ӝഥী..ƃƃ
Slide 34
Slide 34 text
Python Memory Management ࠗ۾: ৵ Python String Overhead о חо? ॆ ‘ч’ۄח ѐ֛ হ ݽٚ Object - Reference Count - Type Info - Char Array (value) - Intern ച غয ח ৈࠗ - String Object Hash ч
Slide 35
Slide 35 text
хࢎפ✌ ୶о ޙ ژח ҾӘೠ ݶ ઁٚ ইې োۅ۽ োۅ ࣁਃ! ӣળࢿ (ML Research Engineer, Pingpong)
[email protected]
Facebook. @codertimo Linked in. @codertimo Github. @codertimo