Hacker News

ފުރަތަމަ ސީ++ (މ)އެލޮކޭޝަން އަބަދުވެސް 72 ކިލޯ ބައިޓް ވާންވީ ކީއްވެގެން ހެއްޔެވެ؟

ކޮމެންޓްތައް

1 min read Via joelsiks.com

Mewayz Team

Editorial Team

Hacker News

ތިބާގެ ފުރަތަމަ ސީ++ އެލޮކޭޝަންގެ ފަހަތުގައިވާ ސިއްރު

ތިޔަ ލިޔަނީ ސާދާ ސީ++ ޕްރޮގްރާމެކެވެ. އެންމެ އައު އިންޓްއެކެވެ. ހަތަރު ބައިޓް. ތިބާ strace ނުވަތަ ތިބާ އެންމެ ގަޔާވާ މެމޮރީ ޕްރޮފައިލަރ ފަޔަރ އަޕް ކޮށްލާއިރު، އެތަނުގައި އެކަން އެބައޮތް — ތިބާގެ ޕްރޮސެސް ދެންމެ އޮޕަރޭޓިންގ ސިސްޓަމުން ގާތްގަނޑަކަށް 72 ކިލޯ ބައިޓް ރިކުއެސްޓް ކުރިއެވެ. 4 ބައިޓް ނޫނެވެ. 64 ބައިޓް ނޫނެވެ. ފުރިހަމަ 72 ކިލޯ ބައިޓް. ދުވަހަކުވެސް އެ ނަންބަރަށް ބަލަހައްޓައިގެން ހުރެ، ތިބާގެ ޓޫލިންގ އިން ތިބާއަށް ދޮގުހެދީތޯ ވިސްނާފައި ވާނަމަ، ތިބާ އެކަނިވެރިއެއް ނޫނެވެ. މި ފެންނަ ފެނުމުގައި ބިޒީ ސުލޫކަކީ ފުރަތަމަ ފަހަރަށް މެމޮރީ އިންޓަރނަލްސް އަށް ކޮނެގެން އުޅޭ ސީ++ ޑިވެލޮޕަރުންގެ މެދުގައި އެންމެ ގިނައިން ކުރެވޭ އެއް ސުވާލެވެ

އައު

އަށް ގުޅާއިރު ވާގޮތް

72 ކިލޯ ބައިޓްގެ އަދަދު ވިސްނުމަށްޓަކައި ފުލް އެލޮކޭޝަން ޗޭން ޓްރޭސް ކުރަން ޖެހެއެވެ. ތިބާގެ ސީ++ ކޯޑް new int އެގްޒެކެޓް ކުރާއިރު، ކޮމްޕައިލަރ އެކަން ތަރުޖަމާ ކުރަނީ އޮޕަރޭޓަރ new އަށް ކޯލަކަށް، މިއީ ގިނަ ލިނަކްސް ސިސްޓަމްތަކުގައި glibc އިން malloc އަށް ޑެލިގޭޓް ކުރާ އެއްޗެކެވެ. އެކަމަކު malloc އިން ސީދާ ކާރނަލް އިން 4 ބައިޓްގެ މެމޮރީ ހޯދުމަށް އެދެއެވެ. ކާރނަލް އޮޕަރޭޓް ކުރަނީ ޕޭޖްތަކެއްގެ ގޮތުގައި — އާންމުކޮށް x86_64 ގައި 4 ކިލޯ ބައިޓް — އަދި ސިސްޓަމް ކޯލެއްގެ އަގަކީ އާދައިގެ މެމޮރީ އެކްސެސްއަކަށް ނިސްބަތްކޮށް ވަރަށް ބޮޑު ޚަރަދެކެވެ. ކޮންމެ ވަކިވަކި އެލޮކޭޝަނަކަށް brk() ނުވަތަ mmap() އަށް ގޮވާލުމުން އެއްވެސް ކުޑަކުޑަ ޕްރޮގްރާމެއް ގްރައިންޑް ހުއްޓުމަކަށް އަންނާނެއެވެ.

