PHYSICS_LIB Telegram 13673
This media is not supported in your browser
VIEW IN TELEGRAM
πŸ–₯ Π‘Π±ΠΎΡ€ΠΊΠ° мусора (Π°Π½Π³Π». garbage collection) Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ β€” ΠΎΠ΄Π½Π° ΠΈΠ· Ρ„ΠΎΡ€ΠΌ автоматичСского управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ. Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ процСсс, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ сборщиком мусора (Π°Π½Π³Π». garbage collector - GC), пСриодичСски освобоТдаСт ΠΏΠ°ΠΌΡΡ‚ΡŒ, удаляя ΠΈΠ· Π½Π΅Ρ‘ ΡΡ‚Π°Π²ΡˆΠΈΠ΅ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. АвтоматичСская сборка мусора позволяСт ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ доступа ΠΊ памяти. Π‘Π±ΠΎΡ€ΠΊΠ° мусора Π±Ρ‹Π»Π° Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π° Π”ΠΆΠΎΠ½ΠΎΠΌ ΠœΠ°ΠΊΠΊΠ°Ρ€Ρ‚ΠΈ Π² 1959 Π³ΠΎΠ΄Ρƒ Π² срСдС программирования Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΌ ΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ языкС программирования Лисп. ВпослСдствии ΠΎΠ½Π° ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ»Π°ΡΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… систСмах программирования ΠΈ языках, прСимущСствСнно β€” Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΈ логичСских. ΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ сборки мусора Π² языках этих Ρ‚ΠΈΠΏΠΎΠ² обусловлСна Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ структура Ρ‚Π°ΠΊΠΈΡ… языков Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΡ€Π°ΠΉΠ½Π΅ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ отслСТиваниС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² памяти ΠΈ Ρ€ΡƒΡ‡Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Сю. Π¨ΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² этих языках списки ΠΈ основанныС Π½Π° Π½ΠΈΡ… слоТныС структуры Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ постоянно ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ, Π½Π°Π΄ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ, Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‚ΡΡ, ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ, ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠΎΠΌΠ΅Π½Ρ‚ удалСния Ρ‚ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ.

Π’ ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹Ρ… ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… языках сборка мусора Π΄ΠΎΠ»Π³ΠΎ Π½Π΅ использовалась. ΠŸΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π΄Π°Π²Π°Π»ΠΎΡΡŒ Ρ€ΡƒΡ‡Π½ΠΎΠΌΡƒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, ΠΊΠ°ΠΊ Π±ΠΎΠ»Π΅Π΅ эффСктивному ΠΈ прСдсказуСмому. Но со Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ‹ 1980-Ρ… Π³ΠΎΠ΄ΠΎΠ² тСхнология сборки мусора стала ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… (ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ…), ΠΈ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… языках программирования, Π° со Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ‹ 1990-Ρ… Π³ΠΎΠ΄ΠΎΠ² всё большСС число создаваСмых языков ΠΈ срСд, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π½Π° ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ сборки мусора Π»ΠΈΠ±ΠΎ ΠΊΠ°ΠΊ СдинствСнный, Π»ΠΈΠ±ΠΎ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· доступных ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² управлСния динамичСской ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ. Π’ настоящСС врСмя ΠΎΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠžΠ±Π΅Ρ€ΠΎΠ½, Java, Python, Ruby, C#, D, F#, Go ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… языках.

β–ͺ️Висячая ссылка (Π°Π½Π³Π». dangling pointer) β€” это ссылка Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΆΠ΅ ΡƒΠ΄Π°Π»Ρ‘Π½ ΠΈΠ· памяти. ПослС удалСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° всС ΡΠΎΡ…Ρ€Π°Π½ΠΈΠ²ΡˆΠΈΠ΅ΡΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ссылки Π½Π° Π½Π΅Π³ΠΎ становятся «висячими». ΠŸΠ°ΠΌΡΡ‚ΡŒ, занимаСмая Ρ€Π°Π½Π΅Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС ΠΈ ΡΡ‚Π°Ρ‚ΡŒ нСдоступной, ΠΈΠ»ΠΈ Π±Ρ‹Ρ‚ΡŒ использована для размСщСния Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΏΠΎ «повисшСй» ссылкС ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ ΡΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π½ΠΈΡŽ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π·Π°Ρ‰ΠΈΡ‚Ρ‹ памяти ΠΈ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠΉ остановкС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π° Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ β€” ΠΊ нСпрСдсказуСмым послСдствиям. ПоявлСниС висячих ссылок ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ становится слСдствиСм Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΎΡ†Π΅Π½ΠΊΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°: программист Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ удалСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΅Π³ΠΎ использованиС прСкратится.

