దాదాపు నాలుగు సంవత్సరాల విరామం తర్వాత (చూడండి "జెమల్లాక్ ప్రతిదీ») అలోకేటర్ యొక్క 5.3.1 విడుదల జరిగింది జెమల్లాక్ – malloc(3) యొక్క అమలు, ఇది ఫ్రాగ్మెంటేషన్ నివారణ మరియు స్కేలబుల్ కాంకరెన్సీకి మద్దతుపై దృష్టి పెడుతుంది.
ఈ కొత్త విడుదలలో బగ్ పరిష్కారాలు, కొత్త ఫీచర్లు, పనితీరు ఆప్టిమైజేషన్లు మరియు పోర్టబిలిటీ మెరుగుదలలతో కూడిన 390కి పైగా కమిట్లు ఉన్నాయి.
ఈ ప్రాజెక్ట్ C భాషలో వ్రాయబడింది మరియు BSD లైసెన్స్ క్రింద పంపిణీ చేయబడింది.
కొత్త అవకాశాలు:
- pvalloc(3) మద్దతు.
- డీబగ్ బిల్డ్లో డబుల్ ఫ్రీ కనుగొనబడింది;
- మెమరీ-మ్యాప్డ్ అనొటేషన్ను ఎనేబుల్ చేయడానికి --enable-pageid కంపైల్ ఆప్షన్ జోడించబడింది.
- ప్రొఫైలింగ్ కోసం గరిష్ట స్టాక్ డెప్త్ను నియంత్రించడానికి prof_bt_max అనే రన్టైమ్ పారామీటర్ జోడించబడింది;
- secure_getenv కు బదులుగా getenv ను ఉపయోగించడానికి --enable-force-getenv కంపైల్ ఆప్షన్ జోడించబడింది;
- sbrk(2) వాడకాన్ని నిలిపివేయడానికి --disable-dss కంపైల్ ఆప్షన్ జోడించబడింది;
- థ్రెడ్ కాష్లోని అంశాల సంఖ్యను నియంత్రించడానికి tcache_ncached_max అనే కంపైల్ ఆప్షన్ జోడించబడింది.
- callocను పిలిచేటప్పుడు కేటాయించిన మెమరీ బ్లాక్లను సున్నా చేయడానికి కెర్నల్ లేదా మెమ్సెట్ ఉపయోగించబడుతుందో లేదో నిర్ధారించడానికి calloc_madvise_threshold అనే రన్టైమ్ పారామీటర్ జోడించబడింది;
- రన్టైమ్లో /etc/malloc.conf ఫైల్ నుండి లేదా MALLOC_CONF ఎన్విరాన్మెంట్ వేరియబుల్ నుండి కాన్ఫిగరేషన్లను చదవడం నిలిపివేయడానికి --disable-user-config కంపైల్-టైమ్ ఆప్షన్ జోడించబడింది.
- కొత్తగా అందుబాటులో ఉన్న సైజు గణన అల్గోరిథంను ఎనేబుల్ చేయడానికి disable_large_size_classes అనే రన్టైమ్ పారామీటర్ జోడించబడింది, ఇది పెద్ద మెమరీ బ్లాక్లను, అంటే 4 * PAGE కంటే ఎక్కువ లేదా సమానమైన సైజుతో కేటాయించేటప్పుడు మెమరీ ఓవర్హెడ్ను తగ్గిస్తుంది;
- process_madvise వాడకాన్ని ఎనేబుల్ చేసి, ప్రతి madvise "batch" లో గరిష్ట మెమరీ రీజియన్ల సంఖ్యను నియంత్రించడానికి process_madvise_max_batch అనే రన్టైమ్ పారామీటర్ను జోడించడం జరిగింది;
- mallctl ఇంటర్ఫేస్లు జోడించబడ్డాయి:
- opt.prof_bt_max;
- అరీనా..
- ప్రస్తుత థ్రెడ్ యొక్క tcache_max ను పొందడానికి thread.tcache.max ను మార్చండి;
- ప్రస్తుత థ్రెడ్ యొక్క ncached_max ను మార్చడానికి మరియు పొందడానికి thread.tcache.ncached_max.write మరియు thread.tcache.ncached_max.read_sizeclass;
- arenas.hugepage అనేది ఉపయోగించిన హ్యూజ్పేజ్ పరిమాణాన్ని తిరిగి ఇస్తుంది, అలాగే malloc statsకు ఎగుమతి చేయబడుతుంది;
- ప్రస్తుత యాక్టివ్ బైట్ల మొత్తం యొక్క సుమారు విలువను పొందడానికి approximately_stats.active ఉపయోగపడుతుంది, దీనిని ఇతర పొందిన గణాంకాలతో పోల్చకూడదు.
- అనేక బగ్స్ కూడా సరిచేయబడ్డాయి మరియు డాక్యుమెంటేషన్ మెరుగుపరచబడింది.
మూలం: linux.org.ru