އޭގެ ބަދަލުގައި، glibc ގެ މެމޮރީ އެލޮކޭޓަރ — ptmalloc2 ކިޔާ އިމްޕްލިމެންޓޭޝަނެއް، ޚުދު ޑަގް ލީއާގެ ކްލާސިކް dlmalloc އިން އުފެދިފައިވާ — މެދުވެރިއެއްގެ ގޮތުގައި މަސައްކަތް ކުރެއެވެ. އެއީ ކުރިން ކާރނަލް އިން ބޮޑެތި ބްލޮކްތަކުގެ މެމޮރީ ރިކުއެސްޓްކޮށް، ދެން ތިބާގެ ޕްރޮގްރާމަށް ބޭނުންވާ ގޮތަށް ކުދިކުދި ބްލޮކްތަކަށް ވަޑާން ކުރާ އެއްޗެކެވެ. މިއީ ތިބާގެ ފުރަތަމަ 4 ބައިޓް އެލޮކޭޝަން އިން އޮޕަރޭޓިންގ ސިސްޓަމަށް މާ ބޮޑު ރިކުއެސްޓެއް ޓްރިގަރ ކުރާ އަސާސީ ސަބަބެވެ. އެލޮކޭޓަރު އިސްރާފު ކުރަނީކީ ނޫނެވެ. އެއީ ސްޓްރެޓެޖިކް ވުމެވެ.

72 ކިލޯ ބައި ޑިސެކްޓްކުރުން: ބައިޓްތައް ދާ ތަންތަން

އިނިޝިއަލް އެލޮކޭޝަން އޯވަހެޑް އަންނަނީ ރަންޓައިމް އިން ޔޫޒަބަލް މެމޮރީގެ އެންމެ ބައިޓެއް ވެސް ހަވާލު ކުރުމުގެ ކުރިން އިނިޝިއަލައިޒް ކުރަންޖެހޭ ވަކިވަކި ބައެއް ކޮމްޕޯނެންޓްތަކުންނެވެ. ކޮންމެ ކޮމްޕޮނެންޓެއް ވިސްނުމުން އެ އަދަދު ޖައްސާ ތަނަށް ޖައްސާ ސަބަބު ހާމަވެގެންދެއެވެ.

ފުރަތަމަ ކަމަކަށް glibc ގެ malloc އިން main arena އިނިޝިއަލައިޒް ކުރަނީ — މައި ތްރެޑްގައި ހުރިހާ އެލޮކޭޝަންތަކެއް ޓްރެކްކުރާ ޕްރައިމަރީ ބުކްކީޕިންގ ސްޓްރަކްޗަރ އެވެ. މި މައިދާނުގައި ހިމެނެނީ ހީޕް އަށް މެޓަޑޭޓާ، ފްރީ-ލިސްޓް ޕޮއިންޓަރސް، އަދި ތަފާތު އެލޮކޭޝަން ސައިޒްތަކަށް ބިން ސްޓްރަކްޗަރސް އެވެ. އެލޮކޭޓަރ ޕްރޮގްރާމް ބްރޭކް sbrk() މެދުވެރިކޮށް ދިގުކޮށް، ފުރަތަމަ އެކްސްޓެންޝަން ވެރިކަން ކުރަނީ M_TOP_PAD ކިޔާ އިންޓަރނަލް ޕެރެމިޓަރަކުން ކަމަށާއި، މިއީ ޑިފޯލްޓްކޮށް 128 ކިލޯ ބައިޓްގެ ޕެޑިންގ އަށެވެ. ނަމަވެސް ހަގީގީ އިސްލާމީ ރިކުއެސްޓް ޕޭޖް އެލައިންމަންޓާއި މިހާރު ހުރި ބްރޭކް ޕޮޒިޝަނަށް އެޖެސްޓް ކުރެވޭއިރު، ގިނަ ފަހަރަށް ނަތީޖާއަކަށް ވެގެންދަނީ ފުރަތަމަ ރިކުއެސްޓް ކުޑަވުމެވެ — އާންމުކޮށް ތާޒާކޮށް ފެށި ޕްރޮސެސްއެއްގައި އެ 72 ކިލޯބައިޓްގެ އަދަދު ކައިރިއަށް ޖައްސާ.

