top 20 memory leak detection tools
Списак и упоређивање најбољих алата за откривање и управљање цурењем меморије за Јава, ЈаваСцрипт, Ц, Ц ++, Висуал Студио на Линук, Виндовс и Андроид системима:
Овај водич ће вас упознати са новим концептом који није ништа друго до Управљање цурењем меморије .
Наши системски програми имају проблема са меморијом док се изводе на машинама, што заузврат може проузроковати уништавање алокације меморије.
Цурење меморије погоршава перформансе система смањењем количине меморије доступне за сваки програм у вашем систему. Ове проблеме са меморијом обично одређују и решавају програмери који приступају изворном коду софтверског система.
апликација која вам омогућава да шпијунирате друге телефоне
Данашњи модерни оперативни системи прилагодљиви су проблемима меморије. Они тренутно смањују потрошњу меморије и ослобађају меморију коју заузимају апликације након што се затвори.
У овом упутству ћемо размотрити којим се цурењем меморије тачно бави и како поступати са његовим алатима.
Шта ћете научити:
- Врхунски алати за откривање и управљање цурењем меморије
- # 1) ГЦеаси
- # 2) Ецлипсе МАТ
- # 3) Мемцхецк од Валгринда
- # 4) ГловЦоде
- # 5) АКТиме компаније Смартбеар
- # 6) ВинДбг
- # 7) БоундсЦхецкер
- # 8) Делеакер
- # 9) Др Меморија
- # 10) Интел Инспецтор КСЕ
- # 11) Осигурајте ++
- # 12) Визуелни детектор цурења за Висуал Ц ++ 2008-2015
- # 13) Висуал Студио Профилер
- # 14) Мтунер
- # 15) Детектор цурења система Виндовс
- # 16) Адреса Санитизер (А Сан)
- # 17) ГЦВиевер
- # 18) Плумбр
- # 19) .НЕТ Валидатор меморије
- # 20) Ц ++ Мемори Валидатор
- # 21) Динатраце
- Додатни алати за цурење меморије
- Закључак
- Препоручено читање
Шта је цурење меморије?
# 1) Када рачунарски програм непотребно користи меморију и неправилно је распоређује, тада на крају узрокује цурење меморије у систему.
#два) Понекад систем не ослобађа нежељену алокацију меморије, као што је није ослободио ни након затварања апликације или програма.
# 3) Када програм потроши више од стварне меморије, као резултат, доћи ће до проблема са меморијом и успоравања перформанси система.
# 4) У смислу објектно оријентисаног програмирања, ако је објекат ускладиштен у меморији, али му програмски код не може приступити (дефинисао је објекат и доделио меморију, али ипак добијамо грешку која наводи да објекат није дефинисан).
# 5) Постоје неки програмски језици као што су Ц и Ц ++ који не подржавају аутоматско прикупљање смећа имплицитно и могу створити такве проблеме са цурењем меморије док раде на њему (Јава користи поступак сакупљања смећа да би се бавио цурењем меморије).
# 6) Цурење меморије смањује перформансе система смањењем количине доступне меморије, повећањем количине уситњавања и на крају узрокујући квар или успоравање система.
# 7) Управљање цурењем меморије је механизам који се покреће у оперативном систему за динамичку алокацију меморије и ослобађање када се не користи.
Врсте цурења меморије
Цурење меморије може се сврстати у неколико типова, а неколико од њих је објашњено у наставку.
- Члан који је процурио: Додељена меморија за члана класе се ослобађа пре него што се класа уништи.
- Процурила глобална меморија: Пропушта меморију која није део створене класе, али се може користити различитим функцијама и методама.
- Процурила статичка меморија: Пропушта меморију која је посвећена функцији дефинисаној створеном класом.
- Цурење виртуелне меморије: Када основна класа није декларисана као виртуелна, тада се деструктори изведеног објекта не могу позвати.
- Позивање погрешног посредника.
Управљање цурењем меморије
# 1) Цурење меморије наставља се када нема референце за додељивање меморије.
#два) Таква цурења меморије узрокују да програм ради више од очекиваног времена и троши вишак меморије непрекидним извођењем у позадини или на серверу.
# 3) Цурење меморије више утиче на преносне уређаје јер садрже мање меморије и смањују процесорски капацитет уређаја.
# 4) Можемо узетиПример.НЕТ система за управљање цурењем меморије попут,
- ЦЛР (Цоммон Лангуаге Рунтиме) брине се о расподели ресурса у .НЕТ-у и ослобађа их.
- .НЕТ подржава 3 типа алокације меморије као што су:
- Гомила: Похрањује локалне параметре променљиве и методе. Референца на сваки створени објекат чува се у Стацк-у.
- Неуправљана гомила: Неуправљани код ће доделити објекат на неуправљаном стеку.
- Управљана гомила: Управљани код ће алоцирати објекат на управљани стек.
# 5) Сакупљач смећа проверава да ли постоје објекти који се не користе, а када их пронађе, Сакупљач смећа их уклања.
# 6) Гарбаге Цоллецтор управља стаблом или структуром сличном графу да провери корене апликација на сваки директно и индиректно доступан објекат и ако се пронађу неки објекти који нису присутни, онда их једноставно ставља у колекцију смећа.
Сада ћемо прегледати неке популарне алате за управљање цурењем меморије који се широко користе за управљање цурењем меморије.
******************
= >> Контактирајте нас да предложим списак овде.
*****************
Врхунски алати за откривање и управљање цурењем меморије
Доље је дата листа најчешће коришћених алата за откривање и управљање цурењем меморије.
# 1) ГЦеаси
- Овај бесплатни алат брзо решава проблеме са меморијом и познат је као одличан анализатор меморије.
- То је први алат за анализу дневника сакупљања смећа који се води машински.
- Подржава и све Андроид ГЦ евиденције, користи алгоритам машинског учења за откривање проблема са меморијом и такође обавештава о будућим проблемима.
- Аутоматско откривање проблема, тренутна ГЦ анализа на мрежи, обједињена анализа евидентирања ГЦ неке су од важних карактеристика овог алата.
Кликните овде да бисте дошли до званичне странице ГЦеаси.
# 2) Ецлипсе МАТ
- Ецлипсе МАТ је познат као брз и опремљен Јава Хеап Анализер.
- Овај алат помаже у смањењу потрошње меморије и откривању цурења меморије.
- Генерише аутоматске извештаје генеришући информације о грешци која спречава сакупљач смећа да сакупља предмете.
- Главни фокус овог алата остаје на великој потрошњи меморије и грешкама изван меморије.
- Овај пројекат укључује Ецлипсе Пхотон, Ецлипсе Окиген, Неон, Кеплер итд.
Кликните овде да бисте прешли на службену страницу Ецлипсе МАТ.
# 3) Мемцхецк од Валгринда
- Мемцхецк може открити следеће проблеме са меморијом на основу маллоц-а, нових, бесплатних и брисати меморијске позиве:
-
- Неиницијализовано сећање
- Изгубљени показивачи
- Коришћење ослобођене меморије
- Приступ неодговарајућим областима на стеку
-
- Аутоматски проверава и усмерава параметре где год су дефинисани.
- Мемцхецк би Валгринд је комерцијални софтвер за откривање грешака у меморији.
- Корисно је открити грешке у меморији које су се догодиле у Ц и Ц ++.
- Такође, Мемцхецк проверава да ли је бафер дефинисан програмом адресиван или не.
- Мемцхецк води евиденцију блокова гомиле како би препознао неслободни блок након што се изађе из програма.
Кликните овде да бисте прешли на службену страницу Мемцхецк.
# 4) ГловЦоде
- ГловЦоде је наменски комерцијални анализатор перформанси и меморије у реалном времену за Виндовс и .НЕТ Фрамеворк.
- ГловЦоде идентификује цурење меморије у покренутим апликацијама написаним на језику који је компатибилан са Ц ++, Ц # или НЕТ.
- Такође се проверава проток перформанси, покривеност кода и прекомерна потрошња меморије.
- Подржава Виндовс 10 и Виндовс Сервер 2016 и пружа рано откривање проблема са перформансама и меморијом у покренутом систему.
- Подржава изворни, управљани и мешовити код.
Кликните овде за навигацију до званичне странице ГловЦоде.
# 5) АКТиме компаније Смартбеар
- АКТиме је власнички алат компаније Смартбеар који подржава Делпхи, Ц #, Ц ++, .НЕТ, Јава итд.
- Открива цурења меморије, уска грла у перформансама и празнине у покривању кода у апликационом систему.
- Ефикасно анализира информације о сложеној меморији и перформансама да би идентификовао грешку са основним узроком.
- Најбржи приступ откривању цурења меморије, празнина у покривености кода и уских грла у перформансама.
- Врх-до-дна Делпхи анализа апликације за идентификовање цурења меморије и ресурса.
Кликните овде да бисте прешли на службену страницу АКТиме.
# 6) ВинДбг
- Виндбг за Виндовс користи се за идентификовање депонија меморије језгра и испитивање регистра процесора.
- Долази у другачијој верзији за Виндовс уређаје, Веб и Десктоп апликације.
- Карактеристика идентификовања депонија отказивања у корисничком режиму позната је под називом „Отклањање грешака у пост-мортем“.
- Можете да примените ДЛЛ екстензије за отклањање грешака у наредбеном језику (ЦЛР).
- Виндбг долази са унапред учитаним Ект.длл-ом који се користи као стандардно проширење програма Виндовс за отклањање грешака.
Кликните овде за навигацију до званичне веб странице Виндбг.
# 7) БоундсЦхецкер
- Ово је власнички алат за меморију и алат за валидацију АПИ-ја за Ц ++ софтвер.
- Постоје два АцтивеЦхецк и ФиналЦхецк, АцтивеЦхецк врши се против пријаве и ФиналЦхецк користи се за проверу инструменталне форме система.
- АцтивеЦхецк може открити цурење меморије надгледањем АПИ и ЦОМ позива.
- ФиналЦхецк долази са карактеристикама АцтивеЦхецк-а, заједно са способношћу откривања преливања бафера и недефинисане меморије.
- Откривање прекорачења меморије је најбоља карактеристика по којој је БоундсЦхецкер познат.
Кликните овде да бисте дошли до званичне странице БоундсЦхецкер.
# 8) Делеакер
- Делеакер је самостални власнички алат за откривање цурења меморије и користи се и као екстензија Висуал Ц ++.
- Открива цурење меморије у гомили и виртуелној меморији и лако се интегрише са било којим ИДЕ-ом.
- Самостална верзија отклања грешке у апликацији да би приказала тренутну алокацију објеката.
- Подржава све 32-битне као и 64-битне системе и потпуно интегрисан у Висуал Студио.
- Генерише богате извештаје и извози коначни исход у КСМЛ.
Кликните овде да бисте дошли до званичне странице Делеакер-а.
# 9) Др Меморија
- Др. Мемори је бесплатан алат за надгледање меморије за Виндовс, Линук и Мац.
- Овај алат је у стању да идентификује неиницијализовану меморију и адресу која се не може адресирати и ослободити меморију.
- Др. Мемори дефинише 3 врсте грешака:
-
-
- Још увек - доступна локација: меморија доступна апликацији.
- Цурење: меморија којој апликација не може приступити.
- Могуће цурење: Меморија до које се долази помоћу показивача.
-
-
- Даље, дефинише две врсте цурења као што су а Дирецт и Индиректан цурење.
Кликните овде да бисте дошли до званичне странице Делеакер-а.
# 10) Интел Инспецтор КСЕ
- Овај заштићени алат помаже у раном откривању цурења меморије и помаже у смањењу трошкова за поправљање цурења меморије.
- Познат као програм за отклањање грешака за програме Ц, Ц ++ који се изводе на Виндовс-у и Линук-у без употребе посебног компајлера.
- Такође је доступан као део Интел Параллел Студио КСЕ и Интел Систем Студио.
- Интел Инспецтор КСЕ врши статичку и динамичку анализу како би идентификовао основни узрок цурења меморије.
- Динамичка анализа открива сложене основне узроке цурења меморије која се не откривају статичком анализом.
- Открива оштећену меморију, нелегални приступ меморији, неиницијализовану меморију и недоследну меморију итд.
Кликните овде за навигацију до званичне странице Интел Инспецтор КСЕ.
# 11) Осигурајте ++
- Парасофт Инсуре ++ је власнички програм за исправљање грешака комерцијалне меморије за Ц / Ц ++.
- Аутоматски открива нетачна кршења везана за низ, нераспоређену меморију.
- Може извршити праћење стека када се догодило стварно цурење.
- За скуп тестираног кода Инсуре ++ производи Линеар Цоде Секуенце и Јумп Цоде Секуенце.
Кликните овде да бисте прешли на службену страницу Инсуре ++.
# 12) Визуелни детектор цурења за Висуал Ц ++ 2008-2015
- Висуал Леак Детецтор је бесплатан алат за откривање цурења меморије отвореног кода за Ц / Ц ++.
- Брзо дијагностикује цурење меморије у апликацији Ц ++ и бира модул који треба искључити из цурења меморије.
- Висуал Ц ++ пружа уграђену детекцију цурења меморије и користи читав скуп процурјелих блокова.
- Прилагодљиви и детаљни извештаји о цурењу меморије су најбоља карактеристика овог алата.
- Омогућава библиотеци пуни документовани изворни код.
Кликните овде за навигацију до тхе Визуелни детектор цурења Службена страница.
# 13) Висуал Студио Профилер
- Висуал Студио долази са алатком за употребу меморије која помаже у откривању цурења меморије и неефикасне меморије.
- Ова алатка се користи за апликације за рачунаре, АСП.НЕТ и Виндовс апликације.
- Можете да направите снимке управљане и изворне меморије и можете да анализирате појединачне снимке да бисте разумели утицај објекта на меморију.
- Можете да користите више снимака да бисте пронашли основни узрок прекомерне употребе меморије.
- Омогућава библиотеци пуни документовани изворни код.
Кликните овде за навигацију до тхе Висуал Студио Профилер Службена страница.
# 14) Мтунер
- Мтунер је претраживач цурења меморије који се користи за Виндовс апликације и ПлаиСтатион.
- Пружа додатне функције за профилисање меморије.
- Мтунер може да поднесе одређени број расподела у секунди уз линеарно скалирање перформанси.
- Мтунер долази са профилирањем заснованим на командној линији које је корисно за праћење дневних промена у коришћењу меморије.
Кликните овде за навигацију до тхе Мтунер Службена страница.
# 15) Детектор цурења система Виндовс
- Виндовс Леак Детецтор је алат за откривање цурења меморије за Виндовс апликацију.
- Неки од главних откривача пропуштања система Виндовс су:
-
-
- Није потребан изворни код, а ако постоји, онда је потребно мање модификација.
- Може да анализира било коју Виндовс апликацију написану на било ком језику.
- Ефикасан и најпогоднији за наношење развијен у цикличном обрасцу.
-
-
- Овај алат се непрекидно развија и још увек има одређена ограничења:
-
-
- Можете управљати само једним појединачним процесом, функција комуникације међу процесима ће бити додата у будућности.
- Анализира само функције ХеапАллоц, ХеапРеаллоц и ХеалФрее.
-
-
Програмери система раде на додавању више меморијских функција попут ХеапЦреате.
Кликните овде за навигацију до тхе Званична страница Виндовс Детецтор Леак.
# 16) Адреса Санитизер (А Сан)
- Овај алат отвореног кода дизајниран је за откривање цурења меморије у програму Ц / Ц ++.
- Најбржи алат састоји се од модула за компилацију инструментације и библиотеке у току.
- Овај алат проналази преливање бафера Хеап и Стацк и цурење меморије.
- ЛеакСанитизер је интегрисан са АддрессСанитизер-ом који обавља посао откривања цурења меморије.
- Помоћу ЛеакСанитизер-а можемо одредити упутство за игнорисање неких цурења меморије слањем у посебну датотеку за сузбијање.
- Овај алат је подржан на Линук, Мац, ОС Кс, Андроид и иОС Симулатору.
Кликните овде за навигацију до тхе АддрессСанитизер Службена страница.
# 17) ГЦВиевер
- ГЦВиевер је бесплатан алат који генеришу ИБМ, ХП, Сун Орацле и БЕА ЈВМ.
- Овај алат се користи за рашчлањивање и анализу датотека ГЦ дневника.
- Податке можете генерисати у ЦСВ формату као апликацију за табеле.
- Ради на вербосе Гарбаге Цоллецтион. Опширно сакупљање смећа укратко је:
-
- Прикупљање смећа засновано на догађајима за сваку операцију.
- Излазно Вербосе Гарбаге Цоллецтион садржи прираштај ИД и локалну временску ознаку.
-
Кликните овде за навигацију до тхе ГЦВиевер Службена страница.
# 18) Плумбр
Јава аутоматизација тестирање интервју питања и одговори
- То је власнички комерцијални алат који се користи за проверу цурења меморије и сакупљања смећа у ЈВМ апликацији.
- Плумбр се заснива на два важна модула као што су агент и портал.
- Агент подржава ЈВМ и шаље информације о сакупљању смећа и цурењу меморије на портал.
- Информације о употреби меморије и гомили можете видети на порталу.
- Алат користи алгоритам откривања који се заснива на анализи података о перформансама.
Кликните овде за навигацију до тхе Плумбр Званична страница.
# 19) .НЕТ Валидатор меморије
- .НЕТ Мемори Валидатор је комерцијални анализатор цурења меморије, меморијски профилер који се користи за развој софтвера и осигурање квалитета.
- Познат као најбржи начин праћења вишеструке алокације меморије пружајући вишеструке увиде, као што су:
-
- Издвајања: Приказује статистику додељивања у боји кодирану на основу класе и
метода дефинисана за додељивање функције. - Објекти: Приказ објекта приказује алокацију објеката и меморије кодираних у боји
статистика за покренуте апликације. - Генерације: Приказује број објеката по типу објекта за сваки објекат
генерација додељена апликацијом. - Меморија: Приказ меморије приказује тренутни објекат са информацијама о њему
тип објекта, величина алокације и стек позива, временска ознака. - Анализа: Овај приказ приказује употребу меморије.
- Издвајања: Приказује статистику додељивања у боји кодирану на основу класе и
-
- Главне функције овог алата укључују откривање цурења меморије, руковање цурењем меморије, извођење регресивних тестова за идентификацију цурења меморије.
- .НЕТ валидатор меморије компатибилан је са било којом верзијом .НЕТ фрамеворк-а и ЦЛР-а.
- Једноставан за употребу, подесив, моћан и вишенаменски алат за препознавање цурења меморије.
Кликните овде за навигацију до тхе .НЕТ валидатор меморије Службена страница.
# 20) Ц ++ Мемори Валидатор
- Баш као и .НЕТ Мемори Валидатор, овај алат је такође комерцијални детектор и анализатор цурења меморије.
- Ц ++ Мемори Валидатор пружа вишеструке увиде као што су:
-
- Меморија: Приказује информације о додељеној и процурелој меморији и прати поруке о грешкама. Подаци су приказани у структури стабла која се може одабрати и филтрирати.
- Објекти: Приказује статистику објеката с типом објекта и додијељеним, додијељеним и прерасподијељеним објектима.
- Покривеност: Овај приказ пружа информације о коришћењу меморије. Алат долази са филтерима који уклањају датотеке независних произвођача.
-
- Објекат за аутоматско спајање помаже обједињавању вишеструких статистичких података из више увида како би се формирало сложено покриће за пакет за регресиону пробу.
- Осим ових увида, алат пружа приказ апликације Временска црта, Жаришна тачка, Величине и Анализа.
- Моћан и подесив алат компатибилан са Мицрософт Ц и Ц ++, Интел Ц ++ итд.
Кликните овде за навигацију до тхе Ц ++ Мемори Валидатор Службена страница.
# 21) Динатраце
- Динатраце је комерцијални алат који подржава Алл-ин-Оне Перформанце Манагемент (Управљање учинком све у једном) и садржи надзор пуног слога, анализу једне трансакције.
- Пружа алате за откривање цурења меморије за одређивање потрошње меморије.
- Динатраце Јава алати за откривање цурења меморије доступни су за апликације написане на Јави, а .НЕТ Профилер Тоолс користе се за апликације покренуте на Јави.
- Помоћу јединственог приказа приступне тачке можете пронаћи објекат који меморију не користи ефикасно.
- Можете изводити меморијске трендове одбацивања употребе меморије. Овај алат помаже у идентификовању објеката који континуирано повећавају потрошњу меморије и који се не уклањају правилно из меморије.
Кликните овде за навигацију до тхе Динатраце Службена страница.
Додатни алати за цурење меморије
Ово су неки од широко коришћених алата за откривање цурења меморије. Листа овде још увек није готова, постоје и неки други алати који се користе за постизање исте сврхе.
Укратко ћемо их прегледати:
# 22) НетБеанс Профилер :
НетБеанс Профилер је заштићени Јава алат за профилисање развијен са карактеристикама попут меморије, нити, СКЛ упита итд. Данас овај алат долази са неким новим и напредним функцијама за руковање депонијама нити.
УРЛ: НетБеанс Профилер
# 23) Мтраце :
Мтраце је уграђен у глибц (ГНУЦ је пројекат библиотеке за успешну примену Ц стандардне библиотеке) који се користи за откривање цурења меморије узрокованих необичним маллоц / бесплатним позивима.
Једном позван зауставља додељивање меморије објектима. Мтраце Перл скрипта се користи за скенирање датотеке евиденције створене за цурење меморије. Такође, ако му дате изворни код, тада се може разумети тачна локација на којој се проблем појавио.
УРЛ: Мтраце
# 24) Јава Висуал ВМ :
Висуал ВМ је врло користан алат за програмере за праћење и праћење цурења меморије. Анализира податке о гомили и сакупљач смећа. Обезбеђује оптимизовано коришћење меморије и помаже у побољшању перформанси апликације.
Нуди функције као што су Анализа нити и Анализа депоније хеап-а за решавање проблема током извођења.
Овде смо завршили са најпопуларнијим алаткама за управљање цурењем меморије. Можемо одабрати једно или више по критичним меморијским областима у нашем систему.
Такође, употребом овог софтвера можемо не само да олакшамо задатак већ и да смањимо потрошњу времена потребну за откривање цурења меморије, што је релативно досадан задатак.
УРЛ: Јава Висуал ВМ
Закључак
Алати за управљање цурењем меморије смањују удео напора и времена утрошеног на управљање меморијом. Управљање приступом меморији и додељивањем и праћењем цурења су толико важан задатак јер је меморија окосница сваког софтвера за ефикасно задржавање и управљање подацима.
Опет, без правилне алокације меморије не може се чак ни покренути систем апликација. Да бисмо избегли квар система и побољшали његове перформансе, морамо извршити управљање цурењем меморије.
Имајући ову потребу на уму, многе организације користе алате доступне за то, док ће на крају олакшати ствари себи и крајњим корисницима.
******************
= >> Контактирајте нас да предложим списак овде.
******************
Препоручено читање
- Како поправити цурење меморије у Андроид апликацијама помоћу ДДМС алата
- Најбољи алати за тестирање софтвера 2021. године (КА Тест Аутоматион Тоолс)
- Примена Јава-а: Стварање и извршавање Јава ЈАР датотеке
- Јава виртуелна машина: како ЈВМ помаже у покретању Јава апликације
- Приступити модификаторима у Јави - Водич са примерима
- Водич за Јава рефлексију са примерима
- Увод у програмски језик Јава - Видео водич
- 25 најбољих Јава оквира за тестирање и алата за аутоматско тестирање (3. део)