β–ͺ️УтСчки памяти β€” Π‘ΠΎΠ·Π΄Π°Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² динамичСской памяти, программист ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ использования. Если ΡΡΡ‹Π»Π°ΡŽΡ‰Π΅ΠΉΡΡ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ присвоСно Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ссылок, ΠΎΠ½ становится ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ нСдоступным, Π½ΠΎ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΅Π³ΠΎ удалСния Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π»Π°ΡΡŒ. Вакая ситуация ΠΈ называСтся ΡƒΡ‚Π΅Ρ‡ΠΊΠΎΠΉ памяти (Π°Π½Π³Π». memory leak). Если ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ссылки Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π΅Ρ€ΡΡŽΡ‚ΡΡ, ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ постоянно, Ρ‚ΠΎ ΡƒΡ‚Π΅Ρ‡ΠΊΠ° памяти проявляСтся Π² постСпСнном ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠΈ ΠΎΠ±ΡŠΡ‘ΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ памяти; Ссли ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π΄ΠΎΠ»Π³ΠΎ, ΠΎΠ±ΡŠΡ‘ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Сю памяти постоянно растёт, ΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ врСмя ΠΎΡ‰ΡƒΡ‚ΠΈΠΌΠΎ замСдляСтся Ρ€Π°Π±ΠΎΡ‚Π° систСмы (ΠΈΠ·-Π·Π° нСобходимости ΠΏΡ€ΠΈ любом Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠΈ памяти ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свопинг), Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° исчСрпываСт доступный ΠΎΠ±ΡŠΡ‘ΠΌ адрСсного пространства ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ с ошибкой. πŸ“± ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ

πŸ“± Автор Π²ΠΈΠ΄Π΅ΠΎ: Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€ Π‘Π°Π»ΡƒΠ½

#ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ #Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° #ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ #сборщикмусора #cpp #java #coding #programming

πŸ’‘ Physics.Math.Code
// @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ”₯80πŸ‘53❀16🀨2πŸ‘¨β€πŸ’»1πŸ™ˆ1



tgoop.com/physics_lib/13673
Create:
Last Update:

πŸ–₯ Π‘Π±ΠΎΡ€ΠΊΠ° мусора (Π°Π½Π³Π». garbage collection) Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ β€” ΠΎΠ΄Π½Π° ΠΈΠ· Ρ„ΠΎΡ€ΠΌ автоматичСского управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ. Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ процСсс, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ сборщиком мусора (Π°Π½Π³Π». garbage collector - GC), пСриодичСски освобоТдаСт ΠΏΠ°ΠΌΡΡ‚ΡŒ, удаляя ΠΈΠ· Π½Π΅Ρ‘ ΡΡ‚Π°Π²ΡˆΠΈΠ΅ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. АвтоматичСская сборка мусора позволяСт ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ доступа ΠΊ памяти. Π‘Π±ΠΎΡ€ΠΊΠ° мусора Π±Ρ‹Π»Π° Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π° Π”ΠΆΠΎΠ½ΠΎΠΌ ΠœΠ°ΠΊΠΊΠ°Ρ€Ρ‚ΠΈ Π² 1959 Π³ΠΎΠ΄Ρƒ Π² срСдС программирования Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΌ ΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ языкС программирования Лисп. ВпослСдствии ΠΎΠ½Π° ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ»Π°ΡΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… систСмах программирования ΠΈ языках, прСимущСствСнно β€” Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΈ логичСских. ΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ сборки мусора Π² языках этих Ρ‚ΠΈΠΏΠΎΠ² обусловлСна Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ структура Ρ‚Π°ΠΊΠΈΡ… языков Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΡ€Π°ΠΉΠ½Π΅ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ отслСТиваниС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² памяти ΠΈ Ρ€ΡƒΡ‡Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Сю. Π¨ΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² этих языках списки ΠΈ основанныС Π½Π° Π½ΠΈΡ… слоТныС структуры Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ постоянно ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ, Π½Π°Π΄ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ, Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‚ΡΡ, ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ, ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠΎΠΌΠ΅Π½Ρ‚ удалСния Ρ‚ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ.