ދެވަނަ ކަމަކީ، glibc 2.26 އިން ފެށިގެން، އެލޮކޭޓަރ ފުރަތަމަ ބޭނުންކުރުމުން ތްރެޑް-ލޯކަލް ކެޝް (tcache) އެއް އިނިޝިއަލައިޒް ކުރެއެވެ. ޓީކޭޝްގައި 64 ބިން (ކުޑަ އެލޮކޭޝަން ސައިޒް ކްލާހަކަށް އެއް ބިން) ހިމެނޭއިރު، ކޮންމެ ބިންއެއްގައި ވެސް 7 ކެޝްޑް ޗަންކްސް ހިފެހެއްޓޭނެ އެވެ. tcache_perthread_struct ޚުދު ގާތްގަނޑަކަށް 1 ކިލޯ ބައިޓް ކޮންސިއުމް ކުރާ ނަމަވެސް އެކަން އިނިޝިއަލައިޒް ކުރުމުގެ އަމަލުން ފުޅާ ދާއިރާއެއްގައި ސެޓަޕް ޓްރިގަރ ވެއެވެ. ތިންވަނަ ކަމަކީ، ސީ++ ރަންޓައިމް ތިބާގެ main() ވެސް ދުއްވުމުގެ ކުރިން އެލޮކޭޝަންތައް ކުރިއަށް ގެންގޮސްފައިވުން — ސްޓޭޓިކް ކޮންސްޓްރަކްޓަރސް، std::cout އަދި ރައްޓެހިންނަށް iostream ބަފަރ އިނިޝިއަލައިޒޭޝަން، އަދި ލޮކޭޝަން ސެޓަޕް މިހުރިހާ ކަމެއްވެސް އެ އިސްތިހާރު ހީޕް ފުޓްޕްރިންޓަށް ކޮންޓްރިބިއުޓް ކުރެއެވެ.

އެރީނާ ސިސްޓަމް އަދި ޕްރީ އެލޮކޭޝަން ސްމާޓް ވާންވީ ސަބަބު

މެމޮރީގެ ބޮޑު ބައެއް ޕްރީ އެލޮކޭޓް ކުރަން ނިންމުމަކީ ކޮބައިތޯ އެދުމުގެ ބަދަލުގައި ތަންފީޒު ކުރުމުގެ އެކްސިޑެންޓެއް ނޫނެވެ. އެއީ ގަސްތުގައި އިންޖިނިއަރިން ޓްރޭޑްއޮފް އެއް ކަމަށާއި އެއީ ސިސްޓަމްސް ޕްރޮގްރާމިންގެ ދިގު ޒަމާންތަކެއްގެ ތަޖުރިބާގެ މައްޗަށް ބިނާވެފައިވާ ކަމެއް ކަމަށެވެ. brk() ނުވަތަ mmap() އަށް ކުރާ ކޮންމެ ކޯލެއްގައި ޔޫޒަރ ސްޕޭސް އިން ކާރނަލް ސްޕޭސް އަށް ކޮންޓެކްސްޓް ބަދަލުވުމާއި، ޕްރޮސެސްގެ ވާޗުއަލް މެމޮރީ މެޕިންގސް ބަދަލުކުރުމާއި، ޕޮޓެންޝަލް ޕޭޖް ޓޭބަލް އަޕްޑޭޓްސް ހިމެނެއެވެ. މިޒަމާނުގެ ހާޑްވެއާގައި، އެއް ސިސްޓަމް ކޯލެއްގެ އަގު ގާތްގަނޑަކަށް 100-200 ނެނޯސެކަންޑް — އެކަހެރިކޮށް ކުޑަކުޑަ، ސްކޭލްގައި ކާރިސާވެރި.

އިނިޝިއަލައިޒޭޝަންގެ ތެރޭގައި 10،000 ކުދި އެލޮކޭޝަން ކުރާ ޕްރޮގްރާމަކަށް ބަލާށެވެ. ޕްރީ އެލޮކޭޝަން ނެތި، އޭގެ މާނައަކީ 10،000 ސިސްޓަމް ކޯލް، ގާތްގަނޑަކަށް 1-2 މިލިސެކަންޑްގެ ޕިއުރ އޯވަހެޑް ޚަރަދުވާނެ. އެރީނާ އަށް ބިނާކޮށްފައިވާ އެލޮކޭޓަރަކާއެކު، ފުރަތަމަ އެލޮކޭޝަން އެއް ސިސްޓަމް ކޯލެއް ޓްރިގަރ ކުރާއިރު، އޭގެ ފަހުން 9،999 އެލޮކޭޝަން މުޅިން ޔޫޒަރ ސްޕޭސްގައި ސާވިސް ކުރެވެނީ ޕޮއިންޓަރ އެރިތްމެޓިކް އަދި ލިންކްޑް-ލިސްޓް އޮޕަރޭޝަންސް މެދުވެރިކޮށް — ކޮންމެ އެލޮކޭޝަންއަކަށް ގާތްގަނޑަކަށް 10-50 ނެނޯސެކަންޑް ނަގައެވެ. ހިސާބަކީ އެއްވެސް ޝައްކެއްނެތް ކަމެއް: ޕްރީ އެލޮކޭޝަން ކާމިޔާބު ކުރަނީ މެގްނިޓިއުޑްގެ ތަރުތީބުންނެވެ.

