Автор оригинала: Bhawna Tuteja.
В нашей повседневной жизни, работая над программным обеспечением, мы все, должно быть, видели ниже проблем. • Приложение разбилось • Приложение зависело • Прерывистые проблемы • Услуги остановлены • Вопросы времени ожидания • Применение плохой производительности • При запуске одной программы разбилась другая программа. Любые догадки, почему это происходит ?? Наиболее распространенной причиной всех этих проблем является «утечка памяти», утечка памяти – это постепенная потеря доступной памяти компьютеров, когда программа (приложение или часть операционной системы) неоднократно не возвращает память, которую она получила для временного использования , В результате доступная память для этого приложения или ту часть операционной системы становится исчерпана, и программа больше не может функционировать. Для программы, которая часто открывается или вызывается, или она работает непрерывно, даже очень маленькая утечка памяти может в конце концов вызвать завершение программы или системы. На языке Mayman есть два способа решения проблем утечки памяти ..
- Сделать приложение мало
- Получить (выделить) Больше памяти Лучший выход из этого (2) выделяет память, но когда необходимо. В срок компьютера это называется Memory Management. «Управление памятью состоит в том, чтобы обеспечить способы динамически выделения порций памяти для программ по их запросу и освободить его для повторного использования, когда больше не нужны» Один из лучших способов сделать это – делать управление памятью на стороне приложения.
Вот некоторые из лучших практик, следующих в отрасли для обработки проблем, связанных с памятью на стороне приложений. Лучшие практики: C # • Создайте только объекты как и при необходимости и распоряжаться его после использования. • Решите объем для каждой переменной и объекта, если они требуются внутри методов, объявляют их внутри тех методов, не делайте их частным • Используйте idisposable Interfaces на ваших пользовательских объектах и выпустите все ресурсы (если есть), не регистрируйте из всех событий и т. Д. • Используйте «Использование», если вы работаете с MemoryStream • Используйте наименьшие статические переменные или экземпляры, если требуется, то подумайте, что эти объекты требуются во всей жизни программы • Не используйте gc.collect () вручную, (это плохая практика) Лучшие практики: JavaScript «Исходя из сборки мусора, как в C #» • Всегда сохраняйте обновление расширения браузера • Используйте массивный фильтр • Используйте статические буферы, где это возможно. Компилятор автоматически освобождает такую память. • Ранее выделенная память должна быть освобождена вручную, после того, как она больше не требуется. • Используйте ~~ вместо математических функций • Для опорожнения и массива используйте длину • Слияние массива с помощью Push вместо Concat • Используйте SPLICE, чтобы удалить элемент массива • Получите значение по умолчанию, используя Лучшие практики: Python «Не основанный на сборке мусора, но это обрабатывает управление памятью» • Используйте слоты для ваших объектов • Удобрение: остерегайтесь интернированных струн! • Используйте формат вместо «+» для генерации строк • Используйте модули • Используйте встроенные функции, где это возможно: • Используйте многопроцессорную не многопоточность • Конструкция дизайна и данных • выбрать правую версию Лучшие практики: C ++ «Вам нужно написать код о управлении памятью» • повторное использование памяти; Постарайтесь избегать выделения/освобождения • Используйте макросы вместо небольших функций • Используйте int, float вместо char • Постарайтесь избегать глобальных переменных • Используйте умные указатели