Π’ ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹Ρ… ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… языках сборка мусора Π΄ΠΎΠ»Π³ΠΎ Π½Π΅ использовалась. ΠŸΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π΄Π°Π²Π°Π»ΠΎΡΡŒ Ρ€ΡƒΡ‡Π½ΠΎΠΌΡƒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, ΠΊΠ°ΠΊ Π±ΠΎΠ»Π΅Π΅ эффСктивному ΠΈ прСдсказуСмому. Но со Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ‹ 1980-Ρ… Π³ΠΎΠ΄ΠΎΠ² тСхнология сборки мусора стала ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… (ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ…), ΠΈ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… языках программирования, Π° со Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ‹ 1990-Ρ… Π³ΠΎΠ΄ΠΎΠ² всё большСС число создаваСмых языков ΠΈ срСд, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π½Π° ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ сборки мусора Π»ΠΈΠ±ΠΎ ΠΊΠ°ΠΊ СдинствСнный, Π»ΠΈΠ±ΠΎ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· доступных ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² управлСния динамичСской ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ. Π’ настоящСС врСмя ΠΎΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠžΠ±Π΅Ρ€ΠΎΠ½, Java, Python, Ruby, C#, D, F#, Go ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… языках.

β–ͺ️Висячая ссылка (Π°Π½Π³Π». dangling pointer) β€” это ссылка Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΆΠ΅ ΡƒΠ΄Π°Π»Ρ‘Π½ ΠΈΠ· памяти. ПослС удалСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° всС ΡΠΎΡ…Ρ€Π°Π½ΠΈΠ²ΡˆΠΈΠ΅ΡΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ссылки Π½Π° Π½Π΅Π³ΠΎ становятся «висячими». ΠŸΠ°ΠΌΡΡ‚ΡŒ, занимаСмая Ρ€Π°Π½Π΅Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС ΠΈ ΡΡ‚Π°Ρ‚ΡŒ нСдоступной, ΠΈΠ»ΠΈ Π±Ρ‹Ρ‚ΡŒ использована для размСщСния Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΏΠΎ «повисшСй» ссылкС ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ ΡΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π½ΠΈΡŽ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π·Π°Ρ‰ΠΈΡ‚Ρ‹ памяти ΠΈ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠΉ остановкС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π° Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ β€” ΠΊ нСпрСдсказуСмым послСдствиям. ПоявлСниС висячих ссылок ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ становится слСдствиСм Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΎΡ†Π΅Π½ΠΊΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°: программист Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ удалСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΅Π³ΠΎ использованиС прСкратится.

β–ͺ️УтСчки памяти β€” Π‘ΠΎΠ·Π΄Π°Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² динамичСской памяти, программист ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ использования. Если ΡΡΡ‹Π»Π°ΡŽΡ‰Π΅ΠΉΡΡ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ присвоСно Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ссылок, ΠΎΠ½ становится ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ нСдоступным, Π½ΠΎ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΅Π³ΠΎ удалСния Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π»Π°ΡΡŒ. Вакая ситуация ΠΈ называСтся ΡƒΡ‚Π΅Ρ‡ΠΊΠΎΠΉ памяти (Π°Π½Π³Π». memory leak). Если ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ссылки Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π΅Ρ€ΡΡŽΡ‚ΡΡ, ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ постоянно, Ρ‚ΠΎ ΡƒΡ‚Π΅Ρ‡ΠΊΠ° памяти проявляСтся Π² постСпСнном ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠΈ ΠΎΠ±ΡŠΡ‘ΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ памяти; Ссли ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π΄ΠΎΠ»Π³ΠΎ, ΠΎΠ±ΡŠΡ‘ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Сю памяти постоянно растёт, ΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ врСмя ΠΎΡ‰ΡƒΡ‚ΠΈΠΌΠΎ замСдляСтся Ρ€Π°Π±ΠΎΡ‚Π° систСмы (ΠΈΠ·-Π·Π° нСобходимости ΠΏΡ€ΠΈ любом Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠΈ памяти ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свопинг), Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° исчСрпываСт доступный ΠΎΠ±ΡŠΡ‘ΠΌ адрСсного пространства ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ с ошибкой. πŸ“± ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ

πŸ“± Автор Π²ΠΈΠ΄Π΅ΠΎ: Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€ Π‘Π°Π»ΡƒΠ½

#ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ #Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° #ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ #сборщикмусора #cpp #java #coding #programming

πŸ’‘ Physics.Math.Code
// @physics_lib

BY Physics.Math.Code


Share with your friend now:
tgoop.com/physics_lib/13673

View MORE
Open in Telegram


Telegram News

Date: |

Step-by-step tutorial on desktop: You can invite up to 200 people from your contacts to join your channel as the next step. Select the users you want to add and click β€œInvite.” You can skip this step altogether. Write your hashtags in the language of your target audience. "Doxxing content is forbidden on Telegram and our moderators routinely remove such content from around the world," said a spokesman for the messaging app, Remi Vaughn. 3How to create a Telegram channel?
from us


Telegram Physics.Math.Code
FROM American