<ބްލޮކްކޯޓް> އެވެ

ފުރަތަމަ އެލޮކޭޝަންގައި ފެންނަ 72 ކިލޯބައިޓަކީ ބޭކާރު މެމޮރީއެއް ނޫން — އެއީ ޕާފޯމަންސް އިންވެސްޓްމަންޓެކެވެ. އެލޮކޭޓަރު ބެޓް ކުރަނީ ތިބާގެ ޕްރޮގްރާމް އިން ވަރަށް އަވަހަށް އިތުރު އެލޮކޭޝަންތައް ކުރާނެ ކަމަށާއި، ގާތްގަނޑަކަށް ހަގީގީ ދުނިޔޭގެ ކޮންމެ މަންޒަރެއްގައި ވެސް އެ ބެޓް ރީތިކޮށް ފައިދާ ކުރާނެ ކަމަށެވެ. ބޭނުން ނުކުރާ ވާޗުއަލް އެޑްރެސް ސްޕޭސްގެ އަގަކީ ޒަމާނީ 64 ބިޓް ސިސްޓަމްތަކުގައި މުހިންމު ގޮތެއްގައި ސުމެއް.

އެވެ

ވާޗުއަލް މެމޮރީ އާއި ފިޒިކަލް މެމޮރީ: އެއީ މުހިންމު ނުވާ ސަބަބު

މި ސުލޫކު ފުރަތަމަ ފަހަރަށް ދިމާވާ ޑިވެލޮޕަރުންގެ މެދުގައި އާންމު ކަންބޮޑުވުމަކީ ވަސީލަތްތައް ބޭކާރުވުމެވެ. އަހަރެންނަށް ބޭނުންވަނީ އެންމެ 4 ބައިޓް ނަމަ އަހަރެންގެ ޕްރޮގްރާމް 72 ކިލޯ ބައިޓް ކޮންސިއުމް ކުރަނީ ކީއްވެގެން ހެއްޔެވެ؟ ކްރިޓިކަލް އިންސައިޓަކީ ވާޗުއަލް މެމޮރީ އަކީ ފިޒިކަލް މެމޮރީއެއް ނޫނެވެ. glibc އިން ޕްރޮގްރާމް ބްރޭކް 72 ކިލޯބައިޓް އިތުރުކުރުމުން، ކާރނަލް އިން ޕްރޮސެސްގެ ވާޗުއަލް މެމޮރީ މެޕިންގްސް އަޕްޑޭޓް ކުރާ ނަމަވެސް، ވަގުތުން އެ ޕޭޖްތައް ފިޒިކަލް ރެމް އިން ބެކް ނުކުރެއެވެ. ހަގީގީ ފިޒިކަލް ޕޭޖްތައް ޑިމާންޑަށް ދޫކުރެވެނީ ޕޭޖް ފޯލްޓްސް މެދުވެރިކޮށް — ތިބާގެ ޕްރޮގްރާމް ވަކި އެޑްރެހަކަށް ލިޔުމުން އެކަނި ކާރނަލް އިން އެއަށް ހަގީގީ މެމޮރީ ޕޭޖެއް ޙަވާލުކުރެއެވެ.

💡 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 →

