{"id":255497,"date":"2022-06-10T07:08:05","date_gmt":"2022-06-10T06:08:05","guid":{"rendered":"https:\/\/blog.jetbrains.com\/dotnet\/2022\/05\/23\/how-we-used-dotmemory-to-optimize-dotmemory\/"},"modified":"2022-06-10T07:08:08","modified_gmt":"2022-06-10T06:08:08","slug":"how-we-used-dotmemory-to-optimize-dotmemory","status":"publish","type":"dotnet","link":"https:\/\/blog.jetbrains.com\/ko\/dotnet\/2022\/06\/10\/how-we-used-dotmemory-to-optimize-dotmemory\/","title":{"rendered":"dotMemory\ub97c \ud65c\uc6a9\ud55c dotMemory \ucd5c\uc801\ud654"},"content":{"rendered":"<p><a href=\"https:\/\/www.jetbrains.com\/ko-kr\/dotmemory\/\" target=\"_blank\" rel=\"noreferrer noopener\">dotMemory<\/a>\ub294 JetBrains\uc758 .NET \uba54\ubaa8\ub9ac \ud504\ub85c\ud30c\uc77c\ub7ec\uc785\ub2c8\ub2e4.<\/p>\n<p>\uc774 \uae00\uc5d0\uc11c JetBrains\uc5d0\uc11c dotMemory \ubc0f <a href=\"https:\/\/www.jetbrains.com\/ko-kr\/profiler\/\" target=\"_blank\" rel=\"noreferrer noopener\">dotTrace<\/a>\ub77c\ub294 \uc790\uccb4 \ub3c4\uad6c\ub97c \uc9c1\uc811 \uc0ac\uc6a9\ud558\uc5ec \uac1c\uc120\uc810\uc744 \ucc3e\uace0, dotMemory\uc758 \uc54c\uace0\ub9ac\uc998 \uc911 \ud558\ub098\ub97c \ucd5c\uc801\ud654\ud55c \ubc29\ubc95\uc744 \uc18c\uac1c\ud558\ub824 \ud569\ub2c8\ub2e4. \ub610\ud55c, \uc800\ud76c \ud300\uc740 dotTrace\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc54c\uace0\ub9ac\uc998\uc744 \ud55c\uce35 \ub354 \uac1c\uc120\ud558\uace0 <a href=\"https:\/\/github.com\/dotnet\/BenchmarkDotNet\" target=\"_blank\" rel=\"noreferrer noopener\">BenchmarkDotNet<\/a>\uc744 \ud1b5\ud574 \ucd5c\uc801\ud654 \ud504\ub85c\uc138\uc2a4\ub97c \uc644\ub8cc\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc81c\uac00 \uc774 \uae00\uc744 \uacf5\uc720\ud558\ub294 \ub370 \uc601\uac10\uc744 \uc900 2\uac00\uc9c0 \uae00(<a href=\"https:\/\/habr.com\/ru\/company\/pvs-studio\/blog\/562890\/\" target=\"_blank\" rel=\"noreferrer noopener\">1<\/a>, <a href=\"https:\/\/habr.com\/ru\/company\/pvs-studio\/blog\/572306\/\" target=\"_blank\" rel=\"noreferrer noopener\">2<\/a>)\uc758 \uc800\uc790\uc5d0\uac8c \uac10\uc0ac\ub97c \uc804\ud558\uace0 \uc2f6\uc2b5\ub2c8\ub2e4.<\/p>\n<hr class=\"wp-block-separator\">\n<p>\uc774 \uac1c\uc120 \uc791\uc5c5\uc740 Slack\uc5d0\uc11c dotMemory\uc758 <a href=\"https:\/\/www.jetbrains.com\/help\/dotmemory\/Retained_by.html\" target=\"_blank\" rel=\"noreferrer noopener\">\ub3c4\ubbf8\ub124\uc774\ud130 \ud2b8\ub9ac<\/a> \ubb38\uc81c\uc640 \uad00\ub828\ud55c \ub3d9\ub8cc\uc758 \uba54\uc2dc\uc9c0\ub97c \ubc1b\uc558\uc744 \ub54c \uc2dc\uc791\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \ud574\ub2f9 \ud2b8\ub9ac\uc758 \ub370\uc774\ud130\ub294 \uacc4\uc0b0\uc5d0 \ub9e4\uc6b0 \uae34 \uc2dc\uac04\uc774 \uc18c\uc694\ub418\uc5c8\uc8e0. \uacc4\uc0b0 \uc2dc\uac04\uc774 \ub108\ubb34 \uae34 \ub098\uba38\uc9c0 \uadf8\ub294 \ud504\ub85c\uc138\uc2a4\uac00 \ub05d\ub0a0 \ub54c\uae4c\uc9c0 \uae30\ub2e4\ub9b4 \uc218 \uc5c6\uc5c8\uc2b5\ub2c8\ub2e4. \ub2e4\ud589\ud788 \ud574\ub2f9 \ubb38\uc81c\ub294 \ub0b4\ubd80 \ubb38\uc81c\uc600\uc73c\ubbc0\ub85c, \uba54\ubaa8\ub9ac \uc2a4\ub0c5\uc0f7\uc744 \uc218\uc9d1\ud558\uc5ec \uc870\uc0ac\uc5d0 \ucc29\uc218\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ub85c\uceec \uc2dc\uc2a4\ud15c\uc5d0\uc11c \ubb38\uc81c\ub97c \uc7ac\ud604\ud558\uc790\ub9c8\uc790 \uba54\ubaa8\ub9ac \uc0ac\uc6a9\ub7c9\uc774 \ucd08\ub2f9 1.17GB\uc758 \uc18d\ub3c4\ub85c \ube60\ub974\uac8c \uc99d\uac00\ud558\uae30 \uc2dc\uc791\ud558\uc5ec, \ud504\ub85c\uc138\uc2a4\uc5d0\uc11c \uc2a4\uc651 \ud30c\uc77c\uc774 \uc0ac\uc6a9\ub418\ub294 \uac83\uc744 \ud655\uc778\ud588\uc2b5\ub2c8\ub2e4. \uc77c\ubc18\uc801\uc73c\ub85c \uc774\ub7f0 \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud558\uba74 \uc801\uc808\ud55c \uc2dc\uac04 \ub0b4\uc5d0 \uacb0\uacfc\ub97c \ubc1b\uc9c0 \ubabb\ud560 \uac00\ub2a5\uc131\uc774 \ub192\uc2b5\ub2c8\ub2e4. \uadf8\ub7ec\ubbc0\ub85c dotMemory\ub97c \uc0ac\uc6a9\ud558\uc5ec dotMemory\uc758 \ubb38\uc81c\ub97c \ud574\uacb0\ud574\uc57c \ud588\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ud504\ub85c\uc138\uc2a4\uac00 \ubb3c\ub9ac\uc801 \uba54\ubaa8\ub9ac\ub97c \uc644\uc804\ud788 \uc18c\ubaa8\ud558\uba74 \uc2a4\ub0c5\uc0f7\uc744 \ucea1\ucc98\ud558\ub294 \uac83\uc740 \uc27d\uc9c0 \uc54a\uc73c\uba70, \uc6b4\uc601 \uccb4\uc81c\uae4c\uc9c0 \ubd88\uc548\uc815\ud574\uc9c8 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c \uba54\ubaa8\ub9ac \uc0ac\uc6a9\ub7c9\uc774 \ube60\ub974\uac8c \uc99d\uac00\ud558\uae30 \uc2dc\uc791\ud558\ub098, \ubb3c\ub9ac\uc801 \uba54\ubaa8\ub9ac\uac00 \uc57d\uac04 \ub0a8\uc558\uc744 \ub54c \uc2a4\ub0c5\uc0f7\uc744 \ucea1\ucc98\ud558\uae30\ub85c \uacb0\uc815\ud588\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/www.jetbrains.com\/ko-kr\/dotmemory\/download\/#section=commandline\" target=\"_blank\" rel=\"noreferrer noopener\">dotMemory \ucf58\uc194 \ud504\ub85c\ud30c\uc77c\ub7ec<\/a>\ub294 \uc774 \uc791\uc5c5\uc5d0 \uac00\uc7a5 \uc801\ud569\ud55c \ub3c4\uad6c\uc600\uc2b5\ub2c8\ub2e4.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-242729\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/04\/13500b92278006dfad1432f7640d85ec.png\" alt=\"\" width=\"1560\" height=\"892\"><\/figure>\n<p>\uc774 \uba85\ub839\uc5b4\ub294 \ud504\ub85c\ud30c\uc77c\ub9c1 \ubaa8\ub4dc\uc5d0\uc11c <code>dotMemory.UI.64.exe<\/code>\ub97c \uc2dc\uc791\ud569\ub2c8\ub2e4. \u201c\ud504\ub77c\uc774\ube57 \ubc14\uc774\ud2b8\u201d\uac00 20GB\uc5d0 \ub3c4\ub2ec\ud558\ub294 \uc989\uc2dc \uc2a4\ub0c5\uc0f7\uc774 \ucea1\ucc98\ub418\uba70, \ud504\ub85c\ud30c\uc77c\ub9c1 \uc644\ub8cc \ud6c4 dotMemory\uc5d0\uc11c \uc2a4\ub0c5\uc0f7\uc774 \uc5f4\ub9bd\ub2c8\ub2e4. \uc800\ud76c \ud300\uc740 \uc2a4\uc651\uc774 \ub2e4\uc2dc \ubc1c\uc0dd\ud558\uc9c0 \uc54a\ub3c4\ub85d \uc218\ub3d9\uc73c\ub85c \ud504\ub85c\ud30c\uc77c\ub9c1\uc744 \uc911\uc9c0\ud574\uc57c \ud588\uc2b5\ub2c8\ub2e4. \uadf8\ub807\uae30\uc5d0 \ub370\uc774\ud130\ub97c \ucda9\ubd84\ud788 \ud655\ubcf4\ud560 \ub54c\uae4c\uc9c0 \uae30\ub2e4\ub9b0 \ud6c4 <kbd>Ctrl+C<\/kbd>\ub97c \ub20c\ub800\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ub2e4\uc74c\uc73c\ub85c \ucea1\ucc98\ub41c \uc2a4\ub0c5\uc0f7\uc744 dotMemory\uc5d0\uc11c \uc5f4\uace0, \uc800\ub294 \ub3d9\ub8cc\ub294 \ud558\uc9c0 \ubabb\ud588\uc9c0\ub9cc, \uc81c \uc2a4\ub0c5\uc0f7\uc5d0\uc11c \ud655\uc778\ud560 \uc218 \uc788\uc5c8\ub358 \ub3c4\ubbf8\ub124\uc774\ud130 \ud2b8\ub9ac\ub97c \ubd84\uc11d\ud558\ub294 \uac83\uc73c\ub85c \uc2dc\uc791\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-242711\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/04\/eef9bb92e955ea823fa63d1df10bb368.png\" alt=\"\" width=\"1560\" height=\"905\"><\/figure>\n<p>\ubcf4\uc2dc\ub2e4\uc2dc\ud53c 6\ucc9c\ub9cc \uac1c\uc5d0 \ub2ec\ud558\ub294 <code>CompactDominatorTreeNode+Builder<\/code> \uac1d\uccb4\uac00 \uba54\ubaa8\ub9ac\ub97c \ucc44\uc6b0\uace0 \uc788\uc73c\uba70, \uac01 \uac1d\uccb4\uc5d0\ub294 \ub515\uc154\ub108\ub9ac\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \ub300\ubd80\ubd84\uc758 \ub515\uc154\ub108\ub9ac\uc5d0 \ud06c\uae30 &lt; \uc6a9\ub7c9\uc774\ub77c\ub294 \ubb38\uc81c\uac00 \uc788\uc5b4, \ub9ce\uc740 \uba54\ubaa8\ub9ac\uac00 \ub0ad\ube44\ub418\uace0 \uc788\ub2e4\ub294 \uc0ac\uc2e4\uc744 \uace7 \ud30c\uc545\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uadf8\ub807\uac8c \ub9ce\uc740 \ub515\uc154\ub108\ub9ac\uac00 \ud544\uc694\ud558\uc9c0 \uc54a\uc744 \uc218 \uc788\uc73c\ub2c8, \ubaa8\ub4e0 \ub515\uc154\ub108\ub9ac\uc758 \uc6a9\ub3c4\ub97c \ud655\uc778\ud574\uc57c \ud588\uc2b5\ub2c8\ub2e4. <code>CompactDominatorTreeNode+Builder<\/code> \ub178\ub4dc\ub97c \uc120\ud0dd\ud558\uace0 \uc120\uc5b8\uc73c\ub85c \uc774\ub3d9\ud588\uc2b5\ub2c8\ub2e4(\ucee8\ud14d\uc2a4\ud2b8 \uba54\ub274\ub97c \uc0ac\uc6a9\ud558\uac70\ub098 <kbd>Ctrl+L<\/kbd>\uc744 \ub20c\ub7ec \uc774\ub3d9 \uac00\ub2a5). \ub2e4\uc74c\uc73c\ub85c \ud574\ub2f9 \ud074\ub798\uc2a4\uac00 \uc5f4\ub9b0 \uc81c IDE(<a href=\"https:\/\/www.jetbrains.com\/ko-kr\/rider\/\" target=\"_blank\" rel=\"noreferrer noopener\">Rider<\/a>)\ub85c \uc774\ub3d9\ud588\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/www.jetbrains.com\/help\/rider\/Navigation_and_Search__Finding_Usages.html\" target=\"_blank\" rel=\"noreferrer noopener\">Find Usages(\uc0ac\uc6a9 \uc704\uce58 \ucc3e\uae30)<\/a>\ub97c \uc2e4\ud589\ud558\uc790 \ub3c4\ubbf8\ub124\uc774\ud130 \ud2b8\ub9ac \uc555\ucd95 \uc54c\uace0\ub9ac\uc998\uc774 \ud3ec\ud568\ub41c <code>CompactDominatorTree.Build<\/code> \uba54\uc11c\ub4dc\uac00 \ud45c\uc2dc\ub418\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ubc30\uacbd\uc9c0\uc2dd\uc744 \uc57d\uac04 \uc124\uba85\ub4dc\ub9ac\uc790\uba74, dotMemory\uc5d0\uc11c \ub3c4\ubbf8\ub124\uc774\ud130 \ud2b8\ub9ac\ub97c \ube4c\ub4dc\ud558\ub294 \ubc29\uc2dd\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. \uba3c\uc800, \uac01 \uac1d\uccb4\uc5d0 \ub300\ud574 \ud574\ub2f9 \uac1d\uccb4\ub9cc\uc744 \ubcf4\uc720\ud558\ub294 \uac1d\uccb4\ub97c \uac80\uc0c9\ud558\uc5ec \ubcf4\uc720 \uac1d\uccb4\ub97c \uc800\uc7a5\ud558\uac70\ub098, \uadf8\ub7ec\ud55c \ubcf4\uc720 \uac1d\uccb4\uac00 \uc5c6\ub294 \uacbd\uc6b0 \uc774\ub97c \ud45c\uc2dc\ud558\ub294 \ub9c8\ucee4\ub97c \uc800\uc7a5\ud569\ub2c8\ub2e4. \uc774 \ud2b8\ub9ac\ub294 \ub9e4\uc6b0 \ucee4\uc9c8 \uac00\ub2a5\uc131\uc774 \uc788\uc73c\ubbc0\ub85c, \uc0ac\uc6a9\uc790\uc5d0\uac8c \u2018\uc788\ub294 \uadf8\ub300\ub85c\u2019 \ud45c\uc2dc\ud558\ub294 \uac83\uc740 \uc758\ubbf8\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c dotMemory\ub294 \ud2b8\ub9ac\uc758 \uac01 \uc218\uc900\uc5d0\uc11c \uac1d\uccb4 \ud0c0\uc785\ubcc4\ub85c \ud2b8\ub9ac \ub178\ub4dc\uc758 \uadf8\ub8f9\uc744 \uc0dd\uc131\ud569\ub2c8\ub2e4. <code>CompactDominatorTreeNode+Builder<\/code>\ub294 \ube4c\ub4dc \uc911\uc778 \uc555\ucd95 \ud2b8\ub9ac\uc758 \ub178\ub4dc\ub97c \ud45c\uc2dc\ud558\uba70, \ub515\uc154\ub108\ub9ac\ub294 \ud0c0\uc785\ubcc4\ub85c \ub178\ub4dc\uc758 \uadf8\ub8f9\uc744 \uc0dd\uc131\ud558\ub294 \ub370 \uc0ac\uc6a9\ub429\ub2c8\ub2e4.<\/p>\n<p>\uc774 \uc54c\uace0\ub9ac\uc998\uc740 \u201c\ud558\uc704\u2192 \uc0c1\uc704\u201d \ud615\uc2dd\uc73c\ub85c \ud2b8\ub9ac\ub97c \uc218\uc2e0\ud569\ub2c8\ub2e4. \uc989, \uac01 \uac1d\uccb4\ub294 \uc0c1\uc704 \uc694\uc18c\uc5d0 \ub300\uc751\ub429\ub2c8\ub2e4. \uc54c\uace0\ub9ac\uc998\uc740 \uc2a4\ub0c5\uc0f7\uc758 \ubaa8\ub4e0 \uac1d\uccb4\ub97c \uc21c\ucc28\uc801\uc73c\ub85c \ud0d0\uc0c9\ud558\uba70, \ub3c4\ubbf8\ub124\uc774\ud130 \uc0c1\uc704 \ud2b8\ub9ac\uac00 \uc544\uc9c1 \ucc98\ub9ac\ub418\uc9c0 \uc54a\uc740 \uac01 \uac1d\uccb4\uc5d0 \ub300\ud574 \uc555\ucd95 \ud2b8\ub9ac\uc5d0 \uc0c8 \uadf8\ub8f9 \ub178\ub4dc\uac00 \uc0dd\uc131\ub429\ub2c8\ub2e4. \ud604\uc7ac \ub178\ub4dc\ub294 \uadf8\ub8f9 \ub178\ub4dc(\uae30\uc874 \ub178\ub4dc \ub610\ub294 \uc0c8\ub85c \uc0dd\uc131\ub41c \ub178\ub4dc)\uc758 \ud558\uc704 \ub178\ub4dc\uac00 \ub429\ub2c8\ub2e4.<\/p>\n<p>\uc774 \ubc29\ubc95\uc744 \uc0ac\uc6a9\ud558\uba74 \ud2b8\ub9ac\ub294 \uc784\uc758\uc758 \uc21c\uc11c\uc5d0 \ub530\ub77c \uc21c\ud68c\ud569\ub2c8\ub2e4. \uac01 \ub178\ub4dc\ub294 \ud0c0\uc785\ubcc4\ub85c \ub178\ub4dc\uc758 \uadf8\ub8f9\uc744 \uc0dd\uc131\ud558\ub294 \ub515\uc154\ub108\ub9ac\ub97c \uc800\uc7a5\ud574\uc57c \ud569\ub2c8\ub2e4. \uc555\ucd95 \ud2b8\ub9ac\ub294 \ubaa8\ub4e0 \uac1d\uccb4\ub97c \ud3ec\ud568\ud558\ub294 \ud2b8\ub9ac\ubcf4\ub2e4 \ud6e8\uc52c \uc791\uace0, \uc2ec\ud55c \uba54\ubaa8\ub9ac \uacfc\uc6a9\uc774 \ubc1c\uc0dd\ud558\uc9c0 \uc54a\uc73c\ubbc0\ub85c \ub300\ubd80\ubd84\uc758 \uacbd\uc6b0\uc5d4 \ubb38\uc81c\uac00 \ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \uadf8\ub7ec\ub098 \uc774 \uc2a4\ub0c5\uc0f7\uc740 \uc555\ucd95 \ud2b8\ub9ac\ub9c8\uc800 \ub9e4\uc6b0 \ud070 \uc608\uc678\uc801 \uacbd\uc6b0\uc600\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ub530\ub77c\uc11c \u2018\uc0ac\uc6a9\ud558\ub294 \ub515\uc154\ub108\ub9ac \uac1c\uc218\ub97c \uc904\uc77c \ubc29\ubc95\u2019\uc744 \uace0\ubbfc\ud558\uac8c \ub418\uc5c8\uc2b5\ub2c8\ub2e4. \ubcf5\ud569\ud0a4\uac00 \uc788\ub294 \ub515\uc154\ub108\ub9ac\uac00 \ub2e8 \ud558\ub098\ubfd0\uc774\ub77c\uba74 \uc5b4\ub5a8\uae4c\uc694? \uc548\ud0c0\uae5d\uac8c\ub3c4 \uc774 \ubc29\ubc95\uc744 \uc0ac\uc6a9\ud558\ub354\ub77c\ub3c4 \ubd84\ud574\ub97c \uc218\ud589\ud574\uc57c \ud558\ubbc0\ub85c \uba54\ubaa8\ub9ac \uacfc\uc6a9 \ub610\ub294 \ub354 \ub192\uc740 \uacc4\uc0b0 \ubcf5\uc7a1\uc131\uc774 \ucd08\ub798\ub420 \uac00\ub2a5\uc131\uc774 \uc788\uc5c8\uc2b5\ub2c8\ub2e4. \ub2e4\ub978 \ud574\uacb0\ucc45\uc744 \ubaa8\uc0c9\ud574\uc57c \ud588\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ud55c\ubc1c \ubb3c\ub7ec\uc11c \ub354 \ub113\uc740 \uc2dc\uc57c\ub85c \ubb38\uc81c\ub97c \ubc14\ub77c\ubcf4\uc558\uc2b5\ub2c8\ub2e4. \ub108\ube44 \uc6b0\uc120 \ud0d0\uc0c9\uacfc \uac19\uc740 \ub2e4\ub978 \ubc29\ubc95\uc744 \uc0ac\uc6a9\ud558\uc5ec \ud2b8\ub9ac\ub97c \uc21c\ud68c\ud558\ub294 \ubc29\ubc95\uc774 \ub3c4\uc6c0\uc774 \ub420 \uac83 \uac19\uc558\uc2b5\ub2c8\ub2e4. \uc77c\ubc18\ud0a4\uac00 \uc0ac\uc6a9\ub41c \ub515\uc154\ub108\ub9ac \ud558\ub098\uba74 \ucda9\ubd84\ud560 \ud14c\uace0, \uc555\ucd95 \ud2b8\ub9ac\uc758 \uc0c8\ub85c\uc6b4 \uc218\uc900\uc744 \ube4c\ub4dc\ud560 \ub54c\ub9c8\ub2e4 \ub515\uc154\ub108\ub9ac\ub97c \uc9c0\uc6b0\uba74 \ub2e4\uc74c \ubc18\ubcf5 \uc2dc \ub2e4\uc2dc \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc774 \ubc29\ubc95\uc5d0\ub3c4 \uc8fc\uc758\ud574\uc57c \ud560 \uc810\uc774 \uc788\uc5c8\uc2b5\ub2c8\ub2e4. \u201c\ud558\uc704 \u2192 \uc0c1\uc704\u201d \ud615\uc2dd\uc740 \uc8fc\uc5b4\uc9c4 \ub178\ub4dc\uc758 \ud558\uc704 \ub178\ub4dc\ub97c \ubd88\ub7ec\uc624\uae30 \uc704\ud55c \uacc4\uc0b0 \ubcf5\uc7a1\ub3c4\uac00 \ub192\uc73c\ubbc0\ub85c, \ub108\ube44 \uc6b0\uc120 \ud0d0\uc0c9\uc744 \uc0ac\uc6a9\ud558\uae30\uc5d0 \uc801\ud569\ud558\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4. \uc785\ub825 \ud2b8\ub9ac\ub97c \uc704\ud55c \ub2e4\ub978 \ud615\uc2dd\uc774 \ud544\uc694\ud588\uc2b5\ub2c8\ub2e4. \ub2e4\ud589\ud788 \uc774\ubbf8 \uc801\uc808\ud55c \ud615\uc2dd\uc744 \uc54c\uace0 \uc788\uc5c8\uc2b5\ub2c8\ub2e4. dotMemory\ub97c \ud65c\uc6a9\ud558\uba74 \ub3c4\ubbf8\ub124\uc774\ud130 \ud2b8\ub9ac\ub97c \u201c\uc0c1\uc704 \u2192 \ud558\uc704\u201d \uc778\uc811 \ub9ac\uc2a4\ud2b8\ub85c \uc800\uc7a5\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc989, \uacc4\uc0b0 \ubcf5\uc7a1\ub3c4\ub97c \ub192\uc774\uc9c0 \uc54a\uace0\ub3c4 \ub108\ube44 \uc6b0\uc120 \ud0d0\uc0c9\uc744 \uc0ac\uc6a9\ud558\ub3c4\ub85d \uc54c\uace0\ub9ac\uc998\uc744 \ubcc0\uacbd\ud560 \uc218 \uc788\uac8c \ub41c \uac83\uc785\ub2c8\ub2e4.<\/p>\n<p>\uc800\ud76c \ud300\uc740 \uadf8\uc5d0 \ub530\ub77c \uc54c\uace0\ub9ac\uc998\uc744 \uc218\uc815\ud558\uace0 \uc2e4\ud589\ud588\uc2b5\ub2c8\ub2e4. \uba54\ubaa8\ub9ac \uc0ac\uc6a9\ub7c9\uc758 \uc99d\uac00 \uc18d\ub3c4\uac00 \uc804\ubcf4\ub2e4 \ud6e8\uc52c \ub290\ub824\uc9c4 \uac83\uc774 \ud655\uc778\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uc774\uc804\uc5d0\ub294 \ucd08\ub2f9 1.17GB\ub85c \uba54\ubaa8\ub9ac \uc0ac\uc6a9\ub7c9\uc774 \uc99d\uac00\ud588\ub2e4\uba74, \uc218\uc815 \ud6c4 \uc99d\uac00 \uc18d\ub3c4\ub294 \ucd08\ub2f9 7MB\uc5d0 \ubd88\uacfc\ud588\uc2b5\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uc544\uc9c1\ub3c4 \ud504\ub85c\uc138\uc2a4\uac00 \uc644\ub8cc\ub418\uc9c0 \uc54a\uace0, \uc2a4\uc651 \ud30c\uc77c\uc744 \ub2e4\uc2dc \uc0ac\uc6a9\ud558\uae30 \uc2dc\uc791\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ub2e4\uc2dc \uc774\ubbf8\uc9c0\ub97c \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4. \ub2e4\ub978 \uc2a4\ub0c5\uc0f7\uc744 \ucea1\ucc98\ud558\uc5ec \uc5f4\uc5c8\uace0, \uc0c8\ub85c\uc6b4 \ub3c4\ubbf8\ub124\uc774\ud130 \ud2b8\ub9ac\ub294 \ub2e4\uc74c\uacfc \uac19\uc558\uc2b5\ub2c8\ub2e4.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-242740\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/04\/cfe6d63a0a199e621de8238bfb86fa00.png\" alt=\"\" width=\"1560\" height=\"903\"><\/figure>\n<p>\uc774\ubc88\uc5d0\ub294 \uc555\ucd95 \ud2b8\ub9ac\uc5d0\uc11c \uc0ac\uc6a9\ub41c \ud06c\uae30\ub9cc 16GB\uc600\uc2b5\ub2c8\ub2e4. \uc801\ub2f9\ud55c \uc218\uc900\uc774\uc5c8\uc744\uae4c\uc694? \ub354 \ud6a8\uc728\uc801\uc778 \ubc29\uc2dd\uc73c\ub85c \ud2b8\ub9ac\ub97c \uc800\uc7a5\ud560 \ubc29\ubc95\uc774 \uc788\uc9c0 \uc54a\uc744\uae4c\uc694?<\/p>\n<p>\uc800\ud76c \ud300\uc740 \ud0c0\uc785\ubcc4\ub85c \ub178\ub4dc \uadf8\ub8f9\uc744 \uc0dd\uc131\ud558\uc5ec, \ubcf4\uc720\ud55c \ub178\ub4dc \uac1c\uc218\ub97c \ud655\uc778\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-242751\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/04\/472b04a944f86501d05dba6e65b66e96.png\" alt=\"\" width=\"1560\" height=\"437\"><\/figure>\n<p>\ud2b8\ub9ac\uc5d0 \ud3ec\ud568\ub41c \ub178\ub4dc 9\ucc9c\ub9cc \uac1c\uc758 \ud06c\uae30\ub294 \ucd1d 16GB \ud06c\uae30 \uc911 6GB\ub9cc \ucc28\uc9c0\ud588\uc2b5\ub2c8\ub2e4. \uc660\uc9c0 \uc218\uc0c1\ud558\uac8c \ub290\uaef4\uc84c\uae30\uc5d0 <code>CompactDominatorTree2+Node<\/code> \uc120\uc5b8 \ucf54\ub4dc\ub85c \uc774\ub3d9\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public sealed class Node\n{\n  public DfsNumber DfsNumber { get; }      \/\/ 8 bytes\n  public TypeId ObjectsType { get; }       \/\/ 4 bytes\n  public int ObjectsCount { get; }         \/\/ 4 bytes\n  public int RetainedObjectsCount { get; } \/\/ 4 bytes\n  public ulong RetainedBytes { get; }      \/\/ 8 bytes\n  public bool IsContainedInSet { get; }    \/\/ 1 byte\n\n  public Node Parent { get; }              \/\/ 8 bytes\n  internal JetArray&lt;Node&gt; ChildrenImpl { get; } \/\/ 8 bytes\n  \n  \/\/ we have omitted unnecessary details\n}<\/pre>\n<p>\uc5ec\uae30\uc11c \ud398\uc774\ub85c\ub4dc\ub294 45\ubc14\uc774\ud2b8\uc5d0 \ubd88\uacfc\ud588\uc9c0\ub9cc \ud5e4\ub354 \ubc0f \uc815\ub82c\uc744 \ud3ec\ud568\ud558\uc5ec Node \uac1d\uccb4\ub294 72\ubc14\uc774\ud2b8\ub97c \ucc28\uc9c0\ud588\uc2b5\ub2c8\ub2e4. \ub610\ud55c \ubcf4\uc720 \ud06c\uae30\ub3c4 \ud3c9\uade0\uc801\uc73c\ub85c 192\ubc14\uc774\ud2b8\ub85c \ud6e8\uc52c \ub354 \ucef8\uc2b5\ub2c8\ub2e4. \uc790\uc138\ud55c \uc815\ubcf4\ub97c \ud655\uc778\ud558\uae30 \uc704\ud574 \uc778\uc2a4\ud134\uc2a4 \ud0ed\uc73c\ub85c \uc804\ud658\ud558\uace0 \u201c<code>CompactDominatorTree2+Node !g !a<\/code>\u201d \ucffc\ub9ac\ub97c \uc0ac\uc6a9\ud558\uc5ec \ucf58\ud150\uce20\ub97c \ud544\ud130\ub9c1\ud588\uc2b5\ub2c8\ub2e4(\u201c<code>!g<\/code>\u201d\ub85c \uc81c\ub124\ub9ad \uc81c\uc678, \u201c<code>!a<\/code>\u201d\ub85c \ubc30\uc5f4 \uc81c\uc678). \uc784\uc758\uc758 \uc778\uc2a4\ud134\uc2a4\ub294 \ub2e4\uc74c\uacfc \uac19\uc558\uc2b5\ub2c8\ub2e4.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-242762\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/04\/6dbaf618782e957052fb8590017a3788.png\" alt=\"\" width=\"1560\" height=\"472\"><\/figure>\n<p>\uc778\uc2a4\ud134\uc2a4 \uc138\ubd80 \uc815\ubcf4\ub97c \ud655\uc778\ud574 \ubcf4\uc2dc\uc8e0.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-242773\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/04\/0ced3341df7dbd3ec7d169c1cc933662.png\" alt=\"\" width=\"1560\" height=\"674\"><\/figure>\n<p>\uc624\ubc84\ud5e4\ub4dc\uac00 \uc815\ub9d0 \ub9ce\uc9c0 \uc54a\ub098\uc694?<\/p>\n<p><code>JetMutableArray<\/code>\uac00 \ud070 \ud2b8\ub9ac\uc758 \ud558\uc704 \ub178\ub4dc\ub97c \uc800\uc7a5\ud558\ub294 \uac00\uc7a5 \ud6a8\uc728\uc801\uc778 \ubc29\ubc95\uc774 \uc544\ub2c8\ub77c\ub294 \uac83\uc744 \ud655\uc2e4\ud788 \uc54c\uac8c \ub418\uc5c8\uc2b5\ub2c8\ub2e4. \ubb3c\ub860 \uac00\uc7a5 \uba3c\uc800 \ud558\uc704 \ub178\ub4dc \uc800\uc7a5 \ubc29\uc2dd\uc744 \ucd5c\uc801\ud654\ud558\ub294 \uc194\ub8e8\uc158\uc744 \ub5a0\uc62c\ub838\uc2b5\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \ud558\uc704 \ub178\ub4dc\ub97c \ud45c\uc900 \ubc30\uc5f4\uc5d0 \uc800\uc7a5\ud558\ub294 \ubc29\ubc95\uc774 \uc788\uc8e0. \ud558\uc9c0\ub9cc \uc800\ud76c \ud300\uc740 \ub354 \uadfc\ubcf8\uc801\uc778 \ubc29\uc2dd\uc744 \uc2dc\ub3c4\ud558\uae30\ub85c \uacb0\uc815\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n<p>dotMemory\uc5d0\uc11c \ub300\uaddc\ubaa8 \ub370\uc774\ud130 \uad6c\uc870\ub97c \ud754\ud788 \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \uc815\uc218 \ubc30\uc5f4 \uc0c9\uc778\uc744 \ud1b5\ud574 \uc11c\ub85c \ucc38\uc870\ud558\ub294 \ub450 \uac1c\uc758 \uad6c\uc870\uccb4 \ubc30\uc5f4\uc744 \uc0ac\uc6a9\ud558\uc5ec \uac1d\uccb4 \uadf8\ub798\ud504\uac00 \uc778\uc811 \ub9ac\uc2a4\ud2b8\ub85c \uc800\uc7a5\ub429\ub2c8\ub2e4. dotMemory\uc5d0\uc11c \uad00\ub9ac \ubc30\uc5f4 \uc0ac\uc6a9\uc744 \uc911\ub2e8\ud558\uace0 \uba54\ubaa8\ub9ac \ub9e4\ud551 \ud30c\uc77c\uc744 \uae30\ubc18\uc73c\ub85c \ud55c \uc790\uccb4\uc801 \uad6c\ud604\uc744 \uc120\ud0dd\ud588\ub2e4\ub294 \uc810\uc5d0\uc11c \uc774\ub294 \ub9e4\uc6b0 \ud765\ubbf8\ub86d\uc2b5\ub2c8\ub2e4. \uc774 \ubc29\uc2dd\uc744 \ud65c\uc6a9\ud558\uba74 \uc694\uc18c \uc561\uc138\uc2a4 \uc2dc \ucd5c\uc18c \uc624\ubc84\ud5e4\ub4dc(\uae30\uc874\uc5d0 C\uc5d0\uc11c \uc218\ud589\ub41c \ubc29\uc2dd\uc73c\ub85c \ub124\uc774\ud2f0\ube0c \uba54\ubaa8\ub9ac \uc778\ub371\uc2f1)\ub97c \ub2ec\uc131\ud558\uace0 \uc644\uc804\ud55c OS \uc218\uc900\uc5d0\uc11c \ubc30\uc5f4\uc744 \ube60\ub974\uac8c \ub85c\ub4dc\ud558\uace0 \uc800\uc7a5\ud560 \uc218 \uc788\uc73c\uba70, \uc9c1\ub82c\ud654\/\uc5ed\uc9c1\ub82c\ud654 \uc911\uc5d0 \uc624\ubc84\ud5e4\ub4dc\ub3c4 \uc5c6\uc2b5\ub2c8\ub2e4. \uadf8\ubfd0 \uc544\ub2c8\ub77c \uc774\ub7ec\ud55c \ubc30\uc5f4 \uc870\uac01\uc740 \uac1c\uc785 \uc5c6\uc774 \uba54\ubaa8\ub9ac\uc5d0\uc11c \uc5b8\ub85c\ub4dc\ub420 \uc218 \uc788\uc73c\ubbc0\ub85c, \ubb3c\ub9ac\uc801 \uba54\ubaa8\ub9ac\ub97c \ud655\ubcf4\ud558\uace0 \ubc30\uc5f4\uc744 (\uc5b4\ub290 \uc815\ub3c4) \uc21c\ucc28\uc801\uc73c\ub85c \uc21c\ud68c\ud558\ub294 \ub370 \ub3c4\uc6c0\uc774 \ub429\ub2c8\ub2e4.<\/p>\n<p>\uc800\ud76c \ud300\uc740 \uc555\ucd95 \ub3c4\ubbf8\ub124\uc774\ud130 \ud2b8\ub9ac\uc5d0\ub3c4 \ub3d9\uc77c\ud55c \uc811\uadfc \ubc29\uc2dd\uc744 \uc801\uc6a9\ud558\uae30\ub85c \uacb0\uc815\ud588\uc2b5\ub2c8\ub2e4. \ub610\ud55c <code>IsContainedInSet<\/code> \uc18d\uc131\uc744 \ube44\ud2b8 \ud50c\ub798\uadf8\ub85c \ubc14\uafb8\uace0 \uc0ac\uc6a9\ub418\uc9c0 \uc54a\ub294 <code>Parent<\/code> \ud504\ub85c\ud37c\ud2f0\ub97c \uc81c\uac70\ud588\uc2b5\ub2c8\ub2e4. \uacb0\uad6d \ud2b8\ub9ac \ub178\ub4dc\ub294 \ub2e4\uc74c\uacfc \uac19\uc740 \uad6c\uc870\ub85c \uc644\uc131\ub418\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">[StructLayout(LayoutKind.Sequential, Pack = 4)]\npublic readonly struct Node\n{\n  public readonly TypeId ObjectsType;\n\n  private readonly uint _objectsCount;\n  public int ObjectsCount =&gt; (int)(_objectsCount &amp; 0x7FFFFFFF);\n  public bool IsContainedInSet =&gt; (_objectsCount &amp; 0x80000000) != 0;\n\n  public readonly int RetainedObjectsCount;\n  public readonly ulong RetainedBytes; \n  public readonly DfsNumber DfsEnter;\n\n  public readonly Range&lt;uint&gt; Children;\n}<\/pre>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-242784\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/04\/232d20a2a3df4474a95a8e7ae9e6ffe4.png\" alt=\"\" width=\"1560\" height=\"453\"><\/figure>\n<p>\uc774\ucc98\ub7fc \uc21c\ucc28\uc801 \ud45c\ud604\uc744 \uc0ac\uc6a9\ud558\uba74 \ud558\uc704 \ub178\ub4dc\ub97c \uac00\ub9ac\ud0a4\ub294 \ud558\ub098\uc758 \uc815\uc218 \ub9c1\ud06c\ub85c\ub3c4 \ucda9\ubd84\ud558\ub2e4\ub294 \uc810\uc740 \uc8fc\ubaa9\ud560 \ub9cc\ud569\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uc800\ud76c \ud300\uc740 \uadf8 \ub300\uc2e0 \ube4c\ub4dc\ub41c \ud2b8\ub9ac\uc758 \ud558\uc704 \ub178\ub4dc\ub97c <code>RetainedBytes<\/code>\ub97c \uae30\uc900\uc73c\ub85c \uc624\ub984\ucc28\uc21c\uc73c\ub85c \uc815\ub82c\ud560 \uc218 \uc788\ub294 \ubc94\uc704\ub97c \uc0ac\uc6a9\ud55c \ub2e4\uc74c, \uc815\ub82c\ub41c \ub178\ub4dc\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc120\ubc84\uc2a4\ud2b8 \ub2e4\uc774\uc5b4\uadf8\ub7a8\uc744 \uc791\uc131\ud560 \uc218 \uc788\uc5c8\uc2b5\ub2c8\ub2e4. \uc704\uc758 \ud45c\ud604\uc5d0\uc11c \ub178\ub4dc #1, #2, #3\uc758 \uc21c\uc11c\uac00 \ubcc0\uacbd\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uae34\uc7a5\ud55c \uc0c1\ud0dc\ub85c \ud504\ub85c\uadf8\ub7a8\uc744 \uc2e4\ud589\ud588\uace0, \uadf8 \uacb0\uacfc\ub294 \ud6cc\ub96d\ud588\uc2b5\ub2c8\ub2e4! \ucd5c\ub300 \uba54\ubaa8\ub9ac \uc0ac\uc6a9\ub7c9\uc740 12GB\uc600\uace0, \ub3c4\ubbf8\ub124\uc774\ud130 \ud2b8\ub9ac\ub97c \ube4c\ub4dc\ud558\ub294 \ub370 55\ubd84\uc774 \uc18c\uc694\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \ubaa9\ud45c \uc2dc\uac04\ubcf4\ub2e4\ub294 \uae38\uc9c0\ub9cc \uc801\ub2f9\ud55c \uc218\uc900\uc785\ub2c8\ub2e4. \uc2a4\ub0c5\uc0f7\uc5d0 \ucd1d 2\uc5b5 7,500\ub9cc \uac1c\uc758 \uac1d\uccb4\uac00 \ud3ec\ud568\ub418\uace0, \uc555\ucd95 \ud2b8\ub9ac\uc5d0\ub294 2\uc5b5 \uac1c\uc758 \ub178\ub4dc\uac00 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc5b4\ub5a4 \uae30\uc900\uc73c\ub85c \ubcf4\uc544\ub3c4 \ud6cc\ub96d\ud55c \uacb0\uacfc\uc785\ub2c8\ub2e4. \ucc98\uc74c\uc5d0\ub294 32GB \ubbf8\ub9cc\uc73c\ub85c \ud06c\uae30\ub97c \uc904\uc77c \uc218 \uc5c6\uc5c8\uace0, \uc2dc\uac04\ub3c4 \ub9e4\uc6b0 \uc624\ub798 \uac78\ub838\uc2b5\ub2c8\ub2e4. \uc774\uc81c \ud06c\uae30\ub294 12GB\ub85c \uac10\uc18c\ud588\uc73c\uba70, 55\ubd84\ub9cc\uc5d0 \uc900\ube44\uac00 \uc644\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uadf8\ub7ec\ub098 \uc5ec\uc804\ud788 \uac1c\uc120\uc758 \uc5ec\uc9c0\uac00 \uc788\uc744 \uac83 \uac19\uc558\uc2b5\ub2c8\ub2e4. 55\ubd84\uc740 \uc774\uc0c1\uc801\uc778 \uc218\uce58\uac00 \uc544\ub2d9\ub2c8\ub2e4. \uadf8 \uc2dc\uac04\uc744 \ubaa8\ub450 \uc815\ud655\ud788 \uc0b4\ud3b4\ubcf4\uae30\ub85c \ud588\uc2b5\ub2c8\ub2e4. dotTrace\uc758 \uc131\ub2a5\uc744 \ubcf4\uc2dc\uc8e0.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-242795\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/04\/d6c0c6305292cd55170e53236d1f1160.png\" alt=\"\" width=\"1560\" height=\"143\"><\/figure>\n<p>\ub2e4\ud589\ud788 \ud504\ub85c\uc138\uc2a4\uac00 \uc644\ub8cc\ub420 \ub54c\uae4c\uc9c0 \uae30\ub2e4\ub9b4 \ud544\uc694\ub294 \uc5c6\uc5c8\uc73c\uba70, \uba87 \ubd84 \ub3d9\uc548\uc758 \uc131\ub2a5\uc744 \ub179\ud654\ud558\ub294 \uac83\ub9cc\uc73c\ub85c \ucda9\ubd84\ud588\uc2b5\ub2c8\ub2e4. \u2018<code>--timeout=3m<\/code>\u2018 \ud0a4\ub97c \uc0ac\uc6a9\ud558\uc5ec 3\ubd84 \ud6c4\uc5d0 \ud504\ub85c\ud30c\uc77c\ub9c1\uc744 \uc790\ub3d9\uc73c\ub85c \uc911\ub2e8\ud588\uc2b5\ub2c8\ub2e4. \uc2a4\ub0c5\uc0f7\uc744 \uc5f4\uace0 \uc791\uc5c5\uc744 \uc218\ud589\ud558\ub294 \uc2a4\ub808\ub4dc\ub97c \uc2dd\ubcc4\ud558\uae30 \uc704\ud574 \ud544\ud130\ub9c1\uc744 \uc801\uc6a9\ud588\uc2b5\ub2c8\ub2e4. \uc624\ub7ab\ub3d9\uc548 \uc644\uc804\ud788 \ub85c\ub4dc\ub41c \uc0c1\ud0dc\ub85c \ub0a8\uc544 \uc788\ub294 \uc2a4\ub808\ub4dc\uc785\ub2c8\ub2e4. \ub2e4\uc74c\uc740 \ud638\ucd9c \ud2b8\ub9ac\uc785\ub2c8\ub2e4.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-242806\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/04\/10def4971d79fb2385f5ce48d1d539d3.png\" alt=\"\" width=\"1560\" height=\"766\"><\/figure>\n<p>\ub180\ub78d\uac8c\ub3c4 <code>Dictionary.Clear<\/code> \ub2e8\ub3c5\uc73c\ub85c 92%\uc758 \uc2dc\uac04\uc744 \uc18c\ubaa8\ud588\uc2b5\ub2c8\ub2e4! \uc815\ub9d0 \ub180\ub77c\uc6b4 \uacb0\uacfc\uc600\uc2b5\ub2c8\ub2e4. \uc65c \ud45c\uc900 \ub77c\uc774\ube0c\ub7ec\ub9ac \ub515\uc154\ub108\ub9ac\uc5d0\uc11c <code>Clear<\/code>\uc758 \uc131\ub2a5\uc774 \uadf8\ub807\uac8c \uc548 \uc88b\uc558\uc744\uae4c\uc694? \ubb38\uc81c\ub294 \uc54c\uace0\ub9ac\uc998\uc758 \uccab \ubc18\ubcf5 \ub3d9\uc548 \ub515\uc154\ub108\ub9ac\uc758 \uc694\uc18c\uac00 \ubb34\ub824 22,000\uac1c\ub85c \uc99d\uac00\ud55c \uac83\uc785\ub2c8\ub2e4. \ub2e4\uc74c \ubc18\ubcf5\uc5d0\uc11c\ub294 \uc815\uc0c1\uc801\uc73c\ub85c \uc218\uc2ed \uac1c\uc758 \uc694\uc18c\ub9cc \ud3ec\ud568\ub418\uc5c8\uc2b5\ub2c8\ub2e4. <code>Dictionary.Clear<\/code>\uc758 \uacc4\uc0b0 \ubcf5\uc7a1\ub3c4\ub294 <code>Capacity<\/code>(<code>Count<\/code>\uac00 \uc544\ub2d8), \uadf8\uc911\uc5d0\uc11c\ub3c4 <code>Capacity<\/code>\uc5d0 \uc120\ud615\uc801\uc73c\ub85c \uc758\uc874\ud558\ub294 <code>buckets.Length<\/code>\uc5d0 \ube44\ub840\ud569\ub2c8\ub2e4. \uc989, \uc560\ucd08\uc5d0 \ube44\uc5b4 \uc788\ub294 \uc694\uc18c\ub97c \uacc4\uc18d \uc9c0\uc6cc\uc628 \uac83\uc785\ub2c8\ub2e4! \ub515\uc154\ub108\ub9ac\ub97c \uc9c0\uc6b0\uace0 \ub2e4\uc2dc \uc0ac\uc6a9\ud558\uae30\ub85c \uc120\ud0dd\ud588\uc744 \ub54c \ubaa8\ub378 \ucd5c\uc801\ud654\uac00 \uacfc\ub3c4\ud558\uac8c \uc774\ub8e8\uc5b4\uc84c\uc2b5\ub2c8\ub2e4.&nbsp;<\/p>\n<p>\ud55c \ubc1c\uc9dd \ubb3c\ub7ec\uc11c \uac00\uc7a5 \uac04\ub2e8\ud55c \ubc29\ubc95\uc744 \uc2dc\ub3c4\ud588\uc2b5\ub2c8\ub2e4. \uc989, \ubaa8\ub4e0 \ubc18\ubcf5\uc5d0 \ub300\ud574 \uc0c8 \ub515\uc154\ub108\ub9ac\ub97c \uc0dd\uc131\ud558\ub294 \ubc29\ubc95\uc785\ub2c8\ub2e4. \uae30\ub300\uc5d0 \ubd80\ud47c \ub9c8\uc74c\uc73c\ub85c \uc2a4\ud1b1\uc6cc\uce58\ub97c \ub2e4\uc2dc \ucf1c\uace0 \ucf54\ub4dc\ub97c \uc2e4\ud589\ud588\uc2b5\ub2c8\ub2e4. \ub180\ub78d\uac8c\ub3c4 \uacb0\uacfc\ub294 \uace0\uc791 1\ubd84 46\ucd08\uc600\uc2b5\ub2c8\ub2e4! GC\uc5d0 \ub300\ud55c \ubd80\ud558\uac00 \uc99d\uac00\ud588\uc9c0\ub9cc \uade0\ub4f1\ud558\uac8c \ubd84\ubc30\ub418\uc5b4 \uc801\uc808\ud788 \uad00\ub9ac\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uc774\ub294 dotTrace\ub97c \uc0ac\uc6a9\ud558\uc5ec \uac80\uc99d\ub41c \uc0ac\uc2e4\uc785\ub2c8\ub2e4.<\/p>\n<p>\uc774\uc0c1\uc785\ub2c8\ub2e4. \uba54\ubaa8\ub9ac \uc0ac\uc6a9\ub7c9\uc774 12GB\uc5d0 \ubd88\uacfc\ud55c \uc0c1\ud0dc\uc5d0\uc11c, 2\ubd84 \ub0b4\uc5d0 \uac1d\uccb4 2\uc5b5 7,500\ub9cc \uac1c\ub97c \ucc98\ub9ac\ud588\uc2b5\ub2c8\ub2e4. \uc815\ub9d0 \ub9cc\uc871\uc2a4\ub7ec\uc6e0\uc8e0. \ub4dc\ub514\uc5b4 \ucd5c\uc801\ud654\ub41c \ucf54\ub4dc\ub97c \uc800\uc7a5\uc18c\uc5d0 \ucee4\ubc0b\ud560 \uc900\ube44\uac00 \ub418\uc5c8\uc2b5\ub2c8\ub2e4!<\/p>\n<p>\uc774\ubbf8 \ud6cc\ub96d\ud588\uc9c0\ub9cc \uc870\uae08 \ub354 \uac1c\uc120\ud558\uace0\uc790 \ucd94\ud6c4 \ud14c\uc2a4\ud2b8\ub97c \ud55c \ubc88 \ub354 \uc2dc\ud589\ud588\uc2b5\ub2c8\ub2e4. \uc131\ub2a5 \ube44\uad50\ub97c \uc704\ud574 \ub2e4\ub978 \uc2a4\ub0c5\uc0f7\uc5d0\uc11c \uc774\uc804 \uc54c\uace0\ub9ac\uc998\uacfc \uc0c8 \uc54c\uace0\ub9ac\uc998\uc744 \uc2e4\ud589\ud588\uc2b5\ub2c8\ub2e4. \ud06c\uae30\ub294 \uac19\uc9c0\ub9cc \ud1a0\ud3f4\ub85c\uc9c0\uac00 \ub2e4\ub978 \uc2a4\ub0c5\uc0f7\uc744 \ucc3e\uc558\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c \uc774\uc804 \uc54c\uace0\ub9ac\uc998\ub3c4 \uc774\ub97c \ucc98\ub9ac\ud560 \uc218 \uc788\uace0, \ub450 \uc54c\uace0\ub9ac\uc998\uc5d0 \ubaa8\ub450 \uc81c\uacf5\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub180\ub78d\uac8c\ub3c4 \uc0c8 \uc54c\uace0\ub9ac\uc998\uc740 \uacc4\uc0b0 \ubcf5\uc7a1\ub3c4\uac00 \ub3d9\uc77c\ud558\uac8c \uc720\uc9c0\ub418\uc5c8\uc74c\uc5d0\ub3c4 \uc774\uc804 \uc54c\uace0\ub9ac\uc998\ubcf4\ub2e4 33% \ub354 \ub290\ub9ac\uac8c \uc2e4\ud589\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uc774 \ub0b4\uc6a9\uc740 \ub2e4\uc74c \uae30\ud68c\uc5d0 \ub9d0\uc500\ub4dc\ub9ac\ub3c4\ub85d \ud558\uaca0\uc2b5\ub2c8\ub2e4. \uad81\uae08\ud558\uc2dc\ub2e4\uba74 \uc544\ub798\uc5d0 \ub313\uae00\uc744 \ub0a8\uae30\uac70\ub098 \uc9c1\uc811 \ubb38\uc758\ud558\uc5ec \uc54c\ub824\uc8fc\uc138\uc694!<\/p>\n<p align=\"center\"><a class=\"jb-download-button\" title=\"dotMemory \ub2e4\uc6b4\ub85c\ub4dc\" href=\"https:\/\/www.jetbrains.com\/ko-kr\/dotmemory\/download\/#section=web-installer\" target=\"_blank\" rel=\"noopener\"><i class=\"download-icon\"><\/i>DOTMEMORY \ub2e4\uc6b4\ub85c\ub4dc<\/a><\/p>\n<p><em>\uac8c\uc2dc\ubb3c \uc6d0\ubb38 \uc791\uc131\uc790<\/em><\/p>\n\n    <div class=\"about-author \">\n        <div class=\"about-author__box\">\n            <div class=\"row\">\n                <div class=\"about-author__box-img\">\n                    <img decoding=\"async\" src=\"https:\/\/secure.gravatar.com\/avatar\/?s=200&#038;r=g\" width=\"200\" height=\"200\" alt=\"\" loading=\"lazy\"  class=\"avatar avatar-200 wp-user-avatar wp-user-avatar-200 photo avatar-default\">\n                <\/div>\n                <div class=\"about-author__box-text\">\n                                                        <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n","protected":false},"author":964,"featured_media":243269,"comment_status":"closed","ping_status":"closed","template":"","categories":[4992,6659,4786,4788],"tags":[20,1888,366,1717],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/dotnet\/255497"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/dotnet"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/types\/dotnet"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/users\/964"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/comments?post=255497"}],"version-history":[{"count":6,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/dotnet\/255497\/revisions"}],"predecessor-version":[{"id":255505,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/dotnet\/255497\/revisions\/255505"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/media\/243269"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/media?parent=255497"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/categories?post=255497"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/tags?post=255497"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/cross-post-tag?post=255497"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}