Aisea e 72 KB le fa'asoa muamua C++ (m)?
Fa'amatalaga
Mewayz Team
Editorial Team
O Le Mealilo i tua o Lau Fa'asoa muamua C++
E te tusia se polokalame faigofie C++. Se tasi int fou. Fa paita. E te fa'amumuina stracepo'o lau fa'amatalaga manatua e sili ona e fiafia i ai, ma o lo'o i ai - o lau fa'agasologa na faatoa talosagaina pe tusa ma le 72 KB mai le faiga fa'aoga. E le 4 paita. E le 64 paita. 72 KB atoa. Afai na e sioa i lena numera ma mafaufau pe na pepelo lau meafaigaluega ia te oe, e le o tuulafoaiina oe. Ole uiga uiga ese lea ole tasi ole fesili e masani ona fesiligia e le au atina'e C++ o lo'o eli i totonu o memory internals mo le taimi muamua, ma o le tali e ave ai i tatou i se malaga mata'ina i luga ole laulau o lo'o nofo i le va o lau code ma meafaigaluega moni.
O le a le mea e tupu pe a e Valaau fou
Ina ia malamalama i le fuainumera 72 KB, e tatau ona e su'eina le filifili atoa o le faasoasoaina. Pe a faʻatino e lau C++ codenew int, e faʻaliliu e le tagata faʻapipiʻi lena mea i se valaau i le operator new, lea i luga o le tele o faiga Linux e tuʻuina atu imallocmai le glibc. Ae malloce le fesili tuusao i le fatu mo 4 bytes o le manatua. O le fatu e galue i itulau - e masani lava 4 KB i luga o le x86_64 - ma o le tau o le telefoni feaveaʻi e tele e faʻatatau i se faʻaoga faigofie. O le vala'au i le brk() po'o le mmap() mo fa'asoaso'oga ta'itasi uma o le a fa'agata ai so'o se polokalame e le fa'atauaina.
Nai lo lena, o le glibc's memory allocator - o se faʻatinoga e taʻua o ptmalloc2, o ia lava na tupuga mai le Doug Lea's classicdlmalloc - galue o se tagata ogatotonu. Na te talosagaina poloka tetele o manatuaga mai le fatu i luma, ona vaneina lea i ni vaega laiti pe a manaʻomia e lau polokalama. Ole mafua'aga autu lea o lau fa'asoa muamua 4-byte e fa'aoso ai se talosaga tele atu i le faiga fa'aoga. O le tagata fa'asoa e le'o fa'amaumau. O lo'o fa'ata'atia.
Va'ese'ese le 72 KB: O Fea e Alu ai le Paita
O le fa'asoa muamua i luga e sau mai le tele o vaega ma'oti e tatau ona amatalia le taimi fa'agasolo a'o le'i mafai ona tu'uina atu ia te oe se byte e tasi o manatua fa'aoga. O le malamalama i vaega ta'itasi e fa'amatala ai le mafua'aga e tula'i mai ai le numera.
Muamua, o le glibc's malloc e amatalia le autu tele — o le fa'asologa o tusi tusi muamua e siaki uma ai vaega i le filo autu. O lenei malae e aofia ai metadata mo le fa'aputugā, fa'ailoga lisi-sa'oloto, ma fa'aputu talone mo le tele o fa'asoa. E fa'alautele e le tagata fa'asoa le malologa o le polokalame e ala i le sbrk(), ma o le fa'aopoopoga muamua o lo'o fa'atonutonuina e se parakalafa i totonu e ta'ua o le M_TOP_PAD, lea e fa'aletonu i le 128 KB o padding. Peita'i, o le ulua'i talosaga e toe fetu'una'i mo le fa'aogaina o le itulau ma le tulaga o lo'o i ai le malologa, lea e masani ona i'u ai i se talosaga muamua la'ititi - e masani ona tula'i latalata i le 72 KB fa'atusa i se faiga fa'ato'a amata.
Lua, talu mai le glibc 2.26, e fa'amataina e le tagata fa'asoa se filo-local cache (tcache) i le fa'aoga muamua. O le tcache o lo'o iai talone e 64 (tasi i le vasega la'ititi-vaevaega tele), ta'itasi e mafai ona tu'u i luga i le 7 pusi pu'e. O le tcache_perthread_struct lava ia e fa'aalu pe tusa ma le 1 KB, ae o le gaioiga o le fa'amataina e fa'aoso ai le fa'atulagaina o le malae. Tolu, o le C++ runtime ua uma ona fa'atino vaevaega a'o le'i alu lau main()e o'o lava i le tamo'e - static constructors, iostream buffer initialization mo std::coutma uo, ma le fa'alapotopotoga fa'apitonu'u e saofagā uma i lena tulagavae fa'aputuga muamua.
O le Arena System ma Aisea e Atamai ai le Mu'ai Fa'asoa
O le fa'ai'uga e mua'i tu'ufa'atasia se vaega tele o manatua nai lo le fa'atonuina fa'atasi e le o se fa'alavelave fa'atino. Ose fefa'ataua'iga fa'ainisinia fa'apitoa e maua'a i le tele o tausaga o fa'apolokalame fa'apolokalame. O vala'au uma i le brk()po'o le mmap()e aofia ai le suiga o fa'amatalaga mai le avanoa fa'aoga i le kernel space, suiga ole fa'asologa o fa'ata'ita'iga o mafaufauga fa'anatura, ma fa'afouga o le laulau itulau. I meafaigaluega fa'aonaponei, o le telefoni feavea'i e tasi e tusa ma le 100-200 nanoseconds - e le taua i le tu'ua'ese, fa'alavelave tele.
Manatu i se polokalame e 10,000 fa'asoa laiti i le taimi o le amataga. A aunoa ma le mua'i fa'asoa, o lona uiga e 10,000 telefoni feavea'i, e tusa ma le 1-2 milliseconds o le mama i luga. Fa'atasi ai ma se fa'avasegaga fa'avae, o le fa'asoa muamua e fa'aosoina ai se telefoni fa'aoga e tasi, ma o le 9,999 vaevaega mulimuli ane o lo'o fa'aogaina atoa ile avanoa fa'aoga e ala ile fa'asologa ole numera ma feso'ota'iga-lisi fa'agaoioiga - ta'itasi e ave pe tusa ma le 10-50 nanoseconds. E manino le numera: e malo le fa'asoa muamua i fa'atonuga o le tele.
O le 72 KB o lo'o e va'ai i lau fa'asoa muamua e le'o fa'amaumauina le manatua - o se fa'atinoga fa'afaigaluega. O lo'o fa'ailoa e le tagata fa'asoa fa'apea o lau polokalame o le a vave ona fa'aopoopo nisi fa'asoaga, ma e toetoe lava o fa'ata'ita'iga uma o le lalolagi, e matua'i totogia lena peti. Ole tau ole avanoa ole tuatusi faakomepiuta e matua leai lava ile faiga fa'aonaponei 64-bit.
Virtual Memory vs. Manatu Faaletino: Aisea e Le afaina ai
O se atugaluga masani i le au atia'e o lo'o fetaia'i ma lenei amio mo le taimi muamua o le otaota o puna'oa. Afai ou te manaʻomia naʻo le 4 paita, aisea e faʻaaoga ai e laʻu polokalame le 72 KB? O le faʻamatalaga taua o lemanatu faʻamaʻi e le o se manatua faaletino. Pe a faʻalauteleina e le glibc le malologa o le polokalame i le 72 KB, e faʻafouina e le fatu le faʻasologa o faʻasologa o mafaufauga, ae e le vave toe faʻafoʻi na itulau i le RAM faaletino. O itulau fa'aletino moni e fa'asoaina pe a mana'omia e ala i fa'aletonu itulau — na'o le taimi e tusi ai lau polokalame i se tuatusi fa'apitoa e tu'uina atu e le fatu se itulau moni e manatua ai.
💡 DID YOU KNOW?
Mewayz replaces 8+ business tools in one platform
CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.
Start Free →O lona uiga e ui lava ina fa'atuputeleina le tele o lau gaioiga i le 72 KB, ae o lonatagata nofomau(RSS) — o le aofa'i o le RAM fa'aletino e fa'aaoga moni - e fa'atupula'ia e na'o itulau e te pa'i moni ai. Mo se tasi new int, e masani lava e tasi le itulau 4 KB, fa'aopoopo i itulau o lo'o i ai i le metadata malae. O lo'o i ai le avanoa va'aia o lo'o totoe, sauni mo le fa'aoga, e leai se tau na'o le avanoa e tu'u ai - lea e iai lau 128 TB i luga o le 64-bit Linux system.
E taua tele lenei fa'aeseesega pe a fa'ailoa ma mata'ituina le fa'aogaina o talosaga. Afai o loʻo e fausiaina polokalama e manaʻomia le siakiina o le faʻaaogaina o punaoa moni - pe o se SaaS backend, se microservice, poʻo se auʻiliʻili paipa e pei o latou o loʻo tamomoe i luga o faʻasalalauga e pei o leMewayzmo pisinisi pisinisi - e tatau ona e mataʻituina pea le RSS nai lo le tele o le virtual. Meafaigaluega e pei o le /proc/[pid]/smaps, valgrind --tool=massif, ma le pmap e mafai ona tu'uina atu ia te oe tulagavae sa'o e manatua ai le tino nai lo le fa'aseseina o fuainumera fa'amanino.
E Fa'afefea Eseese Fa'asoa Fa'afoe le Fa'asoa Muamua
O le numera 72 KB e fa'apitoa ile glibc's ptmalloc2. E ese'ese fefa'ataua'iga a isi tagata fa'asoa, ma o le fa'asoa muamua o luga a'e e fesuisuia'i fa'atatau. O le malamalama i nei eseesega e taua tele pe a filifilia se fa'asoa mo fa'aoga e maaleale fa'atinoga.
- jemalloc(fa'aoga e le Facebook, FreeBSD) — Fa'aaogā se fausaga fa'ato'aga fa'ato'aga fa'atasi ai ma fa'aoga filo fa'alotoifale. O le fa'auluulu muamua e foliga mai e maualuga (e masani lava 200+ KB) ae e sili atu le fa'atinoina o fa'asologa o filo e tele ona o le fa'aitiitia o fefinauaiga loka.
- tcmalloc (Google's Thread-Caching Malloc) — Fa'asoa se fa'a-filo fa'amau e tusa ma le 2 MB ona o le fa'aletonu, fa'atasi ai ma le fa'amalosi muamua o le vaevaega. O le fa'auluuluga muamua e maualuga atu, ae o isi vaega laiti e matua vave tele.
- musl libc's malloc — Fa'aaogaina se mamanu sili atu ona faigofie e fa'atatau i le mmapmo vaevaega uma. O le fa'auluuluga muamua e la'ititi (e masani lava na'o le 4 KB i le fa'asoasoaina), ae o le tau o le fa'asoasoaga e maualuga atu ona o le tele o telefoni fa'aleaogaina.
- mimalloc (Microsoft) — Fa'aaoga vaega fa'avae fa'asoa fa'atasi ma vaega 64 MB. O le fa'asoa muamua e fa'aosoina ai le 64 MB virtual reservation (fa'atasi ai ma le fa'atauva'a fa'aletino), avanoa tuatusi fa'atau mo nofoaga fa'apitoa ma le fa'aogaina.
O le filifiliga i le va o nei fa'asoa e fa'alagolago atoa i lau galuega. Mo talosaga umi a le server ma le mamafa tele o filo, jemalloc po'o tcmalloc e masani lava ona sili atu le faaletonu o le glibc. Mo faiga fa'apipi'i fa'agata-mafaufau, atonu e sili atu le auala faigofie a le musl e ui ina maualalo le fa'aogaina. Mo le tele o talosaga i luga o le komepiuta ma le server, o le 72 KB muamua o le ulu o le ptmalloc2 o lo'o fa'atusalia ai se faaletonu talafeagai e aoga lelei e aunoa ma le fa'alogoina.
Fa'asa'o le Amio Fa'asoa Muamua
Afai o le fa'aletonu o le 72 KB muamua e matua fa'afitauli mo lau fa'aoga - masalo o lo'o e fa'atupuina le faitau afe o faiga pupuu, e tofu na'o ni nai vaega fa'asoa - e tu'uina atu e le glibc le tele o tunables e ala i mallopt()ma le MALLOC_ aiga o fesuiaiga o le siosiomaga.
O le M_TOP_PAD fa'ata'ita'iga e pulea ai le tele o manatuaga fa'aopoopo e mana'omia e le tagata fa'asoa i tua atu o mea e mana'omia vave. Fa'atulaga i le 0 ma le mallopt(M_TOP_PAD, 0)e ta'u atu i le tagata fa'asoa ina ia talosagaina na'o mea e mana'omia, ma fa'aitiitia ai le fa'asili muamua. O le M_MMAP_THRESHOLDfa'ailoga e pulea le tele o lo'o i luga o lo'o fa'aogaina e fa'asoa mmap nai lo le malae. O le M_TRIM_THRESHOLD e fa'atonu pe a toe fa'afo'i atu manatuaga i le OS. Ma talu mai le glibc 2.26, o le glibc.malloc.tcache_countma le glibc.malloc.tcache_max tunables e fa'atagaina oe e pulea le filo o le fa'aogaina o amioga.
Ae ui i lea, o se upu lapatai: o le fa'alogoina o nei ta'otoga e aunoa ma le fa'ata'ita'iina ma le fa'aeteete e toetoe lava o taimi uma e atili ai ona leaga. O fa'aletonu na filifilia e fa'atatau i le tele o fa'amatalaga i le lalolagi, ma o lo'o fai ma sui o se nofoaga manaia mo le tele o galuega. Se'i vagana ua i ai sau fa'amaoniga malosi mai le fa'alauiloaina o le gaosiga o le malloc i luga a'e o le ulu o se fagu - ma ua e fuaina le a'afiaga o au suiga - tu'u na'o fa'aletonu. O le fa'ata'ita'i vave o le tagata fa'asoa o se faiga fa'a'ole'ole fa'apitoa ole sele o le yak lea na alu ai le tele o itula fa'ainisinia mo se manuia fa'atauva'a.
O le a le mea e a'oa'o mai ai ia i matou e uiga i Faiga Polokalama
O le 72 KB fa'asoa muamua mealilo, i lona 'autu, o se lesona e uiga i papa fa'a'ese'ese. C ++ e tuʻuina atu ia te oe le faʻasesega e new intfaʻasoa 4 bytes. Fai mai le tulaga o le gagana. Fai mai lou mafaufau fa'atusa. Ae i le va o lau code ma meafaigaluega o loʻo i ai se faaputuga o faiga faʻapitoa - o le C++ runtime, le C library allocator, le kernel's virtual memory subsystem, ma le hardware's MMU ma TLB - e faʻaopoopo e taʻitasi a latou lava amio, faʻataʻitaʻiga, ma luga.
E le o se fa'aletonu. O le vaega atoa o polokalama faakomepiuta. E iai vaega ta'itasi e fo'ia ai se fa'afitauli moni: o lo'o iai le fa'asoa ina ia e le tau faia ni vala'au mo so'o se vaega. O lo'o iai le virtual memory system ina ia e le mana'omia le pulea sa'o o mafaufauga faaletino. O lo'o iai le fa'aletonu o le itulau ina ia fa'agasolo ma lelei le manatua. So'o se vaega e fefa'ataua'i sina vaega manino mo le tele o le fa'atinoga ma le fa'afaigofie.
O tagata atia'e latou te fausia faiga e sili ona fa'atuatuaina, e sili ona fa'atinoina, oi latou ia e malamalama i nei fa'avae - e le ona e mana'omia ona latou mafaufau i ai i taimi uma, ae ona o se mea e le'i fa'amoemoeina e tupu (pei o se mea lilo 72 KB fa'asoa), latou te maua le fa'ata'ita'iga mafaufau e malamalama ai pe aisea. Pe o lo'o e fausia se faiga tau fefa'ataua'iga moni, se ta'aloga ta'aloga, po'o se fa'alapotopotoga fa'apisinisi e tautuaina le faitau afe o tagata fa'aoga, o le tomai e fa'atatau i le mea moni o lo'o faia e lau code ile tulaga fa'aleaogaina o le mea lea e tu'u'ese'ese ai le au atina'e agava'a mai tagata fa'apitoa. O le 72 KB e le o se pusa. O lau fa'asoasoa o lo'o fa'atino lelei lana galuega.
Fausia Lau Pisinisi OS i Aso Nei
Mai tagata tuto'atasi i lala sooupu, Mewayz fa'aola le 138,000+ pisinisi fa'atasi ai ma le 207 fa'atasi. Amata fua, fa'aleleia pe a e tuputupu a'e.
Fausia se Teugatupe Saoloto →Try Mewayz Free
All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.
Get more articles like this
Weekly business tips and product updates. Free forever.
You're subscribed!
Start managing your business smarter today
Join 30,000+ businesses. Free forever plan · No credit card required.
Ready to put this into practice?
Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.
Start Free Trial →Related articles
Hacker News
Show HN: Spice simulation → oscilloscope → verification with Claude Code
Apr 17, 2026
Hacker News
Hospital at centre of child HIV outbreak caught reusing syringes in Pakistan
Apr 16, 2026
Hacker News
George Orwell Predicted the Rise of "AI Slop" in Nineteen Eighty-Four (1949)
Apr 16, 2026
Hacker News
Everything we like is a psyop
Apr 16, 2026
Hacker News
U.S. to Create High-Tech Manufacturing Zone in Philippines
Apr 16, 2026
Hacker News
New unsealed records reveal Amazon's price-fixing tactics, California AG claims
Apr 16, 2026
Ready to take action?
Start your free Mewayz trial today
All-in-one business platform. No credit card required.
Start Free →14-day free trial · No credit card · Cancel anytime