މީގެ މާނައަކީ ތިބާގެ ޕްރޮސެސްގެ ވާޗުއަލް ސައިޒް 72 ކިލޯބައިޓް އިތުރުވި ނަމަވެސް، އޭގެ ރެޒިޑެންޓް ސެޓް ސައިޒް (RSS) — ހަގީގަތުގައި ބޭނުންކުރާ ފިޒިކަލް ރެމްގެ މިންވަރު — އިތުރުވަނީ ހަމައެކަނި ތިބާ ހަގީގަތުގައި އަތްލާ ޞަފްޙާތަކުންނެވެ. އެއް އައު އިންޓް އަކަށް، އެއީ އާންމުކޮށް އެއް 4 ކިލޯބައިޓް ޕޭޖް، އޭގެ އިތުރުން އެރީނާ މެޓަޑޭޓާ އިން ހިފާފައިވާ ކޮންމެ ޕޭޖެއް ވެސް ހިމެނޭ ގޮތަށެވެ. ބާކީ ހުރި ވާޗުއަލް ސްޕޭސް އެތަނުގައި އިށީނދެގެން، ބޭނުން ކުރަން ތައްޔާރަށް، އެޑްރެސް ސްޕޭސް ނޫން އެހެން އެއްވެސް ޚަރަދެއް ނުކުރާ — އޭގެ ތެރެއިން 64 ބިޓް ލިނަކްސް ސިސްޓަމެއްގައި 128 ޓީބީ ހުރެއެވެ.

މި ތަފާތަކީ ޕްރޮޑަކްޝަން އެޕްލިކޭޝަންތައް ޕްރޮފައިލްކޮށް މޮނިޓަރ ކުރާއިރު ވަރަށް މުހިންމު ތަފާތެކެވެ. ހަގީގީ ރިސޯސް ކޮންސިއުމަންޓް ޓްރެކް ކުރަން ބޭނުންވާ ސޮފްޓްވެއާއެއް ބިނާކުރަމުންދާނަމަ — ސާސް ބެކްއެންޑެއް ކަމުގައި ވިޔަސް، މައިކްރޯސަރވިސްއެއް ކަމުގައި ވިޔަސް، ނުވަތަ ވިޔަފާރީގެ އޮޕަރޭޝަންތަކަށް މެވޭޒް ފަދަ ޕްލެޓްފޯމްތަކުގައި ހިންގާ ފަދަ އެނަލިޓިކްސް ޕައިޕްލައިނެއް ކަމުގައި ވިޔަސް — ވާޗުއަލް ސައިޒަށްވުރެ އަބަދުވެސް އާރުއެސްއެސް މޮނިޓަރ ކުރަންވާނެއެވެ. /proc/[pid]/smaps، valgrind --tool=massif، އަދި pmap ފަދަ ޓޫލްތަކުން ވާޗުއަލް މެމޮރީ ފިގަރސްތައް އޮޅުންފިލުވައިދިނުމަށްވުރެ ޞައްޙަ ފިޒިކަލް މެމޮރީ ފުޓްޕްރިންޓްސް ލިބިގެންދެއެވެ.

ފުރަތަމަ އެލޮކޭޝަން ތަފާތު އެލޮކޭޓަރުން ޙަވާލުކުރާ ގޮތް

