Saturday, 10 October 2015 Andrew Woods, Thomas Adam, Matthew Welch Memory Leaks Presentation Matthew...

Preview:

Citation preview

Friday, April 21, 2023 Andrew Woods, Thomas Adam, Matthew Welch

Memory Leaks Presentation

Matthew WelchThomas AdamAndrew Woods

Friday, April 21, 2023 Andrew Woods, Thomas Adam, Matthew Welch

Introduction

• What memory leakage is;• How it is handled under:

– Windows;– Linux;– MAC OS;

• Methods that the OS uses to handle memory leaks;• Various third-party applications that handle memory

leakage; • Our own conclusions about how to handle memory leakage;

Friday, April 21, 2023 Andrew Woods, Thomas Adam, Matthew Welch

Memory Leakage

• Continual allocation of memory to a process; • Memory is never freed;• System becomes unresponsive;

Friday, April 21, 2023 Andrew Woods, Thomas Adam, Matthew Welch

Windows

• Virtual Memory ;• Process creation allows entire swap file;• Dynamic Link Libraries (dll's) are usually the culprit;

Friday, April 21, 2023 Andrew Woods, Thomas Adam, Matthew Welch

Linux

• Linux kernel 2.2.X onwards defines Out Of Memory (OOM-killer);

• Processes therefore aren't allowed to consume the entire VM;

• Self-preservation of the kernel;• Parent/Child hierarchy of processes;• Uninterruptible sleep means the parent process must die;

Friday, April 21, 2023 Andrew Woods, Thomas Adam, Matthew Welch

Mac OS

• Mac OS 6 had poor memory design features;• Memory allocated via the concept of pointers;• Fragmentation;• MacOS 9 onwards uses techniques from Linux;• Memory leaks mostly confined to applications;

Friday, April 21, 2023 Andrew Woods, Thomas Adam, Matthew Welch

Introduction to Memory Recovery

• Plugging memory leaks is very similar to doing Garbage Collection.

• Not normally done at the OS level, but at the sandbox / virtual machine level.

• Time and performance issues.

Friday, April 21, 2023 Andrew Woods, Thomas Adam, Matthew Welch

Reference Counting

• References additions/deletions are kept track of.• When a block has no references, it may be deleted.• Very easy to get into a situation where memory is not

recovered.

Friday, April 21, 2023 Andrew Woods, Thomas Adam, Matthew Welch

Mark and Sweep

• Two stage process• Mark – System goes from known memory references

(program stack, global variables, and CPU registers)• Sweep – Any areas not marked are freed for re-use.

Friday, April 21, 2023 Andrew Woods, Thomas Adam, Matthew Welch

Stop and Copy

• Similar to Mark and Sweep, Works against fragmentation also

• Only instead of Sweep, allocated data is copied to a different area

Friday, April 21, 2023 Andrew Woods, Thomas Adam, Matthew Welch

Reference Searching

• Search of *all* memory held by the program.• Considers that any data held in memory could be a memory

reference.• Quite slow.• Single pass.• Can be done repeatedly for better performance.• May not recover all lost memory – a conservative approach.

Friday, April 21, 2023 Andrew Woods, Thomas Adam, Matthew Welch

Smart Pointers and Custom Libraries

• Not an algorithm, more of a programming technique.• Available for many languages, especially C, C++• Normal pointers are ‘operator overloaded’• Prevent dangling pointers, lost objects.• Can provide automatic memory freeing. • Override the standard memory allocation functions to

provide more functionality.

Friday, April 21, 2023 Andrew Woods, Thomas Adam, Matthew Welch

Final Note

• State of the art Garbage Collection is still improving in terms of:

• Execution time• Incremental and interruptible• Approaching suitability for near-real-time systems.

Friday, April 21, 2023 Andrew Woods, Thomas Adam, Matthew Welch

Taking a look at three products that are meant to make memory

management easier.

Friday, April 21, 2023 Andrew Woods, Thomas Adam, Matthew Welch

Why The Need For A Third Party Program

• Windows• Poorly programmed applications• Memory leaks

• Types of memory management software available – Programming Environment – Application Environment

Friday, April 21, 2023 Andrew Woods, Thomas Adam, Matthew Welch

Programs Available• Linux Environment

– Dynamic Leak Check– Qps– Memtester– Asmem

• Windows Environment – MemDefrag 2– MemOptimizer– MemMonster– Release RAM– RamCleaner– Clean Ram– SuperRam– Alto Memory Booster– MemTurbo

Friday, April 21, 2023 Andrew Woods, Thomas Adam, Matthew Welch

MemMonster

Rating for memMonster

Price £25

Value for money 4

File Size KB 785 KB

Ease of use 3

Flexibility/Functions 3

Appearance on screen 3

Increase in performance 300%

Operating System Windows 98/ME/NT/2K/XP and 2003

Developer Magellass Corp

Rating 1 out of 5 3

Friday, April 21, 2023 Andrew Woods, Thomas Adam, Matthew Welch

Alto Memory Booster

Rating for Alto memory

Price £11.10

Value for money 2

File Size KB 1,573 KB

Ease of use 3

Flexibility/Functions 2

Appearance on screen 5

Increase in performance 200%

Operating System Windows 98/ME/NT/2000 and XP

Developer Alto Software

Rating 1 out of 5 3

Friday, April 21, 2023 Andrew Woods, Thomas Adam, Matthew Welch

MemTurbo

Rating for memTurbo

Price £29.95

Value for money 4

File Size KB 796 KB

Ease of use 4

Flexibility/Functions 4

Appearance on screen 5

Increase in performance 200%

Operating System Windows 95/98/NT 4.0/2000 and XP

Developer SoftwareOnline

Rating 1 out of 5 4

Friday, April 21, 2023 Andrew Woods, Thomas Adam, Matthew Welch

ConclusionComparing & Contrasting Software Programs Reviewed

memTurbo memMonster Alto memory

Pros Aim at a more professional due

to Advanced capabilities Reliability and robust Free support for end-user Good help guide Navigation & GUI to a high

quality and standard

Pros Most middle range of the

three packages both in features, functions and price

Easy to configure Offers settings for disk

caching Good value for money

Pros Familiarity, especially on the

desktop (icons) Windows configuration wizard for

auto-set-up Less training needed for users Easy to get started Most cost effective

Cons Least cost effective More training required

Cons Exaggerated claims for

performance (not 300% in trail review)

Navigation is poor & not clearly defined

Cons Lacking features and advanced

functions Not as an effective memory

management software program compared to memTurbo or memMonster

Double the file size compared to memTurbo & memMonster

Questionable reliability and efficiency

Top range package for middle to advance user

Middle range package for novice to beginner

Lower range package for beginner

Friday, April 21, 2023 Andrew Woods, Thomas Adam, Matthew Welch

Towards a Leak Free OS?

• First Line: ‘Mark and Sweep’• Second Line: Restricting the number of memory pages that

the process may consume.• Why?• Effectiveness: These methods combined should effectively:

– Prevent memory leakage, by recovering memory from leaky processes– For runaway processes, terminating them.

• Disadvantages– Timing– Interruptions for GC

Recommended