程序中的数据和变量都会被分配到程序所在的虚拟内存中,内存空间包含两个重要区域:栈区(Stack)和堆区(Heap)。函数调用的参数、返回值以及局部变量大都会被分配到栈上,这部分内存会由编译器进行管理;不同编程语言使用不同的方法管理堆区的内存,C++ 等编程语言会由工程师主动申请和释放内存,Go 以及 Java 等编程语言会由工程师和编译器共同管理,堆中的对象由内存分配器分配并由垃圾收集器回收。
不同的编程语言会选择不同的方式管理内存,本节会介绍 Go 语言内存分配器,详细分析内存分配的过程以及其背后的设计与实现原理。
7.1.1 设计原理
内存管理一般包含三个不同的组件,分别是用户程序(Mutator)、分配器(Allocator)和收集器(Collector)1,当用户程序申请内存时,它会通过内存分配器申请新内存,而分配器会负责从堆中初始化相应的内存区域。
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAsEAAAFyCAYAAAAUBwcyAAAgAElEQVR4nOzdd3Aj9533+Xd3IwMEATCnyUmjmVG0crRkS7ZlW7It27Kc1l77We9693Ht3XO1d/fPVV1d1dU99Vztc97gbO/aj5NkW1rJlpXjSDPSaHLmcJgzCSKnRnffHyAw5JCTOQMQ+L6qpoYEGs0fwSbxwa+//f0pM9G4hRBCCCGEEDVELfcAhBBCCCGEuNIkBAshhBBCiJojIVgIIYQQQtQcCcFCCCGEEKLmSAgWQgghhBA1R0KwEEIIIYSoORKChRBCCCFEzZEQLIQQQgghao6EYCGEEEIIUXMkBAshhBBCiJojIVgIIYQQQtQcCcFCCCGEEKLmSAgWQgghhBA1R0KwEEIIIYSoORKChRBCCCFEzZEQLIS4IizLwrKscg9DVDA5PoQQV5Kt3AMQ4nLKZrLEYnEAmpobS7dblkU4HME0DNweFz6fD9M0CU/PYFkWgUA9doe9tH06nSERT6BqGg0NQfL5PDPhyDm/vsNhpz5Qv+D26ekwpmHicDqor/fPuy+X04lGoufct6IoNDY1zP9+s1mGh0bJ53Xa29vw1fkWPC4SiaDn8qXPVU3F6/XicjnP+TUv1u+ffJpd7+3hi1/5PJs3b7qkfZmmyfR0GCzw+rx4PO5FtwtPhzEMk0CwHrvdvug2RclEklQqjdvjxufznvc4JiemmJycpqm5gebmJhRFOetj4rE4Y2MTKIpCZ1c7Lpdr0e0sy2J6KoxlWXh9Hjwez7z70+k0iXjynGN0u10LjoF4PMHoyCh2u4O29tZFf+7JZIpUMlX6XFEVvF4vbvfi410K3/vnHzE5Oc3ffuevCCzyO3OhEokk42PjGIZJZ1fHGY8T0zSZngozMTFFqCFAa2vLoj/HRCJJOpXGZrcRDAbO+rXn/n0INQTRNO28tl3M2b5eMplifGwcXc/T2dWB13vqOCn+zTqXxY6RZDLFyPAIiqrS2dGOa5GfeyQSRc/ppc81TcVXV4fDcfbfNSEqiYRgUdWOHDnGb3/9ewD++tvfoLOrA4BEIsG//NMPSKfS3Hb7LTz0iQdJpzP883d/QDab5et/+WXWrl9T2s+B/Qd56vfPEggG+F/+4TuMj0/wr//0I0zTPOvXX79hLX/x9S/Nuy0eT/D//tfvYlkWTc2NfOfv/2bei25/bz8//ckvzvm9ORwO/o//838DCqHpvXd38/Qfni3NpimKwl333M49996J03kq6Pzml7+jv39wwf5aWpq578P3sHnzJlR16U4SJeIJ3t+1F7+/jk2bNlzy/vr7B/nh934KwIaN6/jq17646HY//uG/E43G+Po3vszqNavOus8333iHN15/izvuvJWPPvTAOccQnp7hF//+a8bGxku3hUIBvvzVx2luaVqwfWQmytNPPcuxo92l21RV5c67buPe++7C4XDM235sbJzv/uP3AFi7bjVf/8ZX5t2/e9de/vjs8+cc5823fIBPPvIxALLZHC/8+WXeeXtn6X6Hw84jn/4EW7ZunhfU3nrjbV5/7a0F+/MH/DzwwH1su2bLWYPdhZqcmGJgYIjVa1YteFN4oeLxBM/98QX27tk/7/bb77iFe++7e14YjkSi/OaXT877ffD5PHzlL75IR2f7vMe/9sobvL19J11dnXzr2395ju9nmu/+938F4L/8w3fOGponJ6f57j/+6xnv7+hs52/+9pvzbkskkrzw/Mvsenf3vNtvuvkGPvTAfXi9HvbvPcDTT/3xrOME+MDNN/DIpz4OFN6Av/3WO7z4wqvzZuU/+tCHue32W+b9XXji17+nt7d/wf5WrOrigQfuY9Xqled8UyhEuUkIFjVj9649pRA8MDBEOpW+6H3Z7Q46OtpKITiVSjMzU5jNaW9vLf3xb2hsWPDYfXv2Y1kWfn8dU5PTDA+NlMYF4HQ56ehoK32ezeaYmprG4bDT1HRqNnvu7OYLz7/CW2+8DUBXVwcut4vu4z28/upbTE+GeeyLjy54QQoGA3R0tZPP5Rkbm2B8fIJf//JJHvr4R7jl1g9c9HNzusOHj2FZFnfcdduShOs3X9sOFGawTnSfJB5PULfIjPflMj4+yQ+/91NSqRRer4d169bQc7KXcDjC97/3E7711385b4Y+HJ7hX//pRySTSTRNY/WaVWiaysmePt7evoNt126lra1l3td45aXXAfB43Jzs6SMajc0Lh16fd94xMjMTJZVK4fG45wWuuTOqT/z2Dxw+eARN01izZhXJdIqRoVGe+M3vSaXS3HrbTQu+12AoQEdnO/l8nsnxKaanwzz526cYGR7jow99eMlCzvPPvQTA/R++95L2OTMT4Uff/xkzMxFUVWXl6hW4nC66j3ez/a0ddHZ1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)
图 7-1 内存管理的组件
Go 语言的内存分配器实现非常复杂,在分析内存分配器的实现之前,我们需要了解内存分配的设计原理,掌握内存的分配过程。这里会详细介绍内存分配器的分配方法以及 Go 语言内存分配器的分级分配、虚拟内存布局和地址空间。
分配方法
编程语言的内存分配器一般包含两种分配方法,一种是线性分配器(Sequential Allocator,Bump Allocator),另一种是空闲链表分配器(Free-List Allocator),这两种分配方法有着不同的实现机制和特性,本节会依次介绍它们的分配过程。
线性分配器
线性分配(Bump Allocator)是一种高效的内存分配方法,但是有较大的局限性。当我们使用线性分配器时,只需要在内存中维护一个指向内存特定位置的指针,如果用户程序向分配器申请内存,分配器只需要检查剩余的空闲内存、返回分配的内存区域并修改指针在内存中的位置,即移动下图中的指针:
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAt8AAACxCAYAAAAca9HHAAAgAElEQVR4nO3dV3Qc14Hu+39VdQQaOQcCzDmTkihKVLAkK9kj56BxHo/D+Nhzxstn1sw99+G+3HPuJGePnD1HzpYty0mWlahMkWLOmSASkXPnCvehiSYhMEkEGyTw/dbiklBdXb2rqrvqq1177zL6B4c9RERERETkiioujGBOdiFERERERKYLhW8RERERkRxR+BYRERERyRGFbxERERGRHFH4FhERERHJEYVvEREREZEcUfgWEREREckRhW8RERERkRxR+BYRERERyRGFbxERERGRHFH4FhERERHJEYVvEREREZEcUfgWEREREckRhW8RERERkRxR+BYRERERyRGFbxERERGRHFH4FhERERHJEYVvEREREZEcUfgWEREREckR32QXQESmJ8dx6O8fzP5tAMFQkLy8MKY5tl7AdV36+gYAKC4uxOc7c+iKxeLEYnH8fh9FRYVjplmWSXFxEYZhZOfv6+3D9aCgIJ9gMAjA8NAwyVQ6O49lmuRH8ggEAhO2vul0mqHBYTzGfvbr9fX1gwclpcVjyn0uiXiCkWgMn8+iuLjoksrhOA7dXT309w9QXV1JSWnJBef3PI+hoWG6uroJBoPU1laP2f5ns22bwYEhPCASyScUGruO0WiUeDx50TKea/skEgk6OjpxHJeammry8sLj3jc8PEIymcr+bZkG+fn5BIITtx9FRC6XwreITIqe7j6+9pVvjZseCgVZt/56NtxyE+FwCIChoWG+/G9fB+Czn/skMxrqs/Nv3rSZp558jsaZDXz6s58A4NVXNvP0U88RDof44v/4PPn5+UAmeP/7v2aW8573vYPVa1YC8LvH/sT+fQfHlaWmtpq3/dW9NDbOGHdB8EZt27qT3z/2JwBuvmU9993/1nHzeJ7Hf37ze7iOy5f+8Qvk5eddcJlbt+7g8T/+herqKr7wD5+94Lye59HV2c0Pf/BjhoeGs9Pnzp3FBx587zk/q79/kEd++RuaTjRnp5mmyQPvuJ/Va1diWdaY+ffu2c+vfvEoADesW8sD73zbmNeffep5Nm3acsFywth94zgOe3bv49Ff/x7btrPz3HnXbdx6+4YxZfjj7//Mnt37xi2vpq6at91/D42zGi57P4qIXC4dhURk0s2eM4tFixZQU1tNIpHk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)
图 7-2 线性分配器
虽然线性分配器实现为它带来了较快的执行速度以及较低的实现复杂度,但是线性分配器无法在内存被释放时重用内存。如下图所示,如果已经分配的内存被回收,线性分配器无法重新利用红色的内存:
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAr4AAACcCAYAAACZfKhhAAAgAElEQVR4nO3dd5wc5Z3v+09Vde6enKPCKGchISGREcHggG2M0xoHnNZhveH4nNfuSffeP+49r7PH67XX9mJsbK+NjY2xDRiQAQFCgCSUcx5NzrF7OndXuH/0TGtaMyPNKI2Y/r1fL71gqqurn6qurvrWU8/zlDIYCFoIIYQQQggxw6nTXQAhhBBCCCGuBQm+QgghhBAiK0jwFUIIIYQQWUGCrxBCCCGEyAoSfIUQQgghRFaQ4CuEEEIIIbKCBF8hhBBCCJEVJPgKIYQQQoisIMFXCCGEEEJkBQm+QgghhBAiK0jwFUIIIYQQWUGCrxBCCCGEyAoSfIUQQgghRFawTXcBhLjeBAJDJJN6+m+bTcPr8WB32MfMGwyGiMcTOBx2cnNz0tMty6K/fxCAgoI8NE0DoL9vAAvIzfXhcDjS84fDEaLRGDabRn5+HgDJRJKhoSDW8DwK4HI58Xg9KIpyRdbVsiwC/iF0w0BVFAqLCsadLxwKE43F8XjceDzuCy7TNE0GB/xYQH5+Ljbb5A4zwWCQrs5u3G435eVl2OwXfl88nqCvt49gMEhFZQV5ebkTzuv3B9D18dfRNE0GB/1Y1gRvHma3aeQNfzej39vfN0B//wBFxYWUlBSPeZ+u6wT8Qxnfo9PlxHsFvseR/W+Eqip4PG5cLte48w8O+jEMc8LlFRbmo6pj60Msy2JgYJCB/gF8Ph+lZSXpfXpEKBQmFovjcNjIzZ34uzjfQP8gpmXh8bjweDxjXh9Z7kRcTge+HB9wbj8FKC4uTM9jGAaDgwEAfD7PhNvnQiLhCJFoDJumkV+QuR8M9A9gWpCXl4Pdbs+YfyKjyxHwB0jqBm6XE6/Pm54nHk8QDIYAKCoqGLO/RCIRujq7UTWN8rJSXO6x6xWNxgiHI+m/VUXB7XHhdmf+jpNJnUBgCMg8Zo3Qkzr+4dcn2k+EeC+Q4CvEeX77mz/Q0tySMU1RFObWzeGee++kdlZNevqLf36ZI4ePMm9BHY9+8ZH09GQyyXf/z78B8Lf/8HXKykoB+O53foBlWWy65w423X1Hev7f/eYZzp5tpLKqgm9+66sANDU184uf/XpM+Ww2G7ffdQsbNqy/aAi9mGg0ymM/+inBYAhFUfhv//M/jxs+Xt/yJu++u4e7Nt3O3ffeecFlhkPh9Hp+7Ztfpqam6oLzJxIJNr/wCrt370tPs9k0PvO5TzF/ft2Yk30ikWT/3gNsfulVdP3cBcq8+XV87OMfzrgAgdQJ/Sc//gX+QT8A//V/fBufz5d+PRKJ8v3v/nvGssZTXVPF17/55fTfwaEgv/zFU3R0dKanFRUV8IUvPkJh0bnQ1d3Vw2M/egLTzAycqqpy1923s2HjetzjBJbJ2Pziyxw6eHTM9OLiIu69fxOLFy/MCDA/++kvGRi+IBvPf/7Hv6fgvFDX2tLGr598muBQMD3N6/XwiU89RN28uenv55W/vMa+vQeoq5vDF7/yuUmV3z/o5zv//H0A5tbN4UvjvO+1V7eye9feCZexcvVyPvHJh1LzbtnKrndT8377v/xt+iKnuamFJ37ySwA++OADbNi4blLlG+2tbdt5a9t2vD4v//Tf/lM6+PX19vPd7/wAgM994dMsXLQgNf9b23nrze0TLm90OX7z5NO0tXVQVVPJ17/x5fQ23fHOu2x59Q0A/uf/84/poGwYBm9v286rr7yRXp7NZuOjD32I5SuXZnzne/fs4y8vbRnz+Tm5Obzv/rtZsXIZmqYRj8X4wfceI5lM8uBHPsD6m9ZmzH9g/yGe/dMLlJQW83f/8I2pbTwhriNyySbEBPLyclm8ZCF1dXNwOBycrW/gP37+G/z+wGUv+8ihc2ElEAjQ2Ng84bw2u43FSxayaMlCKqsq0HWd1199k6eefPqyy9HZ0UUoFMblcmFZFh0dXZe9zKlIJpI88ZNfsmfPfjRNY9GiBZSWlaDrBr/51dPjBp7fPfV7/vz8ZnRdp7S8lBUrl+Pzeak/c5Yd23eNmb+7q5uAP5Cu4Wppbs14XVNVyivKqKgop6KinIKC/PRr5eWl6emjaxB7e/v44b89TkdHJx6Pm2XLFuP1eejvH+Txx35Of//AmHI4HI7U97h4IRWV5ZimyWuvbuXXv/rdRUP3xfh8PhYvWciChfMoKCigr6+f3/3mD2x/591x58/Pz0uv1+h/NlvmKeGdt3fw8yeeJDgUxOP1pPbBygoikSjPP/cSyWTyssq95dWtAHg8bhobmvAPjv1t5eXlpsvn9aYuylwu17jf12gNZxvT/9/U1DLuPJciHApztr4h/fc7b++44Px2u23cbT2yLqN1tHUyOHDuwuT4sRPjLvPPz2/mtS1voqoqs+fMorqmCl3Xeeb3z7LtzXfGfY/P503vIyUlxQSHgvzh98/x/LMvYZomvhwfH/jQ/QDs3b0PXTcy3r9r114UReHe+zZdsTtOQkwHqfEVYgLz5s3loY9/GEjVGj7+2M/oaO/k4IEj3HHnLZe83MKiQnp6+ujq7Ka8oowzp86iaSqqOv7JxOvx8MjnPpX+u6enl5/95Jc0NDTR0dFFZWX5JZflnbd3YlkWG25ez9bXt3H2TAPz5s295OVNVWNjEx3tnbjdbv7qkY8zZ+5sDMPgLy9tYcf2d9m1cy83rluTrl3buX03J0+cweF08IlPfpTFSxYBw7XA+w6yZu3qMZ/x5ta3sSyLW2/fyJZX3qC+vpElSxenX3d73Bk1ucePneTXv/odAH/9jS9lNEkZsfvdvQSDIWprq/n8o5/B5XYRCAzxiyeepKenl21b3+GjH/tQxntyc3Myvse+3j5++vh/0NLcQigYIn+CADcZ1TWVGct+5+0dbH7xVba+/hY333LTmNvW991/NytXLb/gMv3+AG++8TbxeJz1N63lfQ/ci9OZ2hYnjp/C6XSOu20mKxqNcfjQUfLz81hz42pe3/ImDQ2N3LBmVcZ8d266jTs33QbA5hdf4Z23d1I3fy5/9ZmPj7tcm92GZVk0NDSxdt0NQOo7LS0toaen95LLOyIn18fW199i/oJ5JOIJTp44g9frJRwOjzt/SWlJ+i7OhdjsNizTouFsE4VFhfT3DdDR0UVJaTG9PX3p+drbO9izK3V35KGHP8yatanttWP7Ll564WV2vLOLdevX4hvVZAKgsurcPmJZFkePHOfp3/6R48dOcve9d5Kbm8Oatat4e9t2urq66ejopLa2GoBjR0/Q0d5JXn4ec+vmTH2jCXEdkRpfISbBbrdRWJC6bRqLTdxubzK8Hg9er5fDh1O1vvVnG3G7PTidk7vdXVpakr6VfuL4qUsuRzAY4tTJM/h8XlavToWgI4ePXfLyLsXOHXswTZOVq5YxZ+5sADRN49777iI3N4eurm7a21NNCUKhMFvf2AbAzbdsSIdeAIfDzk0bbsR+XrvgcDjM8WMn8Xo9rFy1HM2mcfL4qYu2572QWDSWrkm95baN6XaVeXm5fGz4Qun0qTMYhjHhMgCKS4opKyvFMExaW9ovvUDjGAn28Xj8gk0bLmTXu3uIRKJUVVfy4Ec+kA69AIuXLGRu3ezLKmNnRxeGYVA3bw7z59ehqipnzzRe/I0XoSoqs2pr03dR+vsH6WjvZPmKpZe9bICqqkqamloYGgoyOOgnGo1SVl562cv1uD04HA4aGpoA2L//EF6vJ93mf8T+vQcBqK6uSodegLU3rsbhdBCJRHhr28RNLCDVdGv5iqXk5uaQSCSIRqJAqvnN6htWYhgmf3j6WSzLQtd1tgw3qfjAh+6/5GY5QlwvJPgKcRGGYXDm9Fmam1vweDxsvHn9ZS0vGApRVFxIU0MzpmnS1tJGVXUFmk27+JuHyzNyi7logs5ok9FQnwoZy5YvobCoEK/Py8DAIE2NV+628MV09/QAZLSbhlTt10i4b25KNU2IRqIkEgkcDseka9xHmjUsWryQvLxccnNz8fsDNDRcesDq7TtX+1ZVXZnxWklpCb4cH5FIBOsi6dqyrHRnoryCyXcGm1QZR9UQerxj24Hruk4ymcz4d355m4f3gyVLF415/5Uw8h3MnTuHvLxcnE4H9fVnL7rdLsYwDG5Yu4qAP0BzUyv79h7A6/VQNKqpyuUY6cDY2dlFS0sryWSSsrKSCee3LGvMth6vaYvNplFdU0lTY/PwMaee8vIyBs9rWjU03NZ61Q0rMqY7HA4WDbcv7uq8eJOlgH+IUCiMpqkZx56Nt6wnPz+Pvr5+Gs420dPdy8DAIDW11Sy9SvuCENeSNHUQYgIHDhzmyJHj6HoS07TIyc3hIw99cEznqamKRWOsWLGE/fsO0dPdy+Cgn/sfuGfCWj/TNAkGg2BBLB6nob6Rnu4enC4nCxfNv+Ry1Nc3oCgKi5csRFVV1q1bw9Y33uLA/oPMnlN7ycudLF3XCQy36Ty/Q52qqrhcTgDa21LbJRKJkkzqFBUXpnvOX8zZ4XC/YOE8VFVlzdpVbHnlDfbs2sfcubMvqa1if9+59rvndy5UVQWn00EoGGJgYJDS0nOBKJlM0tTYjEUqxO96dy+9vX0UFORTVnp5NYaRSJSmxmZM0yIQCPD6a6ma8eUrluL1esfM/8dnnuePzzw/qtwqX/nao+lb26Zpptt7FxRe+sXVREZutQOUV5aRk5tDTk4OPT29nDp5mkWLF17ysg3DoKa2iry8XN7dsYuBQT8VlRUEh0JXpOx5+bmoqkpLUyutLW1UVJbjzfFNOH9nRxf/13//fzOmLVq8kM9+/lMZ0wzDYN36tfzmyadpPNuIf9DPho3r2bYts83uUCAVfAvH+V5KhwN4KBTGMIyMJi7RaJTGxmYsyyI4FGTLK2+g6zrlFZUZI6I4nU7u3HQ7z/3pBQ4eOEQ0GkPXddatWzvm84R4L5LgK8QEXC4n+QX5JJNJBgcGCYfCPP/cS+Tk+qitrbn4AiZgWSarVq/krW07Ur2kS4qorqnGtMYfZioUCvMv/5zqNW6aZrq2aNPdd4wZkmgq6uvP4nQ6KC4uAlI1PW9ufZuW5jaSyeSkw+WlMg0zXbs33tBII6E0MVy7nUwmsCwLmzb5w9aJE6ew2bT0qBo3bbiR117dSmtrG/FYfNzhny5mdBOGcctNqtzJRGbHr0BgKD2ygGWZWFZqH/vUZx7GORzyL1VrS9vwsi1MM7VNy8vLePAj7x93fkVRMkK/qqqMvgQwTZNEIjVMml2b3J2Iqeho76SnuxebzUZpaQmqqrJy9XK2vPIGb7+187KCL6SaeCxYOJ8DBw5h0zTuuvt2QqHIxd84CS6Xm/nz6zh0+CiD/YN8+jMfp72t44LvOX8/UcZpz2+aJrNn11JUVMjLr7xOKBRm+Yql6VEdzs2X2v9s43wvmpqaZpnWmJrzttZ2fja8/42MMFJeXsYXv/z5Mb/1JUsXsfnFVziw/zCWZVFYmM/qNZk1zEK8V0nwFWICixcvTHduM02TQweP8MzTz/Kzn/yKf/j2N8nLz0PVhk9o59+eHfXneLWKRcVF1M6qoaW5lTvuuhWLsSeqEaqqUlVdAYDX66WgsIClSxdRM1w7dynO1jcQ8A9hs2k8/9xLaJqGZaU+a2BggHAoMmas0ivNMTz+aigYIhqNZrxmWVZ6fNrqqlRzAp/Ph81mY2hoaFLLb2psZnDAj6qqvPTiK9iGb+dqmkZwKEggELik4Dt6HOBoNJYRGizLIpFMoqoqxeeN6evxerj11g3ohsGbb7yFYZh88tMPU1194eHeJqO4pJAbblhFX18/+/cdpKCggG9866to2vit2T7+yY9esHObzWajpKSY3t6+dHOMK2nvcDtVh8POU7/+PUB6rNme7l5CwVB6bN5LoesG8xfUsWf3PkzDZPmKZbw1wWgHU2UYBvfev4kffv9xvF4Ps+fMGjNSyGijhyi8EMuysEjdndi5Yzd1dXPGHbEiJzcH2jvHHV1mYHhECLfHPWb87KLiQtasWUVPdy8HDhxGVVU+89lPZLTdHuH1erjv/k38+bnNqKrKhz78ARm3V8wYsicLMQkjnT5cLifJZDJ9ghkZ4moomHkbNTSqh/f5t/FH4u3aG2/A7U7VHl2Iz+fly1/9Al/+6hf49Gc+zv0P3EPtrJpLHlLIsiy2v53qnGV3OOjo6KK1tZ22tnY0TSOZ1Nm//+AlLXuqRpoCdHf3ZEzXdT0dcEcCvsvtwm63E4lEOXni4p36RsZzdTqddHam1rG1tR1NU9F1g4MHj1xSmYuKitLbfnRbWkiFt3AojMfjTgftER63m9vvvJVNd9/B6htWDpdxz2W3aR0p0+133sq979uE1+tjYGCQnTvGDu02FTW1qUB+oaH2LoWu6zQ3taAoCqqmpb+XgYFBbDYb0Wh03OHgpsKyoG7eHLxeD0uXLSIvL/eKbOfhpaeGJKssp7Kq4op39lqwcD4ej5ubNq7DYmyZRx4Ocvp0fcZ0wzA5Mzxt5A7HaIWFhdx+56185GMfoqCgANM02b//0ITluGlDaoxhl8t5RTrvCXG9kBpfISapq7MrXQvpGR6Ds2J4KLHQUIhgMETOcC3VyAnIZrONO14nwKrVy5k/fy45uTnpDivXQiQSpW341uxXvvr5jDagB/Yf5i+bX2XHO+9y+x23jBkG60q7Yc0qGhoaObDvMLfdfnO69vTs2Ub6+wfIy89j1uxUs5Lc3Bxmza7h5InT/Pm5zVTXVGcM2dTZ2U1RUQEOh4NYLEZrSxsAX/7rz+MbtY5Hj57gz8+9xO5393H3PXdOeR1zc3NYtGgBJ06c4tDBw9TNSw3vZFkWLzy/GcMwqKyquGAN2Yab17N3zwFOnjjNkUNHWXGRocUmKycnh7s23cafn9/MtjffYcWKpeRe4Il2F7Ju/VoOHzrKyROnOX7sZEYnt1gsTsPZxkvq+BaLxenv66egIJ+vfv2LGU0sXn3lDfbu2c+hg0eYNfvy2pm73W7+5u++hmOcJy5eCZ9/9DOoqnLFa0LnzZ/L3/zt1/DleMcN6wsXzWf3rr0cP3aSrs4uyitSx6C21nYCgSEURWHjLTdNuHybzcaHPvwAT/7yt+x4ZxcbNq6f8BglxEwkwVeICfT19bNn9z4MwyQ4FGTfvgNYlsXcujkUDY84sGjRAsrKS+np7uVPf3ieJUsXE4/HeXvbdhRF4f0fvG/CmlmbzTbmEbjXQn9/P9FolNKyEsrKyzJeW7Z8MS//ZUsqHLd2pEPniObmlnEHyJ83v46qqoox0w/sO5jxIAEAu92eHhljwcI6cnw+BgYGePyxn3PjujUMDQV56823sUyL5SuWpMOwqqp89GMP8qN/exy/P8BPf/wLVq5eQX5+Lu1tnezZvY/KynK++JXPEQgMMTQUpKi4iPLz1nHR4gW88PxmotEoTY0t6eA6FbfecTOnT9ezd88BIDUqxdn6Rk6eOI2madx6+80XrJGvqChn/Ya17Nq5l61vvM3ipYuuWJvqmzauY9++g7S3dbBj+y7e98A9Y+Y5cfzUuLfKly5dlG6iUVVdyfyF8zlx7CS//c0zrFm7msqqCiKRCAf3HyYYDFFWXpr+LYwY9AfG3UfmL6ijsrKCgwcOpUZCKC9NXyiOmFs3ezj4HuV9D9yDw+HgzOn6dEe7ttZUR8e+3r70Z5SWlbB4gjbBl9sR9ULOHyd3IsFgaNztUVZWyqLFC8ZM1zSNvPzUxcp4oz8sXDSfWbNqaW5u4alfP8P6DTdiGAbv7tiNaZqsumEFJSVFFyzTnLmzKC0roauzmz8+8xx/9cgnrvpFrhDXCwm+QkygubmV5uG2e6qqomka8+fX8blH/ypdy6OqKvfffw+/feoZTp08w6mTZ9LT58ydPe4DFabbsSMnMAyDWbPG1qgVFBZQUVFOR0cnjQ1NY4Lv2frG9EgJozkc9nGD77s794yZ5vGeGxLO5/Pxrb//Oj/+0RN0dnTx/LMvAqBpKutuWssD778v470+n5dHv/RZfv6zJ+nvH+C14Y4/iqLg9ri5/wP3YbfbOXLoKLquUz1OmfLz86iqrqKttY0zp89eUvCdPbuWhz/xEf70h+fZu+dAOgA7HA4e/sRHqJvEIP8fevD9nDh+iu7uHg4eOMKNww9buBJuvuUmfv+7P/HWtu2sWLmMyvO2w+FDRzl8aOyjjouKCtPBV9M0HvnsJ3n+2RfZu+dAxlP0NE1j5arl47ZBHegf4JW/vDZmutPpoKKinLfeTD3pbO7csdto9uxZQGoEgrNnGli8dBHHjp4c8wS/7q6e9GesXL18wuB7PQgOBcfdHqtWrxg3+F6Mqqp87tFP89PH/4Purm5eeuHl9PSamioefHD8Do2jORwOHnr4QR774U+pP9NAV2f3mKH5hJiplMFA8Eo1fBJiRmhpbs3obKUoKg6HHa/PS1FR0bhPWBsKDNHW2kFPTw8ut5vSshJqa6vHdDA5dfIMqqowb35dRo1gMqnT1NSM3W5n9vAt3nA4QltrOzabRt0VfJpac3MrsWiU4pLiMbV1AF2d3QQCAXJzc9NNObq7evD7/RMus7SsNB2CdF0fDsfjH1o0TWPeee2ag8EQXZ3dtLd34PP5KC0robKyYkw72RHxeJyO9k56e/qIRKNUVlVQXFyUHuJp5DssLCpMj7s6Wnd3D/5BP76cnDGBPRQM0d6eagoyf8G8C97K7u3po6enl66ubsrKyigpLaK0tCTju43FYjQ3tWJ32Jk7N/OhD22t7YTDYRwOR/oBHlPR0dFFcGgIr8+b0Uku9R2kHqtbVFyUHrmj4WzjBR8zXFlVOaYW1jRNOju6GBz009vTR3FJajtXVJZnbJuR/WYiZWWl+HJ86XJV11SPe4v99Ol6LNOkuLiYouLCi+574+2nNbU1Y4aaG/nOR++rU9Hb08fAwABl5WVjHirR09PL4MAg1dVVeIdrgnt7+xi4QFvl0eVubmohmdSZM3dWRs2rZVmcPpW6mD5/X4zH4rS3d9DZ2Y2maZSXl1FdUzXmNzMwMEhvTy9er5fqmsyOlI0NTSQSiYx9ZLRTJ1N3MGbPmTXmWCbEe5UEXyGEEEIIkRVkVAchhBBCCJEVJPgKIYQQQoisIMFXCCGEEEJkBQm+QgghhBAiK0jwFUIIIYQQWUHGJxFCiCssEouhkHpYh00eDCCEENcNqfEVQogrSNd13ty5m1MNjWx7dw+GYUx3kYQQQgyTGl8hhLjCXE4nKxcvYu/hYzS1d+Cw2ejuH8DUDUpLiqgsK+XIydPouo7b5WbpgjoOHDvB2hXLqG9qwaZplJeWcOj4SQzToCg/nwVzZ/Pq2zsoLSxgKBTh5rWr6Bv0c7a5FVVVmFNdTXFRAXsOHcVu03A6HCxdMI+mtg4GAwGwYNnCeTidzunePEIIMW2kxlcIIa4St9tFIpFANw0s02Ld6hXMrq7CYbczp7YGm2ajvbsb07IwTJNwNEpDSyuVZSXUNzVhmRY+j4ejp+vRdR3DMFi2cAElRQV09PRy/MxZnA4HOV4vLR2dYFkMDPoxLYvZNdWoqkokGmUoGKKqokxCrxAi60nwFUKIK8wyLfr9Abp6eqkoLQXAN+oRur0Dgxw+foq5s2pw2GxgQU1FOQePnaCspASHw4HP60OzqVRXlLNxzaqMR9mqigKmhdPhwOl0UF1RzsK61COPN65dzdzaanbuO0A4EqWqvJQbli+hsbWNhubWa7shhBDiOiPBVwghriBFUbDZNE6dbWTpgnnk5+bgdrrwjAq+Po8HRYEzjU2UlZSgqArlJcWYpsWcmioAZlVVYLfbOXzyFMFwGEVRKMrPR1EUPB43LpeTNcuXEI5EOHT8JLF4HNO0aGhp5eipekqLi3C5nPQN+Dlw7ASgUFleOk1bRQghrg/KYCBoTXchhBBCjM+yLBRFmdI8F/tbCCGyldT4CiHEdWwygfX8eS72txBCZCsJvkIIIYQQIitI8BVCCCGEEFlBgq8QQgghhMgKEnyFEEIIIURWkOArhBBCCCGyggRfIYQQQgiRFST4CiGEEEKIrCDBVwghhBBCZAUJvkIIIYQQIitI8BVCCCGEEFnBNt0FmAksy8r470wy8qjTCz3ydPR6z8RtkO2msg/MxO9/MusPM3sbCCFmlske12YiCb6XwTRNLMtC13VisTi6nsSyrBlx4lMUBUVRsNlsOJ0ubDYNVVVR1XM3CSzLwjRNTNPESCYwkzrW8DYR730j+4Bqs6E6HGhaah8YfaAc2QcMwyAei5NMJjGtmbEPKIqCgoKmaThdTux2+7i/gZFtkNB1EoaOYVrAzDgOCCFmlvS5XdVw2mzYNC11nFezpwGABN9LZJomuq7j9/t5+aXXaG1tJxqJYJoz52Snqgout5uKynLuu38TpaUl2Gw2VFXFsiwMwyCRSKCePomzvQU1GkUxjekutriSFAXT6SRZUkZ02SqcLhc2mw1FUUZd9MXY8spWzpyqJxQKYxgzZx9QFAWH00FJSTG33XEz8xfUYbPZ0DTtXOBNJjkZGeJgMoLf1Ekyc44BQoiZRwHcikqF5uA2Vx55Tlf63J4NlMFAUI7SUzQSenu6e3jqyWfw+wPTXaSrLjc3h0995mNUVFakT/qxWAzbscN4mhumu3jiGkj6comsvxlXbi6qqmKaJsGhIZ55+jmam1qnu3hXncvl5OFPfpg5c+dgt9sBiMfjnAwH2KqHmDlxXwiRLXJR+ZC7gGKPL2vC78xfwytspJYnFovx1rYdWRF6AYaGgrz26ptEo1F0XSeRSBDt7cHT0jjdRRPXiD00hNXUQCwWSzVtiMc5euwkLc1t0120ayIWi/P73z6L3+9H13WSyST94RBbjbCEXiHEe9IQJrujQ8RisXTzzZlOgu8lMAyDSCRCU2PLdBflmuro6CIUCpFMJonHYngazkAW/EjEOa6OVqLRKMlkkmg0yr7dB7LiQDkikUjS2tJGPB4nEY9Tn4hgZNH6Cy9H+24AABfTSURBVCFmnjYzSSQSmVHN1C5Egu8Updo1JgmHw0TC4ekuzjUVi8aIRMLE43Fi8RjOUHC6iySuMWcsSiQSSdX4RyMM9A9Md5GuKcuyCAQCJBJx4okEASM53UUSQojLElUhHA6nO+jPdNK57RIYhkk8Hp9RHdkmI9WuNzV6RTyeANOc7iKJa0yxLOLxc/uAYWTfPpCIJ0kkUieIpG6AXZvuIgkhxCWzSPVXyJbjudT4TlF6+CZdn+6iTAtD1zEME9MwQHqvZyXTMDBNK2t/A6ZppIbxMwwsKztOFEKImc3QdWnjKyY2U8bqvRQj625ZluTeLDVy8ZetX//o30CWHgaEEDNMNuUaCb5CCCGEECIrSPAVQgghhBBZQYKvEEIIIYTIChJ8hRBCCCFEVpDgK4QQQgghsoIEXyGEEEIIkRUk+AohhBBCiKwgwVcIIYQQQmQFCb5CCCGEECIrSPAVQgghhBBZQYKvEEIIIYTIChJ8hRBCCCFEVpDgK4QQQgghsoIEXyGEEEIIkRUk+AohhBBCiKwgwVcIIYQQQmQFCb5CCCGEECIrSPC9ihRFISfHh6pmbuaCgnze/8H7mDWr5qLLsNlsPPL5T/HNv/0qbo/7ahU1+ygKKOo4/5TpLtmMoijg83mxO+znTVe4a9PtrLtp7aSWc+em2/j2P/4t5eVlV6OYQlxVCqmT7fn/hBDXnm26CzBTFRYW8KW//jz5+Xnous7zf3qR/fsOYVkWObk+Nt5yE319AzQ3t15wOYqqUFVdidvtQlOvzqGytraKhz7+Yb73L/+OZVlX5TOuN9acOqy1N42ZrjScQdm7axpKNPP4fF4+/8XPUFlVgWma7Ny+m5c3b8EwDFRVYc2Nq+nr62fPrn0X3e+KiovIzc3B6bRfcL5LVVhYwOce/TTf/+5jmKZ5VT5DZK8PFVSw0OUbM/03/W20J6LTUCIhspcE36ugorKcr3ztCwz0D/LmG2+xZOliHvzoB7CA/XsPTmlZyUSSH/zrY9gddkKh8FUpb3lFOSWlJVdl2dc1y0I5exoikfQkxT8wjQWaWR79ymfJycnhxec3U1ZRzsZb1qMbOq9sfm3Ky3rhuZfY9sZb9Pdfne+nsKiAktISqfAXV03cNNkb8ZO0zl1YBfTkNJZIiOwkwfcqWLvuBpxOJ3965nna2zvZs2s/3/y7r3Lf/Xdz/OiJ9HxOp4ObNtzI7Dm1dHR0sW/vQcLD4XbRkoXU1lSl5zUteO3VNzI+R1EUZs2uYfGShfh8PtrbOzl04Ajh8LmA7PG4U8uqrUbTNJqaWjhx7BSRSIRZs2qYUzebBQvnAXDPvXcBqZq3t9/eSTQy82silKYGGOgf/8XKGiy3C6W5EausAsorAQtl/x4YqaH05WBV10JBIYSCKC3NEBg8twy7HaprsYpLwdChswOls/2qr9d0W7N2FeXlZTz91B85dPBIutnPrbdtZNfOvQSHhgBQVZUVK5cxb8FcgkMh9u89SF9f6vuorqliyZKF6WVawDvj7JelpSUsW7GY0tISenv7OXTwCH29575TTdNYsHAec+vm4Mvx0trSzvFjJ/EP+iksLGD5iqVU1VQCcPc9d2ENB5N9ew9etaAtsk/CMtkf9hM1jXFfvzWniJOxEDHToM7ppcbhpiMZY1/YD4CKQpXDxTynD6+m0ZGMcjIaIjJqeYU2OwtdPoptTgb1JCdiQfr1xDVZPyHeKyT4XgVz62YTDkfo6OgCwLIsTp+qZ8PGdfhyzt3uuue+uxgKDDEUDLFi1XJuWLOKH37/cXRdp6yshIWLFwCQn5eL0+0aE3w33nIT9z9wD9FYjJamFt7/wfu4+dab+O4//wDDMFAUhS/99RcoLy+lo72TcDjCRx76IA67nZ07dlNeWcbyFUvJL8gDYOHi+ellv/vuXqLM/OB7IVZFJVZZOeTmY81fiBIOYcXjKIqSCr6+HMxN7wNNQ2lrwaqbjzVvIeoLfwRdB5sN854HwJcDPV3gckPdAti3G6XhzHSv3lW1es1K4vEEhw8dBVK/gbe3bWfR4gVUV1dy4ngq+M6tm01lVTmdnd2sWbuajbes53//f/9KNBIlPz8v/Rvwetzk5OWyb+/BjOA7e84sHv3yZzEMnZPHT3P7nbdw08Z1/J//9a8kEkkUReELX3qEOXNn4R/009Hexd333sGcObN46te/Jy8/lxWrluH1eYHUb2Ck2cWJE6cl+IprQgE2+AqJmybLPbkU2Bz49SSjG90s9eRwX14pQ4ZORyLOnTklzHf6eHogdSFdZnfy6aJqLKA+FmatL5/V3nx+3NOYUcssRLaT4HsVFBQU0NPdk9FuMRKOomkaTqczPe3dnXv4y4uvYpomDz38ICtXLaeouJDurh62bX2HbVvfAeChhx9k9ZqVGZ/hcNjZeMt6Ghub+cUTT2KaJrNm1/Klr3yOJUsXceTwMT7wwfdRXFzIr37xFKdOnsGyLIqKChkaCgKwa+dedu3cyyc+/TFWrlrGD7//eNa08QVAUTDXbQQjVWOiRKMo72zNnMfrg5wc1M3PQTiMMmr7WCtWg92O+sqLEBxCsdkw3/dBzLXrUd/djlVVA14fyq4dKM0NAJjrb8ZasRqltQmSM/c2Z3lFOeFQKGN/GhoKYlkWefm56Wnt7Z389LFfkEwmWX3DCh7+5EdZtWo5O3fs5uiR4xw9chyAdevX8OBHPzDmczbdczumafK97/yIQGAI17NO/uG/fIu7772TzS++ytJli5gzdxZvvLaNrW+8hWmY+HxedMPAsiwaG5r5wfd+zK2338z977+HH/3b4xiGhARx5XlUjU8UVjHyizgcCXAgEsiY59acInaGBtgf8RMzTUZa3nhVG5tyS2iNR/nDYAeGZXHC5eWjBZUU2R30JxPcmlOEgsLPe5sJGEkcisqXSmdxR24xWwI913RdhbieSfC9CmLRKG535ggMdrsN0zQxdB1NcwDQ19uf7kjT1tbOmhtX43K5JvUZdrudvLxcNE3j69/6CgCapqKoCoVFBWiaRs2savr7Bjh54nT6fVKDlUkJ+CEWS/2RGOeWoKKgHNoPodDY18orwTQwN9xybprNDqXlqf8vKQVFwVq0BGvhotQ0pws0DRzOGR18Q8Egbo8nY5rDbkdRFOKxeHpaNBJF13UAWlvaSSaTFBQWTOozFEVh1qxadEPnkS98OuNzamqrAaisqsQ0TY4eOY45HGivVlt5IS7EwKIzGccYvhgcMvQx8wwYSXaGBtLheOS/ZXYnDkUlT7PzSFHmaEDVdjcDyQS1DjcmFh8pqEi/5kClxjG5c4oQ2UKC71XQ19fP7Dmz8Hg9RMKpjlNlZaUYhkksFsfhdIx5j2WRDsaTYVkWpmly6sRpjh4+PubzLcvCsiw07eIjQZjDNZ42m0YyObnPnxEsC+XU8Ynb+I4YCcbnM3SUSATlyIHzphsZ/1WPH84MuZYFsZndjKS1pZ0b1q6ioKiAwf5Um+d5C+oAGBjwX/C98Ym29zh0Xaeru4etW7ZlTI9EU9vXGPkOLjIiijV8AWq32zGM+AXnFeJSxE2Tt4J9E7bxBQjqOuPdc9OHw/KhSIBuPXP/7Btuw6tbFoN6krdDmcezhDRzECKDDCV4FezdfQBFUbhpwzq8Xg+LlyxkwaJ5NJxtJBAYSs9XXl6Kw+nA7XazfMVSYrE4weA4NYvjSCST9PcNUFFZjj8wRH19Aw0NTURjMQYH/ZimSf2ZBoqKi7j1jptxOh1omkbdvDmUlZdmLKtzuC3ykqWpWkmb3XbRoCCAliasvPzU+L893dDVCeEw9KZuKyrdnWBZWL5cGBhIve73QyBwLhzPUK+9+ibJRJL7H7iHnJwcamfVcOvtN9PZ0UVzU0t6Pq/Xg8frxuGws37jOux2+0WH+BuRajt/hqqqSgzToKGhiTNnzhIYGqK9rQOAttZ2NE1j4y034Rtux1tZWcHCRfMzljXSoe6W2zagKAqqqqJp2pXYFEJctu5kjCFDZ77bR9DQaYpHaIlHCRo6ISMVls/Ew5TanWBBayJKUzxC0NDpSEz+QlKIbCA1vlfB8WMnaWlq4a67b+Pue+/Asix6e/p45nfPZrR5XL5yKTeuX4OiKBiGwetb3swIxheiJ3VefOFl/uqRj/P33/4GQ0NBXE4HKArf/5d/Z3DQz5ZX3qC2tpr73reJ991/N7qeGj91xzu7+MtLr6aXtXv3Pm6942Y+/qmHuP+Be/H4PPziiV/T2NB0xbfNTKIcP4pVXol5yx1gmSiJJJbDjrLtdZTeHujsgM52rKUrsJatRIlEsNxu6GhD3fHWdBf/qgoEAuzetZcNN69n2fIlAEQiEf70hz9jGEb6TkReXi7/9N+/nX7f/r0HqT/TMOnP2fLqVurm1/HFr3yORCKBaZjY7HZ+8tjPaG/r5NTJM+zfe5CVq5Zxw5qVJJM6NptGa0sbDWebSA7XxJ86eYaenj7uuvsObtqwDs2msfmFV9ize/8V3CpCXJq4ZfJSoIuP5FfyxZJZhEwDl6ISNHR+2ps6Tm8PDjDb4eHhoip0y8KwTGyKyu8GWulIyF0MIUZI8L0KEokET/zkV9TUVlNWXsLggJ+O9k7i8dTBp6enj1/+/Dd0dfVQXl5KfkEeba0ddLR3jru8nJycdDvI0c6eaeB7//LvVFSUU1iYj98foLu7B7//XIeJX/3Hb6mqrqSkpAjDMOjp6UvX8KbLG0/wk8d+TnV1FT6fj4HBQXp6eq/gFrn+KJ0d8PZWCE58oaGcOQXtrZCcYDigeAx1y2YoLMLKyYNkEjUYAP/wcGaWhbp9G+QXYOXmgaahDg2de32Ge3nzaxw5fIzyijIi4Sidnd0MDLcxN02LP/z+WQKBIDk5PkrLSujr7aOluW3cZbncLkzTSg81NqK/b4Dv/O/vU1NdRXFJEeFwhN6eXrq7z+2/f3zmeXZs30VpaQkOp52e7j7a2zrSoRdStcdP/PgX1M6qIb8gn1AoROsEZRFiqnaGBnApKvEJmh1YwDMD7RdsBtEaj/IffS2U2h3ka3YG9WS6mQPAkJHkZ73NVNhdFNrsRC2TAT1Bb1JCrxCjSfC9SgzDoKmxmabG5jGvxaIxTp+qB2Boghre2lk1RKMxnA4Hs+bU0t01fq/cocDQhMsASCaTE5ZjtP6+Afr7sqjjWzSCEo1ceJ4hP8rQhdujouvQ043S0z3+65YFgwMog1m0bYeZpklrSzutLWPHLR4ZUQFgoH8go/nDiNLSElRNxdAN5s2vIxqNkkiM7RAYj8Wpr2+gvn78mmLLsuho75zwwnJEKBTm+LGTk1k1IaakZxLhszF+keMRqXA7ZEzcKTZhmTQnIjTL0L1CTEiC73XI7Xbz1a8/imVZKIqCoii89urWi79RiBlCVVUe/Oj7mTV7FmChqiqv/OW19ANehBBCiEshwfc6FI1G+ef/9T2KigowTYuB/kGGhibX9leImcA0TZ568hlKSovQNBv+Qb8MxSeEEOKySfC9TgX8AQL+wMVnFGKGCofDhBulhlcIIcSVI2NWCSGEEEKIrCDBVwghhBBCZAUJvkIIIYQQIitI8BVCCCGEEFlBgq8QQgghhMgKEnyFEEIIIURWkOArhBBCCCGyggRfIYQQQgiRFST4CiGEEEKIrCDBVwghhBBCZAUJvkIIIYQQIitI8BVCCCGEEFlBgq8QQgghhMgKEnyFEEIIIURWkOArhBBCCCGyggRfIYQQQgiRFST4XgJFUQBQVWWaS3Jtjaz3yH8NJbvWX4B53j6gadl3CBn9O1Ata5pLI4QQl0cZPowpWXJOz76z1hWgKAqapuFyu6a7KNeU0+lA07TUCV/T8Nsd010kcY0FNRuqpqGqCpqqkpuXM91FuqYURcHldqGqKoqq4krq010kIYS4LM5kMn1uzwYSfKdIURRUVcXucFBaWjzdxbmmCorycTid2Gw27HY7rTn5GNNdKHFNdXp82O12NFXD7nAwZ25t1hwsARwOOwWF+dhsNmw2G8UxHc2QX4EQ4r2rIBTD7nCkLuiz4HguwXeKFEXBZrPhdrtZsGhu1tT6Ol1Oliydj8fjxuFw4HI6seflc8bpme6iiWukF5VAXgFutxuH04nL5aK6toqCwrzpLto1YbPZuGHdcnJzc3E6nTidTvLdbuY0d6OY5nQXTwghpswejlI7FMXtdmOz2bIi+Gr/+E//9f+e7kK8V1mWicfnJBaNkUgmsWbYyU9RwG63UVCUx7IVC6iuqaaoqBi3242qaViWRVdSpycSxWboOFHQZv5vJqsYFgQsiwbVRn1hCaUVFeTnF+ByuYYPkBYen4tEIkE8Fse0LJhhzV41m0Zuro+Fi+cye/YsSkpK8Hq9aJqWmiEcwezuJQ4YdhuoKsjvQAhxvTIttEiM3N5B6rr9VBaXUFRUhMvlyopaX9t0F+C9ZqR9r9vtpqioGNO0cLvd+P1+YrEYhj5z2vxpmobT5SI/P5+SkhKKi0vSV4WappGXl4euV9Kjaezu7yccDpNMJLGkw8+MMXJ3o6CwkIqSUgoLCnG73ak27i4XBfkF6LqB3W5ncGCASDSKnkxOd7GvGFVVcTid5ObmUlxcTGlpGT6vF7vdDkCOz0dZWTlKj0J+ex/BEw0kk0nMGXYRLISYOTSbDdfIub2sIl2hlS3tfCX4XgJFUbDb7eTm5qJpGl6vl3A4RCwWn1nB16bhdDrxen3k5ubg8XhxDLcDsiwLj8eT6uzjclFQUEA0EiWZlOA7Yyip4OtyufD5csjJycHj8WC329Nt3X0+H6qm4fF4KCoqIhqNYehJZsouoGoqDocTr9dDTk4uPp8Pp9OZru11ud0UKgpOp4O8vHwikQjJREKCrxDiupUKvqlze05ODt7hi/lsCL0AymAgOENOUdeWZVmYpolhGCSTSZLJJLquz6gTnqqq2GwaNpsdhyM1osPo2yAj66/rOslkgmQytf4SfGcOVVWx223YbHbsdjs2mw1VPdc1IPM3cG4fmClG7vDY7anfwMj6j/wGLMsa9RtIHQcMw5DfgBDiupU6t6c6qdvt9jHn9plOgu9lsiwr499MoyhKxr/zjayzBN6ZazL7QDb/BuDchfDI/wshxPVsMse1mUqaOlymbNxpRjv3IANtmksipku2/wbgXM2wEEKI65sMZyaEEEIIIbKCBF8hhLhEiURiuosghBBiCiT4CiHEJXrphZenuwhCCCGmQIKvEEJcgsaGZvbs2k9rS9t0F0UIIcQkSfAVQogpMk2TF5/fDMBrr26VkRyEEOI9QoKvEEJMUW9PH729/QC0t3USHApOc4mEEEJMhgRfIYSYopMnTqMPP6UxEolw+lT9NJdICCHEZEjwFUKIKUgmk+zYvitj2uuvbUsHYSGEENcvCb5CCDEFhw8eHdO0IeAPcOrkmWkqkRBCiMmS4CuEEJNkWRYHDxwZ97Ujh45d49IIIYSYKgm+QggxSdFIlEgkwvoNN2KzpZ747nQ6uHH9Gnp7+4jH5YEWQghxPbNNdwGEEOK9IpFI8vW/+TLBoSAH9h0CQLPZ2HT37Xg8HsLhCE6nY5pLKYQQYiISfIUQYpLyC/IAcDgdrF6zEkPXcTgd2B12bHYbefm501xCIYQQF6IMBoIy8roQQgghhJjxpI2vEEIIIYTICtLUQQghpiiRSHLmdD2WaaLZbMybX4fdLodTIYS43smRWgghpigcCvPM7/5EIpHE6/XwN3//Nez2nOkulhBCiIuQpg5CCDFl0jVCCCHeiyT4CiHEFFmMjr7K9BVECCHElEjwFUKIy6FI9BVCiPcKCb5CCCGEECIrSOc2IYSYIptmo7qmCj2p43a70DRtuoskhBBiEuQBFkIIIYQQIitIUwchhBBCCJEVpKmDEEJMkWEYDPQPYmGhqiqFhQWoqtQjCCHE9U6CrxBCTJHfH+CxHz5BMpnE5/PyjW99BV+Ob7qLJYQQ4iKkikIIIabKStX6pv6Z8jgLIYR4j5DgK4QQUzYq6so4vkII8Z4hwVcIIaZIaniFEOK9SYKvEEIIIYTICtK5TQghpkhVVXJyfehJHa/Xi6JKYwchhHgvkAdYCCGEEEKIrCBNHYQQQgghRFaQ4CuEEEIIIbKCBF8hhBBCCJEVJPgKIYQQQois8P8DYaTtdTmbB70AAAAASUVORK5CYII=)
图 7-3 线性分配器回收内存
因为线性分配器具有上述特性,所以需要与合适的垃圾回收算法配合使用,例如:标记压缩(Mark-Compact)、复制回收(Copying GC)和分代回收(Generational GC)等算法,它们可以通过拷贝的方式整理存活对象的碎片,将空闲内存定期合并,这样就能利用线性分配器的效率提升内存分配器的性能了。
因为线性分配器需要与具有拷贝特性的垃圾回收算法配合,所以 C 和 C++ 等需要直接对外暴露指针的语言就无法使用该策略,我们会在下一节详细介绍常见垃圾回收算法的设计原理。
空闲链表分配器
空闲链表分配器(Free-List Allocator)可以重用已经被释放的内存,它在内部会维护一个类似链表的数据结构。当用户程序申请内存时,空闲链表分配器会依次遍历空闲的内存块,找到足够大的内存,然后申请新的资源并修改链表:
![](data:image/png;base64,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)
图 7-4 空闲链表分配器
因为不同的内存块通过指针构成了链表,所以使用这种方式的分配器可以重新利用回收的资源,但是因为分配内存时需要遍历链表,所以它的时间复杂度是 O(n)。空闲链表分配器可以选择不同的策略在链表中的内存块中进行选择,最常见的是以下四种:
1.首次适应(First-Fit)— 从链表头开始遍历,选择第一个大小大于申请内存的内存块;
2.循环首次适应(Next-Fit)— 从上次遍历的结束位置开始遍历,选择第一个大小大于申请内存的内存块;
3.最优适应(Best-Fit)— 从链表头遍历整个链表,选择最合适的内存块;
4.隔离适应(Segregated-Fit)— 将内存分割成多个链表,每个链表中的内存块大小相同,申请内存时先找到满足条件的链表,再从链表中选择合适的内存块;
上述四种策略的前三种就不过多介绍了,Go 语言使用的内存分配策略与第四种策略有些相似,我们通过下图了解该策略的原理:
![](data:image/png;base64,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RuFYRERERKRG4VhEREREpEZLuU0Bo4uzjy7aPvpPRKaX0QX8Rx/0MPpgkIkc2W6MPiBG69qKTD+jDwE58uEwWsZvchSOG2z04uZ5Htu37WT9Cy+ze/ceyqVyo4smIu+zWDxGd3cX53/gPFactQzHcY75+GjP89hWLvCal+dg4FPVA4JFpp04BrMsh3Niaea5KRzH0VPyJklPyGug0WBcqVR45qnneOrXz6rHWEQwDIOzV6/kln9xI67rjgnIo8G4XKnwq/xhtoQVRWIRwQQ+YCf5QKqVeDyugDwJGnPcQFEU4XkeBw4c5Lm1LygYiwgw0jZseu0Ntm7ZRrVaHTNcIooiqtUqO/JDvKlgLCI1IbDBL9GXG8bzPA2zmgSF4wYKw5ByucyTTzxNpVxpdHFEZAoJgoDn171IuVwe88F5tN14xSsQNLB8IjL1VIl4vpob127IiVE4bqCRIRVl3tq1t9FFEZEpqHf/AUqlIkEQ1CfgBUFAqVSkT623iExgvwWVisLxZKh5baAgCKhUqlQq1UYXRUSmIM/zqVSqBMHbfcSj7YavoYQiMgHPYFy7ISdG4biBoigi8P1GF0NEpjDf98cNq/DVbojIMQS+rzHHk6Bw3GChKq+IHEM0wa3RibaJiIxStpgcheMG0qc6ETke71ytQkTk3aiteO8UjkVEREREahSORURERERqFI5FRERERGoUjkVEREREahSORURERERqFI5FRERERGoUjkVEREREahSORURERERqFI5FRERERGoUjkVEREREahSORURERERqFI5FRERERGoUjkVEREREahSORURERERqFI5FRERERGoUjkVEREREahSORSbBNMf/Cbmuy7JlS2jKNB3X999x963cductEx5LRERE3l92owsgcjrqnj2LK666jObmJgb6B/jFY0/Qf3gAgI6Z7Xz4Y7/Pt77xMK9u/M0xj2NZFsuWLyUMQ35qmYRheNLLevbqlbS0NPP0k2tP+rFF5OSImyYfbJ6JaRhjtlfCkMeGD1I5BW2DiExM4VjkBGWzrTzwsfvwPZ+enl4WLl7Ag4sW8NnPfIGhoeETOpbneXzza98liiI8zz8l5T1n9SoymSaFY5EpzMJgQTxFOQo57Ffr2wMjwjjG94nIyadwLHKC7rn3DhIJl//5N3/D8NAw3bNn8alPP8g111/F97/7o/p+YRAy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IiIikxJFEU8/9RzlclnheBIUjhsoDEMqlTKD/QONLoqIiIicAQb7B6hUFI4nQ+G4gUaGVXgEgSqwiIiITF4QjGQLheP3TuG4gaIoIgyCRhdDREREziChVr2aFIXjBoqiCFVdEREROZki9DCxyVA4FhERERGpUTgWEREREalROBYRERERqVE4FhERERGpUTgWEREREalROBYRERERqVE4FhERERGpUTgWEREREalROBYRERERqVE4FhERERGpUTgWEREREalROBYRERERqVE4FhERERGpUTgWEREREalROBYRERERqVE4FhERERGpUTgWEXkfGYaBYRjHva9t28e9v4iITJ7CsYjIKZBOp0mn0+O2X3Dhb/HxP/wwtm2/6zEuu2INf/rn/4Zrrr/qVBRRREQm8O6ts4iIHLf29jZuu+sWFi1aAMCuHbt5+LuP0H94AIBstpX/xnO8AAAHWklEQVQFC+djmu/eN1EoFCjki+SH86esvJ/8Vx/n+ede5OWXXjll5xAROZ0oHIuInCSxWIz7H7iXpkyGLz30dSzT5Hfvu4dPffpB/uov/xrP807oeBteeoVXN/6GIAhOUYmhY2YHsXjslB1fROR0o3AsInKSdHZ10NbWxi8e+xVbN78JwKM//Bm333Uri5cu4o1NmwGIooh58+dw0cUXkEwl2b+/l18+9gTlUhkn5nDv79495rjr12+of++orlmdXH7FGlqzLZRKJV59ZRMbX361/rrt2FxwwXksWbaYdDrF0NAwG19+hdc3bcF1XW6/8xYs2yIej3HhRRewZMliALZt285zz75wKt8mEZEpTWOORUROkq7uLkzLZMf2XfVt+/buJwxD2tuy9W2GYXD3h+6gUCjieT5rLr2ISy+7ZOTFCKrVKtVqFYhYsXIZbUd8L0Bn10w+9ekHmT23m9279+A4Me665zZWn3c2AKZpcuON13Lr7Tfjui47tu8ilUqy+rxzauePiKKoPtHPD4L6OQP/1PVSi4icDtRzLCJykrS3tQFQKpbq26rVkaEUmeamMft+7u8fov9wP7F4jL/4r3/GBR84j8d/8QSe5/Htb34PGBmfvGLl8nHnueLKSymVSjz0ha8wODCEbVv84R99jPN+azWvbHiNuXNnc8llF/HsM+v4+U9/SRAEmKZZnwRYKlX49je/R0trC2etXM7L6zewbu2Lp+Q9ERE53Sgci4icJIMDgwDE3Xh9m+OMNLP5XGHMvvncyCS7aqXK7t17mDt3NqZpEobhu56nrS2L67r8wSc+QhSNbEunU0QHDmIYBrNmzwIMXli3vj5eOQzDWm+0iIgci8KxiMhJ0rO/lyiKmDOnm3179wOQbc9imiaDQ0MTfo9hGLjxOIV84biCMUC5UmFwYIgvP/R1fN+vb/d9nyiKKJdKGAY0ZzIc6jt81OMEte914/Gj7iMiMt1ozLGIyEnS03OA4aFhLr38Erpnz2LO3NnccNO1eJ7Ptq07xux74UW/hWVZLD9rGTM7O9j0jgl3x7Jt63aaW5pZftZSKtUqg4NDtLQ0Y5gjY4jffHM7xWKRe+69k3nz5470JnePTOA7Uj5foFyusOqcVTjOyMNG0k3j12YWEZlO1HMsInKSlEolfvC9H3PrbTfzqU8/CMDhw/186R+/SqHw9rCKfD7PqnNWcv1N12JZFvv39fDMU2uP+zxrn32eGTPbuea6q7j+xmuolCtEwE8f/TkbX36V3HCeb339e9x6+008+MmP4Ps+pmmy+fWtY44TRRHPr3uRyy6/hP/0F39KGIbs27OfL37+yyfl/RAROR0ZA0O5qNGFmK4KhQK9vb089PmvEUX6NYicKUzTJJNpwjAMhoaGxwyXME0TwzAIw5CW1hYMAwYHhiYcUrFg4Tz+4BMf4bvffoQNL20c97plWXR0tOP5HgP9Q+PWQzZNk1QqSbYtS8/+XjzPG9fWGIaB4zh0d88il8sxMDB4StdVFpFTyzAMPvrgfXR2dpJKpRpdnNOSeo5FRE6yMAwZHJx4jPGRIXigf2Dc69lsK3PmzSY3nOOKqy+nWvXYtnX7hMcKgoCengPHLEculyeXO/oT9qIoolqtsnPnrqPuIyIynSgci4hMIeeedzYXXnwBtuNQqVR44pdPksvlGl0sEZFpQ+FYRGQK+fUTz7DuuRcxLQvf96mUK40ukojItKJwLCIyhYRhSPGIh4iIiMj7S0u5iYiIiIjUKByLiIiIiNQoHIuIiIiI1Cgci4iIiIjUKByLiIiIiNQoHIuIiIiI1Cgci4iIiIjUKByLiIiIiNQoHIuIiIiI1Cgci4iIiIjUKByLiIiIiNQoHIuIiIiI1Cgci4iIiIjUKByLiIiIiNQoHIuIiIiI1Cgci4iIiIjUKBw3kGEYGIATsxtdFBERETkDODEbg5GMIe+NwnEDGYaBaVnMmNHW6KKIiIjIGWDGjDZMy1I4ngSF4wYyTRPHcVh+1hJsR73HIiIi8t7Zjs3ys5bgOA6mqYj3XumdayDTNInH47S3tzFvfrc+5YmIiMh7YhgG8+Z3097eRjweVzieBHVXNpBpmiQSCVqzWVasXErcddizu4dCoUQYhI0unoiIiExxpmWSSiWYM6+LhYsW0JrNkkgkFI4nQeG4gUzTJBaL0dLcTBAEOI5DR0c7hWIRz/OIoqjRRRQREZEpyjAMHMchlUzSms3S3j6DluZmYrGYwvEkGANDOSWwBoqiCN/3KZfLFItF8vkcpVIZX+FYREREjsEwDGzHIZFwSaebSCaTuK6LbdsaqjkJCsdTQBRFBEFAEAR4nofv+4ShhlWIiIjIsZmmiW3bOI6DZVlYWqli0jSsYgowDAPbtrEsC8dx1GMsIiIix80wjPo/mTyF4ylEFVtERESksTRaW0RERESkRuFYRERERKRG4VhEREREpEbhWERERESkRuFYRERERKRG4VhEREREpEbhWERERESkRuFYRERERKTm/wO9Ew8DK8O+PwAAAABJRU5ErkJggg==)
图 7-5 隔离适应策略
如上图所示,该策略会将内存分割成由 4、8、16、32 字节的内存块组成的链表,当我们向内存分配器申请 8 字节的内存时,它会在上图中找到满足条件的空闲内存块并返回。隔离适应的分配策略减少了需要遍历的内存块数量,提高了内存分配的效率。
分级分配
线程缓存分配(Thread-Caching Malloc,TCMalloc)是用于分配内存的机制,它比 glibc 中的 malloc 还要快很多2。Go 语言的内存分配器就借鉴了 TCMalloc 的设计实现高速的内存分配,它的核心理念是使用多级缓存将对象根据大小分类,并按照类别实施不同的分配策略。
对象大小
Go 语言的内存分配器会根据申请分配的内存大小选择不同的处理逻辑,运行时根据对象的大小将对象分成微对象、小对象和大对象三种:
![](data:image/png;base64,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)
表 7-1 对象的类别和大小
因为程序中的绝大多数对象的大小都在 32KB 以下,而申请的内存大小影响 Go 语言运行时分配内存的过程和开销,所以分别处理大对象和小对象有利于提高内存分配器的性能。
多级缓存
内存分配器不仅会区别对待大小不同的对象,还会将内存分成不同的级别分别管理,TCMalloc 和 Go 运行时分配器都会引入线程缓存(Thread Cache)、中心缓存(Central Cache)和页堆(Page Heap)三个组件分级管理内存:
![](data:image/png;base64,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)
图 7-6 多级缓存内存分配
线程缓存属于每一个独立的线程,它能够满足线程上绝大多数的内存分配需求,因为不涉及多线程,所以也不需要使用互斥锁来保护内存,这能够减少锁竞争带来的性能损耗。当线程缓存不能满足需求时,运行时会使用中心缓存作为补充解决小对象的内存分配,在遇到 32KB 以上的对象时,内存分配器会选择页堆直接分配大内存。
这种多层级的内存分配设计与计算机操作系统中的多级缓存有些类似,因为多数的对象都是小对象,我们可以通过线程缓存和中心缓存提供足够的内存空间,发现资源不足时从上一级组件中获取更多的内存资源。
虚拟内存布局
这里会介绍 Go 语言堆区内存地址空间的设计以及演进过程,在 Go 语言 1.10 以前的版本,堆区的内存空间都是连续的;但是在 1.11 版本,Go 团队使用稀疏的堆内存空间替代了连续的内存,解决了连续内存带来的限制以及在特殊场景下可能出现的问题。
线性内存
Go 语言程序的 1.10 版本在启动时会初始化整片虚拟内存区域,如下所示的三个区域 spans、bitmap 和 arena 分别预留了 512MB、16GB 以及 512GB 的内存空间,这些内存并不是真正存在的物理内存,而是虚拟内存:
![](data:image/png;base64,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)
图 7-7 堆区的线性内存
.spans 区域存储了指向内存管理单元 runtime.mspan 的指针,每个内存单元会管理几页的内存空间,每页大小为 8KB;
.bitmap 用于标识 arena 区域中的那些地址保存了对象,位图中的每个字节都会表示堆区中的 32 字节是否空闲;
.arena 区域是真正的堆区,运行时会将 8KB 看做一页,这些内存页中存储了所有在堆上初始化的对象;
对于任意一个地址,我们都可以根据 arena 的基地址计算该地址所在的页数并通过 spans 数组获得管理该片内存的管理单元 runtime.mspan,spans 数组中多个连续的位置可能对应同一个 runtime.mspan 结构。
Go 语言在垃圾回收时会根据指针的地址判断对象是否在堆中,并通过上一段中介绍的过程找到管理该对象的 runtime.mspan。这些都建立在堆区的内存是连续的这一假设上。这种设计虽然简单并且方便,但是在 C 和 Go 混合使用时会导致程序崩溃:
1.分配的内存地址会发生冲突,导致堆的初始化和扩容失败3;
2.没有被预留的大块内存可能会被分配给 C 语言的二进制,导致扩容后的堆不连续4;
线性的堆内存需要预留大块的内存空间,但是申请大块的内存空间而不使用是不切实际的,不预留内存空间却会在特殊场景下造成程序崩溃。虽然连续内存的实现比较简单,但是这些问题也没有办法忽略。
稀疏内存
稀疏内存是 Go 语言在 1.11 中提出的方案,使用稀疏的内存布局不仅能移除堆大小的上限5,还能解决 C 和 Go 混合使用时的地址空间冲突问题6。不过因为基于稀疏内存的内存管理失去了内存的连续性这一假设,这也使内存管理变得更加复杂:
![](data:image/png;base64,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)
图 7-8 二维稀疏内存
如上图所示,运行时使用二维的 runtime.heapArena 数组管理所有的内存,每个单元都会管理 64MB 的内存空间:
type heapArena struct {
bitmap [heapArenaBitmapBytes]byte
spans [pagesPerArena]*mspan
pageInUse [pagesPerArena / 8]uint8
pageMarks [pagesPerArena / 8]uint8
pageSpecials [pagesPerArena / 8]uint8
checkmarks *checkmarksMap
zeroedBase uintptr
}
该结构体中的 bitmap 和 spans 与线性内存中的 bitmap 和 spans 区域一一对应,zeroedBase 字段指向了该结构体管理的内存的基地址。上述设计将原有的连续大内存切分成稀疏的小内存,而用于管理这些内存的元信息也被切成了小块。
不同平台和架构的二维数组大小可能完全不同,如果我们的 Go 语言服务在 Linux 的 x86-64 架构上运行,二维数组的一维大小会是 1,而二维大小是 4,194,304,因为每一个指针占用 8 字节的内存空间,所以元信息的总大小为 32MB。由于每个 runtime.heapArena 都会管理 64MB 的内存,整个堆区最多可以管理 256TB 的内存,这比之前的 512GB 多好几个数量级。
Go 语言团队在 1.11 版本中通过以下几个提交将线性内存变成稀疏内存,移除了 512GB 的内存上限以及堆区内存连续性的假设:
runtime: use sparse mappings for the heap
runtime: fix various contiguous bitmap assumptions
runtime: make the heap bitmap sparse
runtime: abstract remaining mheap.spans access
runtime: make span map sparse
runtime: eliminate most uses of mheap_.arena_*
runtime: remove non-reserved heap logic
runtime: move comment about address space sizes to malloc.go
由于内存的管理变得更加复杂,上述改动对垃圾回收稍有影响,大约会增加 1% 的垃圾回收开销,不过这也是我们为了解决已有问题必须付出的成本7。
地址空间
因为所有的内存最终都是要从操作系统中申请的,所以 Go 语言的运行时构建了操作系统的内存管理抽象层,该抽象层将运行时管理的地址空间分成以下四种状态8:
![](data:image/png;base64,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xPgJEzF+wkSr7//Y4MH4atduq+uUlZXhh3178cyzfxUHqFraFyIie5GWlibJm35p1iwxiBYcPnwYQ/7yFyQmLpfUV09IiEfs0qXYt+8HSfrIjBkz8PvvBXhjwQKsX7++Vi76Va0WCQkJWLRoUU0t94R47Ni+HSdOnkLnzp0RFbUQX6hUZl9r/L79+/cXg2dhuzNnzsR332XWapPpfpravHmz2edfmjVL3G+hVxwwX1NeaJfgs8/X1/nmwbSdMYsXsxeeiMySGQwGg7kFJdrrcGv90P1uD3T6MlRW2ecERAaDAaWlpdi18yvs/+knvJ+4Au7u7hbXd3J0gKvc5T62sEbpzdtNcu6I6MEjBMZDA4Za7Lm/qtVi+fLlmDN3Ljr9t7RuWloafv+9AMEjg7Hvh32YHTnb4naMe+4XLXpHEgybBuOmhLKQ3t7ejZYPnpuTA9UXqlo3MUREDan05m14eZqPK+0uYK+uvoPbOj3MNqqJ3bhxAwten4eysjLEvhsPH59HLK4rA/CQqxwODvd/mAADdiIiIqLmpVkF7EBN0F5eUYGqqmq7DNytkQFwdHRAS2fnJgnWAQbsRERERM2NtYDd7nLYAcDBoUWTpJIQEREREdmbZlfWkYiIiIjoz4QBOxERERGRHWPATkRERERkxxiwExERERHZMQbsRERERER2jAE7EREREZEdY8BORERERGTHGLATEREREdkxBuxERERERHaMATsRERERkR1ztLaw9Obt+9UOamA8d0REREQPBpnBYDA0dSOIiIiIiMg8psQQEREREdkxBuxERERERHaMATsRERERkR1jwE5EREREZMcYsBMRERER2TEG7EREREREdowBOxERERGRHfv/49aMEf4LjmsAAAAASUVORK5CYII=)
表 7-2 地址空间的状态
每个不同的操作系统都会包含一组用于管理内存的特定方法,这些方法可以让内存地址空间在不同的状态之间转换,我们可以通过下图了解不同状态之间的转换过程:
![](data:image/png;base64,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)
图 7-9 地址空间的状态转换
运行时中包含多个操作系统实现的状态转换方法,所有的实现都包含在以 mem_ 开头的文件中,本节将介绍 Linux 操作系统对上图中方法的实现:
runtime.sysAlloc 会从操作系统中获取一大块可用的内存空间,可能为几百 KB 或者几 MB;
runtime.sysFree 会在程序发生内存不足(Out-of Memory,OOM)时调用并无条件地返回内存;
runtime.sysReserve 会保留操作系统中的一片内存区域,访问这片内存会触发异常;
runtime.sysMap 保证内存区域可以快速转换至就绪状态;
runtime.sysUsed 通知操作系统应用程序需要使用该内存区域,保证内存区域可以安全访问;
runtime.sysUnused 通知操作系统虚拟内存对应的物理内存已经不再需要,可以重用物理内存;
runtime.sysFault 将内存区域转换成保留状态,主要用于运行时的调试;
运行时使用 Linux 提供的 mmap、munmap 和 madvise 等系统调用实现了操作系统的内存管理抽象层,抹平了不同操作系统的差异,为运行时提供了更加方便的接口,除了 Linux 之外,运行时还实现了 BSD、Darwin、Plan9 以及 Windows 等平台上抽象层。
7.1.2 内存管理组件
Go 语言的内存分配器包含内存管理单元、线程缓存、中心缓存和页堆几个重要组件,本节将介绍这几种最重要组件对应的数据结构 runtime.mspan、runtime.mcache、runtime.mcentral 和 runtime.mheap,我们会详细介绍它们在内存分配器中的作用以及实现。
![](data:image/png;base64,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)
图 7-10 Go 程序的内存布局
所有的 Go 语言程序都会在启动时初始化如上图所示的内存布局,每一个处理器都会分配一个线程缓存 runtime.mcache 用于处理微对象和小对象的分配,它们会持有内存管理单元 runtime.mspan。
每个类型的内存管理单元都会管理特定大小的对象,当内存管理单元中不存在空闲对象时,它们会从 runtime.mheap 持有的 134 个中心缓存 runtime.mcentral 中获取新的内存单元,中心缓存属于全局的堆结构体 runtime.mheap,它会从操作系统中申请内存。
在 amd64 的 Linux 操作系统上,runtime.mheap 会持有 4,194,304 runtime.heapArena,每个 runtime.heapArena 都会管理 64MB 的内存,单个 Go 语言程序的内存上限也就是 256TB。
内存管理单元
runtime.mspan 是 Go 语言内存管理的基本单元,该结构体中包含 next 和 prev 两个字段,它们分别指向了前一个和后一个 runtime.mspan:
type mspan struct {
next *mspan
prev *mspan
...
}
串联后的上述结构体会构成如下双向链表,运行时会使用 runtime.mSpanList 存储双向链表的头结点和尾节点并在线程缓存以及中心缓存中使用。
![](data:image/png;base64,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jMSJnC0el8O//2KUvS0uHCd7VpSh0/0N+eL1CVKZ7N/Hidx4YZJls9N09Jp0DxhMqnSoKbeHFcKQHUUeynyDMi954HE7/Pu7s5m3LIPG2pGZ/8LKBMk0I/J7vJXLUyyZlaGj16Sr36CuIpv5og+N/M5sPJb5yVXKvJw+FcOSF2kLSosczp914hGrptpTHwVsGFBbblNbfvINn8edPYJfJF8yVnae+5KZJ95Ff7qZrym3qTll5lHmJa8yFhQHHRaf4CBo4LTPcFJdZo8opD/M7VLm5ePRnGE55wxOfFCcyERkGCc+QEhkIjJy/xEZ+zQyLOfcV26Oo2O2pJDcfX0CS3ttpYDcdW0Cnd5cxgsVw3LOzW7UbiwpLDMblHkpLNN1sQsZRzRNQkREREQKlophERERESlYKoZFREREpGCpGBYRERGRgqViWEREREQKlophERERESlYKoZFREREpGCpGBYRERGRgqViWEREREQKlophERERESlYKoZFREREpGCpGBYRERGRgqViWEREREQKlophERERESlY7nx3QEb6jz8pyncXZAKYe56HCy7Ody9OjzIvZ8PMuV4uujTfvTg9yrycDdNmernkynz3YvxTMTwG9UWMfHdBJoBkOt89OH3KvJwNyrwUmkQq3z2YGDRNQkREREQKlophERERESlYKoZFREREpGCpGBYRERGRgqViWEREREQKlophERERESlYKoZFREREpGCpGBYRERGRgqViWEREREQKlophERERESlYKoZFREREpGCpGBYRERGRgqViWEREREQKlophERERESlYKoZFREREpGCpGBYRERGRgqViWEREREQKlophERERESlYKoZFREREpGCpGBYRERGRgqViWEREREQKlophERERESlYKoZFREREpGCpGBYRERGRgqViWEREREQKlophGTMMw+DiFcu55dYbCQQCJ2x33sL53LFmNeXlZSdsM23aFO5Ys5pJk+o+ia6KnBWGYbD8omXcevtNhELBE7abv2Aud6xZTWVlxQnbTJnSzB1rVjN5cv0n0VWRs2bZBUu4fc0tFBUXnbDNnLmzuGPNaqqqK0/Ypqm5kTvWrKahcfIn0U0pIO58d0BkSFNzAzffeiOGYdDX18/rr741ok1NbTWf/fwaDMPANE1+9/hTI9oUlxRx731fxOVyMam+jvt/9FOsjHUu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)
图 7-11 内存管理单元与双向链表
因为相邻的管理单元会互相引用,所以我们可以从任意一个结构体访问双向链表中的其他节点。
页和内存
每个 runtime.mspan 都管理 npages 个大小为 8KB 的页,这里的页不是操作系统中的内存页,它们是操作系统内存页的整数倍,该结构体会使用下面这些字段来管理内存页的分配和回收:
type mspan struct {
startAddr uintptr // 起始地址
npages uintptr // 页数
freeindex uintptr
allocBits * gcBits
gcmarkBits * gcBits
allocCache uint64
...
}
startAddr 和 npages — 确定该结构体管理的多个页所在的内存,每个页的大小都是 8KB;
freeindex — 扫描页中空闲对象的初始索引;
allocBits 和 gcmarkBits — 分别用于标记内存的占用和回收情况;
allocCache — allocBits 的补码,可以用于快速查找内存中未被使用的内存;
runtime.mspan 会以两种不同的视角看待管理的内存,当结构体管理的内存不足时,运行时会以页为单位向堆申请内存:
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAtgAAAFYCAYAAABpi4tAAAAgAElEQVR4nOzdd5Qc533m+29VdZ7pyTkiZyKSAkFSDCLFnEVKpAIlWbJkr621tev13vUN3j3ePdba11fOQZYlW5ZkSyLFJJKiSDCCCETOGQMMJufUubrq/jGDBoYzQwLDBnoAPp9zeIjpfrv6VzXTM0+//au3jP7BYRcREREREckKM9cFiIiIiIhcSRSwRURERESySAFbRERERCSLFLBFRERERLJIAVtEREREJIsUsEVEREREskgBW0REREQkixSwRURERESySAFbRERERCSLFLBFRERERLJIAVtEREREJIsUsEVEREREssiT6wJE5KOnq6ubVDKFZVlUVVdmbo/HE/T29AJQVl6G3+8b97jBwSFON7cwMhyhYVYdVVVVmKYxbkxfbz+xWCzztWVZFBYVEgwG3remM48zDYPq2uoJ99t2ms6OTgBKy0oJBPwTHltQECZcED7PozBRZCTC0aPHwYWFi+cTDAanva0zurt6SCaTma89Hg8FhQUfeDyi0Rj9ff1gGFRXV2Ka7z8fM9A/SPOp0xgGzJk3h7y80Lj7E4kEPd29Uz4+EAxSWlo87jbXdeno6KSttQPLMpk1u5GiosL3rUNEZCZQwBaRS+7ff/wkHe2dBENB/tN//m3y8vMA2PjOZl791esA/PpvfJnZsxsBSCaTvLb+LTa9s4VUKpXZTlFRIXfdczuLlyzE4xn9dfbyL19l7579E56zrKyUddev5eprVuP1TvzV9y///CO6u3oA+N3//FtUVJSPu394eJi/+avvAHDzLTdw+523Ze775UuvsG/vAW795M3cetvN0zomPd09fO+7/8rg4BDgUl5exle//mXyx47NdD3506c5fbp1wu1lZaVc//Fr+djaqzEMY8L9Tz35LAf3HwLgs5//NMuuWjLp9js7unj+uZc4cbwpc5tpGqxavYK7770j8yahrbWdf/yHf56yzoWLFvDFL38283VvTx8v/uJlDh06guu6mdvnzJ3NnXfdRm1dzaR1i4jMBGoREZGcScQT9PX1A6OzleeGtHO9+cYG3npjA7Zt09hYz/XXr6WsrJTBwSF+8m9PEYlEJzymoaGOa9auYcWqqygpLaa3t4/nn32R7dt2Thjb3tZBd1cPhYWjs6MHDxx+37q3bNk+LvRl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)
图 7-12 内存管理单元与页
当用户程序或者线程向 runtime.mspan 申请内存时,它会使用 allocCache 字段以对象为单位在管理的内存中快速查找待分配的空间:
![](data:image/png;base64,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)
图 7-13 内存管理单元与对象
如果我们能在内存中找到空闲的内存单元会直接返回,当内存中不包含空闲的内存时,上一级的组件 runtime.mcache 会为调用 runtime.mcache.refill 更新内存管理单元以满足为更多对象分配内存的需求。
状态
运行时会使用 runtime.mSpanStateBox 存储内存管理单元的状态 runtime.mSpanState:
type mspan struct {
...
state mSpanStateBox
...
}
该状态可能处于 mSpanDead、mSpanInUse、mSpanManual 和 mSpanFree 四种情况。当 runtime.mspan 在空闲堆中,它会处于 mSpanFree 状态;当 runtime.mspan 已经被分配时,它会处于 mSpanInUse、mSpanManual 状态,运行时会遵循下面的规则转换该状态:
在垃圾回收的任意阶段,可能从 mSpanFree 转换到 mSpanInUse 和 mSpanManual;
在垃圾回收的清除阶段,可能从 mSpanInUse 和 mSpanManual 转换到 mSpanFree;
在垃圾回收的标记阶段,不能从 mSpanInUse 和 mSpanManual 转换到 mSpanFree;
设置 runtime.mspan 状态的操作必须是原子性的以避免垃圾回收造成的线程竞争问题。
跨度类
runtime.spanClass 是 runtime.mspan 的跨度类,它决定了内存管理单元中存储的对象大小和个数:
type mspan struct {
...
spanclass spanClass
...
}
Go 语言的内存管理模块中一共包含 67 种跨度类,每一个跨度类都会存储特定大小的对象并且包含特定数量的页数以及对象,所有的数据都会被预选计算好并存储在 runtime.class_to_size 和 runtime.class_to_allocnpages 等变量中:
![](data:image/png;base64,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)
表 7-3 跨度类的数据
上表展示了对象大小从 8B 到 32KB,总共 67 种跨度类的大小、存储的对象数以及浪费的内存空间,以表中的第四个跨度类为例,跨度类为 5 的 runtime.mspan 中对象的大小上限为 48 字节、管理 1 个页、最多可以存储 170 个对象。因为内存需要按照页进行管理,所以在尾部会浪费 32 字节的内存,当页中存储的对象都是 33 字节时,最多会浪费 31.52% 的资源:
![](data:image/png;base64,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)
图 7-14 跨度类浪费的内存
除了上述 67 个跨度类之外,运行时中还包含 ID 为 0 的特殊跨度类,它能够管理大于 32KB 的特殊对象,我们会在后面详细介绍大对象的分配过程,在这里就不展开说明了。
跨度类中除了存储类别的 ID 之外,它还会存储一个 noscan 标记位,该标记位表示对象是否包含指针,垃圾回收会对包含指针的 runtime.mspan 结构体进行扫描。我们可以通过下面的几个函数和方法了解 ID 和标记位的底层存储方式:
func makeSpanClass(sizeclass uint8, noscan bool) spanClass {
return spanClass(sizeclass << 1) | spanClass(bool2int(noscan))
}
func(sc spanClass) sizeclass() int8 {
return int8(sc >> 1)
}
func(sc spanClass) noscan() bool {
return sc & 1 != 0
}
runtime.spanClass 是一个 uint8 类型的整数,它的前 7 位存储着跨度类的 ID,最后一位表示是否包含指针,该类型提供的两个方法能够帮我们快速获取对应的字段。
线程缓存
runtime.mcache 是 Go 语言中的线程缓存,它会与线程上的处理器一一绑定,主要用来缓存用户程序申请的微小对象。每一个线程缓存都持有 68 * 2 个 runtime.mspan,这些内存管理单元都存储在结构体的 alloc 字段中:
![](data:image/png;base64,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)
图 7-15 线程缓存与内存管理单元
线程缓存在刚刚被初始化时是不包含 runtime.mspan 的,只有当用户程序申请内存时才会从上一级组件获取新的 runtime.mspan 满足内存分配的需求。
初始化
运行时在初始化处理器时会调用 runtime.allocmcache 初始化线程缓存,该函数会在系统栈中使用 runtime.mheap 中的线程缓存分配器初始化新的 runtime.mcache 结构体:
func allocmcache() * mcache {
var c * mcache
systemstack(func() {
lock( & mheap_.lock)
c = ( * mcache)(mheap_.cachealloc.alloc())
c.flushGen = mheap_.sweepgen
unlock( & mheap_.lock)
})
for i: = range c.alloc {
c.alloc[i] = & emptymspan
}
c.nextSample = nextSample()
return c
}
就像我们在上面提到的,初始化后的 runtime.mcache 中的所有 runtime.mspan 都是空的占位符 emptymspan。
替换
runtime.mcache.refill 会为线程缓存获取一个指定跨度类的内存管理单元,被替换的单元不能包含空闲的内存空间,而获取的单元中需要至少包含一个空闲对象用于分配内存:
func(c * mcache) refill(spc spanClass) {
s: = c.alloc[spc]
s = mheap_.central[spc].mcentral.cacheSpan()
c.alloc[spc] = s
}
如上述代码所示,该方法会从中心缓存中申请新的 runtime.mspan 存储到线程缓存中,这也是向线程缓存插入内存管理单元的唯一方法。
微分配器
线程缓存中还包含几个用于分配微对象的字段,下面的这三个字段组成了微对象分配器,专门管理 16 字节以下的对象:
type mcache struct {
tiny uintptr
tinyoffset uintptr
local_tinyallocs uintptr
}
微分配器只会用于分配非指针类型的内存,上述三个字段中 tiny 会指向堆中的一片内存,tinyOffset 是下一个空闲内存所在的偏移量,最后的 local_tinyallocs 会记录内存分配器中分配的对象个数。
中心缓存
runtime.mcentral 是内存分配器的中心缓存,与线程缓存不同,访问中心缓存中的内存管理单元需要使用互斥锁:
type mcentral struct {
spanclass spanClass
partial[2] spanSet
full[2] spanSet
}
每个中心缓存都会管理某个跨度类的内存管理单元,它会同时持有两个 runtime.spanSet,分别存储包含空闲对象和不包含空闲对象的内存管理单元。
内存管理单元
线程缓存会通过中心缓存的 runtime.mcentral.cacheSpan 方法获取新的内存管理单元,该方法的实现比较复杂,我们可以将其分成以下几个部分:
调用 runtime.mcentral.partialSwept 从清理过的、包含空闲空间的 runtime.spanSet 结构中查找可以使用的内存管理单元;
调用 runtime.mcentral.partialUnswept 从未被清理过的、有空闲对象的 runtime.spanSet 结构中查找可以使用的内存管理单元;
调用 runtime.mcentral.fullUnswept 获取未被清理的、不包含空闲空间的 runtime.spanSet 中获取内存管理单元并通过 runtime.mspan.sweep 清理它的内存空间;
调用 runtime.mcentral.grow 从堆中申请新的内存管理单元;
更新内存管理单元的 allocCache 等字段帮助快速分配内存;
首先我们会在中心缓存的空闲集合中查找可用的 runtime.mspan,运行时总是会先从获取清理过的内存管理单元,后检查未清理的内存管理单元:
func(c * mcentral) cacheSpan() * mspan {
sg: = mheap_.sweepgen
spanBudget: = 100
var s * mspan
if s = c.partialSwept(sg).pop();s != nil {
goto havespan
}
for;spanBudget >= 0;spanBudget--{
s = c.partialUnswept(sg).pop()
if s == nil {
break
}
if atomic.Load( & s.sweepgen) == sg - 2 && atomic.Cas( & s.sweepgen, sg - 2, sg - 1) {、
s.sweep(true)
goto havespan
}
}
...
}
当找到需要回收的内存单元时,运行时会触发 runtime.mspan.sweep 进行清理,如果在包含空闲空间的集合中没有找到管理单元,那么运行时尝试会从未清理的集合中获取:
func(c * mcentral) cacheSpan() * mspan {
...
for;
spanBudget >= 0;
spanBudget--{
s = c.fullUnswept(sg).pop()
if s == nil {
break
}
if atomic.Load( & s.sweepgen) == sg - 2 && atomic.Cas( & s.sweepgen, sg - 2, sg - 1) {、
s.sweep(true)、 freeIndex: = s.nextFreeIndex()
if freeIndex != s.nelems {
s.freeindex = freeIndex
goto havespan
}、
c.fullSwept(sg).push(s)
}、
}
...
}
如果 runtime.mcentral 通过上述两个阶段都没有找到可用的单元,它会调用 runtime.mcentral.grow 触发扩容从堆中申请新的内存:
func(c * mcentral) cacheSpan() * mspan {
...
s = c.grow()
if s == nil {
return nil
}
havespan:
freeByteBase: = s.freeindex & ^ (64 - 1)
whichByte: = freeByteBase / 8
s.refillAllocCache(whichByte)
s.allocCache >>= s.freeindex % 64
return s
}
无论通过哪种方法获取到了内存单元,该方法的最后都会更新内存单元的 allocBits 和 allocCache 等字段,让运行时在分配内存时能够快速找到空闲的对象。
扩容
中心缓存的扩容方法 runtime.mcentral.grow 会根据预先计算的 class_to_allocnpages 和 class_to_size 获取待分配的页数以及跨度类并调用 runtime.mheap.alloc 获取新的 runtime.mspan 结构:
func(c * mcentral) grow() * mspan {
npages: = uintptr(class_to_allocnpages[c.spanclass.sizeclass()])
size: = uintptr(class_to_size[c.spanclass.sizeclass()])
s: = mheap_.alloc(npages, c.spanclass, true)
if s == nil {
return nil
}
n: = (npages << _PageShift) >> s.divShift * uintptr(s.divMul) >> s.divShift2
s.limit = s.base() + size * n
heapBitsForAddr(s.base()).initSpan(s)
return s
}
获取了 runtime.mspan 后,我们会在上述方法中初始化 limit 字段并清除该结构在堆上对应的位图。
页堆
runtime.mheap 是内存分配的核心结构体,Go 语言程序会将其作为全局变量存储,而堆上初始化的所有对象都由该结构体统一管理,该结构体中包含两组非常重要的字段,其中一个是全局的中心缓存列表 central,另一个是管理堆区内存区域的 arenas 以及相关字段。
页堆中包含一个长度为 136 的 runtime.mcentral 数组,其中 68 个为跨度类需要 scan 的中心缓存,另外的 68 个是 noscan 的中心缓存:
![](data:image/png;base64,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)
图 7-17 页堆与中心缓存列表
我们在设计原理一节中已经介绍过 Go 语言所有的内存空间都由如下所示的二维矩阵 runtime.heapArena 管理,这个二维矩阵管理的内存可以是不连续的:
![](data:image/png;base64,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)
图 7-18 页堆管理的内存区域
在除了 Windows 以外的 64 位操作系统中,每一个 runtime.heapArena 都会管理 64MB 的内存空间,如下所示的表格展示了不同平台上 Go 语言程序管理的堆区大小以及 runtime.heapArena 占用的内存空间:
![](data:image/png;base64,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)
表 7-3 平台与页堆大小的关系
本节将介绍页堆的初始化、内存分配以及内存管理单元分配的过程,这些过程能够帮助我们理解全局变量页堆与其他组件的关系以及它管理内存的方式。
初始化
堆区的初始化会使用 runtime.mheap.init 方法,我们能看到该方法初始化了非常多的结构体和字段,不过其中初始化的两类变量比较重要:
spanalloc、cachealloc 以及 arenaHintAlloc 等 runtime.fixalloc 类型的空闲链表分配器;
central 切片中 runtime.mcentral 类型的中心缓存;
func(h * mheap) init() {
h.spanalloc.init(unsafe.Sizeof(mspan {}), recordspan, unsafe.Pointer(h), & memstats.mspan_sys)
h.cachealloc.init(unsafe.Sizeof(mcache {}), nil, nil, & memstats.mcache_sys)
h.specialfinalizeralloc.init(unsafe.Sizeof(specialfinalizer {}), nil, nil, & memstats.other_sys)
h.specialprofilealloc.init(unsafe.Sizeof(specialprofile {}), nil, nil, & memstats.other_sys)
h.arenaHintAlloc.init(unsafe.Sizeof(arenaHint {}), nil, nil, & memstats.other_sys)
h.spanalloc.zero = false
for i: = range h.central {
h.central[i].mcentral.init(spanClass(i))
}
h.pages.init( & h.lock, & memstats.gc_sys)
}
堆中初始化的多个空闲链表分配器与设计原理中提到的分配器没有太多区别,当我们调用 runtime.fixalloc.init 初始化分配器时,需要传入待初始化的结构体大小等信息,这会帮助分配器分割待分配的内存,它提供了以下两个用于分配和释放内存的方法:
1. runtime.fixalloc.alloc — 获取下一个空闲的内存空间;
2. runtime.fixalloc.free — 释放指针指向的内存空间;
除了这些空闲链表分配器之外,我们还会在该方法中初始化所有的中心缓存,这些中心缓存会维护全局的内存管理单元,各个线程会通过中心缓存获取新的内存单元。
内存管理单元
runtime.mheap 是内存分配器中的核心组件,运行时会通过它的 runtime.mheap.alloc 方法在系统栈中获取新的 runtime.mspan 单元:
func(h * mheap) alloc(npages uintptr, spanclass spanClass, needzero bool) * mspan {
var s * mspan
systemstack(func() {
if h.sweepdone == 0 {
h.reclaim(npages)
}
s = h.allocSpan(npages, false, spanclass, & memstats.heap_inuse)
})
...
return s
}
为了阻止内存的大量占用和堆的增长,我们在分配对应页数的内存前需要先调用 runtime.mheap.reclaim 方法回收一部分内存,随后运行时通过 runtime.mheap.allocSpan 分配新的内存管理单元,我们会将该方法的执行过程拆分成两个部分:
1.从堆上分配新的内存页和内存管理单元 runtime.mspan;
2.初始化内存管理单元并将其加入 runtime.mheap 持有内存单元列表;
首先我们需要在堆上申请 npages 数量的内存页并初始化 runtime.mspan:
func(h * mheap) allocSpan(npages uintptr, typ spanAllocType, spanclass spanClass)(s * mspan) {
gp: = getg()
base,
scav: = uintptr(0),
uintptr(0)
pp: = gp.m.p.ptr()
if pp != nil && npages < pageCachePages / 4 {
c: = & pp.pcache
base,
scav = c.alloc(npages)
if base != 0 {
s = h.tryAllocMSpan()
if s != nil && gcBlackenEnabled == 0 && (manual || spanclass.sizeclass() != 0) {
goto HaveSpan
}
}
}
if base == 0 {
base, scav = h.pages.alloc(npages)
if base == 0 {
h.grow(npages)
base, scav = h.pages.alloc(npages)
if base == 0 {
throw ("grew heap, but no adequate free space found")
}
}
}
if s == nil {
s = h.allocMSpanLocked()
}
...
}
上述方法会通过处理器的页缓存 runtime.pageCache 或者全局的页分配器 runtime.pageAlloc 两种途径从堆中申请内存:
1.如果申请的内存比较小,获取申请内存的处理器并尝试调用 runtime.pageCache.alloc 获取内存区域的基地址和大小;
2.如果申请的内存比较大或者线程的页缓存中内存不足,会通过 runtime.pageAlloc.alloc 在页堆上申请内存;
3.如果发现页堆上的内存不足,会尝试通过 runtime.mheap.grow 扩容并重新调用 runtime.pageAlloc.alloc 申请内存;
3.1如果申请到内存,意味着扩容成功;
3.2如果没有申请到内存,意味着扩容失败,宿主机可能不存在空闲内存,运行时会直接中止当前程序;
无论通过哪种方式获得内存页,我们都会在该函数中分配新的 runtime.mspan 结构体;该方法的剩余部分会通过页数、内存空间以及跨度类等参数初始化它的多个字段:
func(h * mheap) alloc(npages uintptr, spanclass spanClass, needzero bool) * mspan {
...
HaveSpan:
s.init(base, npages)
...
s.freeindex = 0
s.allocCache = ^ uint64(0)
s.gcmarkBits = newMarkBits(s.nelems)
s.allocBits = newAllocBits(s.nelems)
h.setSpans(s.base(), npages, s)
return s
}
在上述代码中,我们通过调用 runtime.mspan.init 设置参数初始化刚刚分配的 runtime.mspan 结构并通过 runtime.mheaps.setSpans 建立页堆与内存单元的联系。
扩容
runtime.mheap.grow 会向操作系统申请更多的内存空间,传入的页数经过对齐可以得到期望的内存大小,我们可以将该方法的执行过程分成以下几个部分:
1.通过传入的页数获取期望分配的内存空间大小以及内存的基地址;
2.如果 arena 区域没有足够的空间,调用 runtime.mheap.sysAlloc 从操作系统中申请更多的内存;
3.扩容 runtime.mheap 持有的 arena 区域并更新页分配器的元信息;
4.在某些场景下,调用 runtime.pageAlloc.scavenge 回收不再使用的空闲内存页;
在页堆扩容的过程中,runtime.mheap.sysAlloc 是页堆用来申请虚拟内存的方法,我们会分几部分介绍该方法的实现。首先,该方法会尝试在预保留的区域申请内存:
func(h * mheap) sysAlloc(n uintptr)(v unsafe.Pointer, size uintptr) {
n = alignUp(n, heapArenaBytes)
v = h.arena.alloc(n, heapArenaBytes, & memstats.heap_sys)
if v != nil {
size = n
goto mapped
}
...
}
上述代码会调用线性分配器的 runtime.linearAlloc.alloc 在预先保留的内存中申请一块可以使用的空间。如果没有可用的空间,我们会根据页堆的 arenaHints 在目标地址上尝试扩容:
func(h * mheap) sysAlloc(n uintptr)(v unsafe.Pointer, size uintptr) {
...
for h.arenaHints != nil {
hint: = h.arenaHints
p: = hint.addr
v = sysReserve(unsafe.Pointer(p), n)
if p == uintptr(v) {
hint.addr = p
size = n
break
}
h.arenaHints = hint.next
h.arenaHintAlloc.free(unsafe.Pointer(hint))
}
...
sysMap(v, size, & memstats.heap_sys)
...
}
runtime.sysReserve 和 runtime.sysMap 是上述代码的核心部分,它们会从操作系统中申请内存并将内存转换至 Prepared 状态。
runtime.mheap.sysAlloc 方法在最后会初始化一个新的 runtime.heapArena 来管理刚刚申请的内存空间,该结构会被加入页堆的二维矩阵中。
7.1.3 内存分配
堆上所有的对象都会通过调用 runtime.newobject 函数分配内存,该函数会调用 runtime.mallocgc 分配指定大小的内存空间,这也是用户程序向堆上申请内存空间的必经函数:
func mallocgc(size uintptr, typ * _type, needzero bool) unsafe.Pointer {
mp: = acquirem()
mp.mallocing = 1
c: = gomcache()
var x unsafe.Pointer
noscan: = typ == nil || typ.ptrdata == 0
if size <= maxSmallSize {
if noscan && size < maxTinySize {
// 微对象分配
} else {
// 小对象分配
}
} else {
// 大对象分配
}
publicationBarrier()
mp.mallocing = 0
releasem(mp)
return x
}
上述代码使用 runtime.gomcache 获取线程缓存并判断申请内存的类型是否为指针。我们从这个代码片段可以看出 runtime.mallocgc 会根据对象的大小执行不同的分配逻辑,在前面的章节也曾经介绍过运行时根据对象大小将它们分成微对象、小对象和大对象,这里会根据大小选择不同的分配逻辑:
![](data:image/png;base64,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)
图 7-19 三种对象
1.微对象 (0, 16B) — 先使用微型分配器,再依次尝试线程缓存、中心缓存和堆分配内存;
2.小对象 [16B, 32KB] — 依次尝试使用线程缓存、中心缓存和堆分配内存;
3.大对象 (32KB, +∞) — 直接在堆上分配内存;
我们会依次介绍运行时分配微对象、小对象和大对象的过程,梳理内存分配的核心执行流程。
微对象
Go 语言运行时将小于 16 字节的对象划分为微对象,它会使用线程缓存上的微分配器提高微对象分配的性能,我们主要使用它来分配较小的字符串以及逃逸的临时变量。微分配器可以将多个较小的内存分配请求合入同一个内存块中,只有当内存块中的所有对象都需要被回收时,整片内存才可能被回收。
微分配器管理的对象不可以是指针类型,管理多个对象的内存块大小 maxTinySize 是可以调整的,在默认情况下,内存块的大小为 16 字节。maxTinySize 的值越大,组合多个对象的可能性就越高,内存浪费也就越严重;maxTinySize 越小,内存浪费就会越少,不过无论如何调整,8 的倍数都是一个很好的选择。
![](data:image/png;base64,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)
图 7-20 微分配器的工作原理
如上图所示,微分配器已经在 16 字节的内存块中分配了 12 字节的对象,如果下一个待分配的对象小于 4 字节,它会直接使用上述内存块的剩余部分,减少内存碎片,不过该内存块只有所有对象都被标记为垃圾时才会回收。
线程缓存 runtime.mcache 中的 tiny 字段指向了 maxTinySize 大小的块,如果当前块中还包含大小合适的空闲内存,运行时会通过基地址和偏移量获取并返回这块内存:
func mallocgc(size uintptr, typ * _type, needzero bool) unsafe.Pointer {
...
if size <= maxSmallSize {
if noscan && size < maxTinySize {
off: = c.tinyoffset
if off + size <= maxTinySize && c.tiny != 0 {
x = unsafe.Pointer(c.tiny + off)
c.tinyoffset = off + size
c.local_tinyallocs++
releasem(mp)
return x
}
...
}
...
}
...
}
当内存块中不包含空闲的内存时,下面的这段代码会先从线程缓存找到跨度类对应的内存管理单元 runtime.mspan,调用 runtime.nextFreeFast 获取空闲的内存;当不存在空闲内存时,我们会调用 runtime.mcache.nextFree 从中心缓存或者页堆中获取可分配的内存块:
func mallocgc(size uintptr, typ * _type, needzero bool) unsafe.Pointer {
...
if size <= maxSmallSize {
if noscan && size < maxTinySize {
...
span: = c.alloc[tinySpanClass]
v: = nextFreeFast(span)
if v == 0 {
v, _, _ = c.nextFree(tinySpanClass)
}
x = unsafe.Pointer(v)
( * [2] uint64)(x)[0] = 0( * [2] uint64)(x)[1] = 0
if size < c.tinyoffset || c.tiny == 0 {
c.tiny = uintptr(x)
c.tinyoffset = size
}
size = maxTinySize
}
...
}
...
return x
}
获取新的空闲内存块之后,上述代码会清空空闲内存中的数据、更新构成微对象分配器的几个字段 tiny 和 tinyoffset 并返回新的空闲内存。
小对象
小对象是指大小为 16 字节到 32,768 字节的对象以及所有小于 16 字节的指针类型的对象,小对象的分配可以被分成以下的三个步骤:
1.确定分配对象的大小以及跨度类 runtime.spanClass;
2.从线程缓存、中心缓存或者堆中获取内存管理单元并从内存管理单元找到空闲的内存空间;
3.调用 runtime.memclrNoHeapPointers 清空空闲内存中的所有数据;
确定待分配的对象大小以及跨度类需要使用预先计算好的 size_to_class8、size_to_class128 以及 class_to_size 字典,这些字典能够帮助我们快速获取对应的值并构建 runtime.spanClass:
func mallocgc(size uintptr, typ * _type, needzero bool) unsafe.Pointer {
...
if size <= maxSmallSize {
...
} else {
var sizeclass uint8
if size <= smallSizeMax - 8 {
sizeclass = size_to_class8[(size + smallSizeDiv - 1) / smallSizeDiv]
} else {
sizeclass = size_to_class128[(size - smallSizeMax + largeSizeDiv - 1) / largeSizeDiv]
}
size = uintptr(class_to_size[sizeclass])
spc: = makeSpanClass(sizeclass, noscan)
span: = c.alloc[spc]
v: = nextFreeFast(span)
if v == 0 {
v, span, _ = c.nextFree(spc)
}
x = unsafe.Pointer(v)
if needzero && span.needzero != 0 {
memclrNoHeapPointers(unsafe.Pointer(v), size)
}
}
} else {
...
}
...
return x
}
在上述代码片段中,我们会重点分析两个方法的实现原理,它们分别是 runtime.nextFreeFast 和 runtime.mcache.nextFree,这两个方法会帮助我们获取空闲的内存空间。runtime.nextFreeFast 会利用内存管理单元中的 allocCache 字段,快速找到该字段为 1 的位数,我们在上面介绍过 1 表示该位对应的内存空间是空闲的:
func nextFreeFast(s * mspan) gclinkptr {
theBit: = sys.Ctz64(s.allocCache)
if theBit < 64 {
result: = s.freeindex + uintptr(theBit)
if result < s.nelems {
freeidx: = result + 1
if freeidx % 64 == 0 && freeidx != s.nelems {
return 0
}
s.allocCache >>= uint(theBit + 1)
s.freeindex = freeidx
s.allocCount++
return gclinkptr(result * s.elemsize + s.base())
}
}
return 0
}
找到了空闲的对象后,我们就可以更新内存管理单元的 allocCache、freeindex 等字段并返回该片内存;如果我们没有找到空闲的内存,运行时会通过 runtime.mcache.nextFree 找到新的内存管理单元:
func(c * mcache) nextFree(spc spanClass)(v gclinkptr, s * mspan, shouldhelpgc bool) {
s = c.alloc[spc]
freeIndex: = s.nextFreeIndex()
if freeIndex == s.nelems {
c.refill(spc)
s = c.alloc[spc]
freeIndex = s.nextFreeIndex()
}
v = gclinkptr(freeIndex * s.elemsize + s.base())
s.allocCount++
return
}
在上述方法中,如果我们在线程缓存中没有找到可用的内存管理单元,会通过前面介绍的 runtime.mcache.refill 使用中心缓存中的内存管理单元替换已经不存在可用对象的结构体,该方法会调用新结构体的 runtime.mspan.nextFreeIndex 获取空闲的内存并返回。
大对象
运行时对于大于 32KB 的大对象会单独处理,我们不会从线程缓存或者中心缓存中获取内存管理单元,而是直接调用 runtime.mcache.allocLarge 分配大片内存:
func mallocgc(size uintptr, typ * _type, needzero bool) unsafe.Pointer {
...
if size <= maxSmallSize {
...
} else {
var s * mspan
span = c.allocLarge(size, needzero, noscan)
span.freeindex = 1
span.allocCount = 1
x = unsafe.Pointer(span.base())
size = span.elemsize
}
publicationBarrier()
mp.mallocing = 0
releasem(mp)
return x
}
runtime.mcache.allocLarge 会计算分配该对象所需要的页数,它按照 8KB 的倍数在堆上申请内存:
func(c * mcache) allocLarge(size uintptr, needzero bool, noscan bool) * mspan {
npages: = size >> _PageShift
if size & _PageMask != 0 {
npages++
}
...
s: = mheap_.alloc(npages, spc, needzero)
mheap_.central[spc].mcentral.fullSwept(mheap_.sweepgen).push(s)
s.limit = s.base() + size
heapBitsForAddr(s.base()).initSpan(s)
return s
}
申请内存时会创建一个跨度类为 0 的 runtime.spanClass 并调用 runtime.mheap.alloc 分配一个管理对应内存的管理单元。
7.1.4 小结
内存分配是 Go 语言运行时内存管理的核心逻辑,运行时的内存分配器使用类似 TCMalloc 的分配策略将对象根据大小分类,并设计多层级的组件提高内存分配器的性能。本节不仅介绍了 Go 语言内存分配器的设计与实现原理,同时也介绍了内存分配器的常见设计,帮助我们理解不同编程语言在设计内存分配器时做出的不同选择。
内存分配器虽然非常重要,但是它只解决了如何分配内存的问题,我们在本节中省略了很多与垃圾回收相关的代码,没有分析运行时垃圾回收的实现原理,在下一节中我们将详细分析 Go 语言垃圾回收的设计与实现原理。