72 ކިލޯބައިޓްގެ އަދަދަކީ glibc ގެ ptmaloc2 އަށް ޚާއްޞަ އަދަދެކެވެ. އެހެން އެލޮކޭޓަރުން ތަފާތު ޓްރޭޑްއޮފްތައް ހަދައި، އެއަށް ރިއާޔަތްކޮށް ފުރަތަމަ އެލޮކޭޝަން އޯވަހެޑް ތަފާތުވެއެވެ. މި ތަފާތުތައް ދެނެގަތުމަކީ ޕާފޯމަންސް ސެންސިޓިވް އެޕްލިކޭޝަންތަކަށް އެލޮކޭޓަރެއް ހޮވުމުގައި އަގުހުރި ކަމެކެވެ.

    އެވެ
  • jemalloc (ފޭސްބުކް، ފްރީބީއެސްޑީ އިން ބޭނުންކުރާ) — ތްރެޑް-ލޯކަލް ކެޝްތަކާއެކު މާ ގްރެނިއުލަރ އެރީނާ ސްޓްރަކްޗަރއެއް ބޭނުންކުރެއެވެ. ފުރަތަމަ އޯވަހެޑް ގިނައިން ހުންނަނީ (ގިނަ ފަހަރަށް 200+ ކިލޯބައިޓް) ނަމަވެސް ލޮކް ކޮންޓެންޝަން މަދުވުމުން ރަނގަޅު މަލްޓި ތްރެޑެޑް ޕާފޯމަންސެއް ފޯރުކޮށްދެއެވެ.
  • tcmalloc (ގޫގުލްގެ ތްރެޑް-ކެޗިންގ މެލޮކް) — ޑިފޯލްޓްކޮށް ގާތްގަނޑަކަށް 2 އެމްބީގެ ޕަރ-ތްރެޑް ކެޝްއެއް އެލޮކޭޓް ކުރަނީ، އެގްރެސިވް ޕްރީ އެލޮކޭޝަން އާއި އެކުގައެވެ. ފުރަތަމަ އޯވަހެޑް ބޮޑު ނަމަވެސް އޭގެ ފަހުން ކުދިކުދި އެލޮކޭޝަންތައް އިންތިހާއަށް އަވަސްވެއެވެ.
  • musl libc's malloc — ހުރިހާ އެލޮކޭޝަންތަކަށް mmap އަށް ބިނާކޮށް މާ ސާދާ ޑިޒައިންއެއް ބޭނުންކުރެއެވެ. ފުރަތަމަ އޯވަހެޑް އެންމެ ކުޑަ (ގިނަ ފަހަރަށް ކޮންމެ އެލޮކޭޝަނަކަށް އެންމެ 4 ކިލޯ ބައިޓް) ނަމަވެސް، އެލޮކޭޝަނަކަށް ޚަރަދު ބޮޑުވަނީ ގިނައިން ސިސްޓަމް ކޯލް ކުރުމުންނެވެ.
  • mimalloc (މައިކްރޮސޮފްޓް) — 64 އެމްބީ ސެގްމެންޓްތަކާއެކު ސެގްމެންޓް ބެސްޓް އެލޮކޭޝަން ބޭނުންކުރެއެވެ. ފުރަތަމަ އެލޮކޭޝަން ޓްރިގަރ ކުރަނީ 64 އެމްބީގެ ވާޗުއަލް ރިޒަރވޭޝަން (މިނިމަމް ފިޒިކަލް ކޮމިޓްމަންޓާއެކު)، ޓްރޭޑިންގ އެޑްރެސް ސްޕޭސް ފޯރ އެކްސެޕްޝަނަލް ލޮކަލިޓީ އަދި ތްރޫޕުޓް.

މި އެލޮކޭޓަރުތަކުގެ ތެރެއިން ޗޮއިސް މުޅިން ބިނާވެފައިވަނީ ތިބާގެ ވޯކްލޯޑްގެ މައްޗަށެވެ. ބޮޑެތި މަލްޓި ތްރެޑެޑް އެލޮކޭޝަން އެއް ހުންނަ ދިގު މުއްދަތަކަށް ހިންގާ ސަރވަރ އެޕްލިކޭޝަންތަކަށް، ޖެމަލޮކް ނުވަތަ tcmalloc އާންމުކޮށް glibc ގެ ޑިފޯލްޓް އަށް ވުރެ ރަނގަޅު ވެއެވެ. މެމޮރީ ކޮންސްޓްރެއިންޑް އެންބެޑެޑް ސިސްޓަމްތަކަށް، ތްރޫޕުޓް ދަށް ނަމަވެސް، މުސްލްގެ ސާދާ ގޮތް ރަނގަޅު ވެދާނެއެވެ. ގިނަ އާންމު ބޭނުމަކަށް ބޭނުންކުރާ ޑެސްކްޓޮޕް އަދި ސަރވަރ އެޕްލިކޭޝަންތަކަށް، ptmalloc2 ގެ 72 ކިލޯބައިޓްގެ އިންޓިޝިއަލް އޯވަހެޑް ތަމްސީލުކުރަނީ ޓިއުނިންގ ނުކޮށް ރަނގަޅަށް މަސައްކަތްކުރާ އެކަށީގެންވާ ޑިފޯލްޓެކެވެ.

އިނިޝިއަލް އެލޮކޭޝަން ބިހޭވިއަރ ޓިއުނިންގ

|

M_TOP_PAD ޕެރެމިޓަރަކީ ވަގުތުން ބޭނުންވާ މިންވަރަށްވުރެ އިތުރަށް އެލޮކޭޓަރ ރިކުއެސްޓްކުރާ އިތުރު މެމޮރީ ކޮންޓްރޯލްކުރާ އެއްޗެކެވެ. mallopt(M_TOP_PAD, 0) އިން 0 އަށް ސެޓްކުރުމުން އެލޮކޭޓަރަށް އަންގަނީ ހަމައެކަނި ބޭނުންވާ އެއްޗެއް ރިކުއެސްޓް ކުރުމަށެވެ، މިއީ ފުރަތަމަ އޯވަހެޑް ވަރަށް ބޮޑަށް ކުޑަކޮށްދޭ ކަމެކެވެ. M_MMAP_THRESHOLD ޕެރެމިޓަރަކީ އެލޮކޭޝަންތަކުން އެރީނާގެ ބަދަލުގައި mmap ބޭނުންކުރާ ސައިޒުގެ މަތީގައި ކޮންޓްރޯލްކުރާ އެއްޗެކެވެ. M_TRIM_THRESHOLD އިން ކޮންޓްރޯލް ކުރަނީ ފްރީޑް މެމޮރީ އޮއެސް އަށް އަނބުރާ ގެނައުމެވެ. އަދި glibc 2.26 އިން ފެށިގެން، glibc.malloc.tcache_count އަދި glibc.malloc.tcache_max ޓިއުނޭބަލްސް އިން ތްރެޑް ކެޝް ބިހޭވިއަރ ކޮންޓްރޯލް ކުރެވޭނެއެވެ.

އެހެން ނަމަވެސް ސަމާލުވާންޖެހޭ ބަހެއް: ފަރުވާތެރިކަމާއެކު ބެންޗްމާކް ނުކޮށް މި ޕެރެމިޓަރުތައް ޓިއުން ކުރުމަކީ ގާތްގަނޑަކަށް އަބަދުވެސް ކަންކަން ގޯސްވާ ކަމެކެވެ. ޑިފޯލްޓްތައް ހޮވާފައިވަނީ ފުޅާ ދާއިރާއެއްގައި ރިއަލް ވޯލްޑް ޕްރޮފައިލިންގ އަށް ބަލައިގެން ކަމަށާއި، މިއީ ގިނަ ވޯކްލޯޑްތަކަށް ފޮނި ތަނެއް ތަމްސީލުކުރާ ތަންތަން ކަމަށެވެ. ޕްރޮޑަކްޝަން ޕްރޮފައިލިންގ އިން މެލޮކް އޯވަހެޑަކީ ފުޅިގަނޑެއް ކަމުގެ ވަރުގަދަ ހެކި ލިބިފައި ނުވާނަމަ — އަދި ތިބާގެ ބަދަލުތަކުގެ އަސަރު މިންކޮށްފައި ނުވާނަމަ — ޑިފޯލްޓްތައް ދޫކޮށްލާށެވެ. އެލޮކޭޓަރ ވަގުތުން އޮޕްޓިމައިޒް ކުރުމަކީ ވަކިން ޚާއްޞަކޮށް ޔަކް ޝޭވިންގ ގެ މަކަރުވެރި ގޮތެއް ކަމަށާއި، މިއީ ކުޑަ ފައިދާއެއް ހޯދުމަށްޓަކައި އިންޖިނިއަރިންގ ގަޑިތަކުގެ އަދަދު ނުކުރެވޭހާ ގިނަ ވަގުތު ހޭދަކޮށްފައިވާ ކަމެކެވެ.

މިކަމުން ސިސްޓަމްސް ޕްރޮގްރާމިންގ އާއި ބެހޭގޮތުން އަޅުގަނޑުމެންނަށް ދަސްކޮށްދޭ ކަންތައްތައް

72 ކިލޯ ބައިޓްގެ ފުރަތަމަ އެލޮކޭޝަން މިސްޓަރީ އަކީ، އޭގެ މައިގަނޑުގައި، އެބްސްޓްރެކްޝަން ލޭޔަރސް އާ ބެހޭ ފިލާވަޅެކެވެ. ސީ++ އިން ތިބާއަށް ލިބެނީ new int އިން 4 ބައިޓް ދޫކުރާ ކަމުގެ ވަހުމެވެ. ބަހުގެ މިންގަނޑުގައި ބުނެފައިވަނީ އެހެންނެވެ. ތިބާގެ ނަފްސާނީ މޮޑެލް ބުނަނީ އެހެންނެވެ. އެކަމަކު ތިބާގެ ކޯޑާއި ހާޑްވެއާ އާއި ދެމެދު އިށީނދެގެން ތިބީ ތަޖުރިބާކާރު ސިސްޓަމްތަކުގެ ސްޓޭކެއް — ސީ++ ރަންޓައިމް، ސީ ލައިބްރަރީ އެލޮކޭޓަރ، ކާރނަލްގެ ވާޗުއަލް މެމޮރީ ސަބްސިސްޓަމް، އަދި ހާޑްވެއާގެ އެމްއެމްޔޫ އަދި ޓީއެލްބީ — ކޮންމެ ސިސްޓަމްއަކުންވެސް އަމިއްލަ ސުލޫކުތަކާއި އޮޕްޓިމައިޒޭޝަންތަކާއި އޯވަހެޑް އިތުރުކުރެއެވެ.

މިއީ އުނިކަމެއް ނޫނެވެ. އެއީ ސިސްޓަމްސް ސޮފްޓްވެއާގެ މުޅި ޕޮއިންޓެވެ. ކޮންމެ ލޭޔަރެއް އުފެދިފައިވަނީ ހަގީގީ މައްސަލައެއް ހައްލުކުރުމަށް: އެލޮކޭޓަރ އުފެދިފައި ހުރުމުން ކޮންމެ އެލޮކޭޝަނަކަށް ސިސްޓަމް ކޯލްތައް ހަދަން ނުޖެހެއެވެ. ވާޗުއަލް މެމޮރީ ސިސްޓަމް އުފެދިފައިވާތީ ސީދާ ފިޒިކަލް މެމޮރީ މެނޭޖް ކުރަން ނުޖެހެ އެވެ. ޕޭޖް ފޯލްޓް ހެންޑްލަރ އުފެދިފައި ހުރުމުން މެމޮރީ ކޮމިޓް ކުރެވެނީ ލަސްކޮށް އަދި ވަރުގަދަ ގޮތަކަށެވެ. ކޮންމެ ލޭޔަރެއްގައިވެސް ގިނަ އަދަދެއްގެ ޕާފޯމަންސާއި ފަސޭހަކަމަށްޓަކައި ކުޑަ މިންވަރެއްގެ ޓްރާންސްޕޭރެންސީއެއް ޓްރޭޑްކުރެއެވެ.

| ރިއަލް ޓައިމް ޓްރޭޑިން ސިސްޓަމެއް ބިނާކުރިޔަސް، ގޭމް އިންޖީނެއް ބިނާކުރިޔަސް، ނުވަތަ އެތައް ހާސް ޔޫޒަރުންނަށް ހިދުމަތްދޭ ބިޒްނަސް ޕްލެޓްފޯމެއް ބިނާކުރިޔަސް، ސިސްޓަމް ލެވެލްގައި ތިމާގެ ކޯޑުން ހަގީގަތުގައި ކުރާ ކަންކަމާ މެދު ވިސްނުމުގެ ގާބިލްކަމަކީ ގާބިލް ޑިވެލޮޕަރުންނާއި ޚާއްސަ ޑިވެލޮޕަރުން ވަކިކޮށްދޭ ކަމެކެވެ. 72 ކިލޯ ބައިޓް އަކީ ބަގެއް ނޫނެވެ. އެއީ ތިބާގެ އެލޮކޭޓަރ އޭގެ މަސައްކަތް މޮޅަށް ކުރަމުންދާ ކަމެވެ.

މިއަދު ވިޔަފާރީގެ އޮއެސް ބިލްޑް ކުރައްވާ

ފްރީލާންސަރުންގެ ފަރާތުން ފެށިގެން އެޖެންސީތަކާ ހަމައަށް މެވޭޒް އިން 207 އިންޓަގްރޭޓެޑް މޮޑިއުލް އާއި އެކު 138،000+ ވިޔަފާރިތަކަށް ކަރަންޓް ދެއެވެ. ހިލޭ ފެށުން، ބޮޑުވުމުން އަޕްގްރޭޑް ކުރާށެވެ.

ހިލޭ އެކައުންޓް އުފެއްދުން →
އެވެ

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

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 →

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