{"id":{"repo_id":"purdue-thes","oai_identifier":"oai:docs.lib.purdue.edu:open_access_dissertations-2164"},"canonical_url":"https://search.dev.ndltd.org/etd/purdue-thes/oai:docs.lib.purdue.edu:open_access_dissertations-2164","repository":{"repo_id":"purdue-thes","name":"Purdue University","base_url":"https://docs.lib.purdue.edu/do/oai/"},"display":{"title":"Effective memory management for mobile environments","abstract":"<p>Smartphones, tablets, and other mobile devices exhibit vastly different constraints compared to <em>regular</em> or <em>classic</em> computing environments like desktops, laptops, or servers. Mobile devices run dozens of so-called <em>“apps”</em> hosted by independent virtual machines (VM). All these VMs run concurrently and each VM deploys <em>purely local</em> heuristics to organize resources like memory, performance, and power. Such a design causes conflicts across all layers of the software stack, calling for the evaluation of VMs and the optimization techniques specific for mobile frameworks.</p> <p>In this dissertation, we study the design of managed runtime systems for mobile platforms. More specifically, we deepen the understanding of interactions between <em>garbage collection</em> (GC) and system layers. We develop tools to monitor the memory behavior of Android-based apps and to characterize GC performance, leading to the development of new techniques for memory management that address energy constraints, time performance, and responsiveness.</p> <p>We implement a GC-aware frequency scaling governor for Android devices. We also explore the tradeoffs of power and performance <em>in vivo</em> for a range of realistic GC variants, with established benchmarks and real applications running on Android virtual machines. We control for variation due to dynamic voltage and frequency scaling (DVFS), Just-in-time (JIT) compilation, and across established dimensions of heap memory size and concurrency. Finally, we provision GC as a global service that collects statistics from all running VMs and then makes an informed decision that optimizes across all them (and not just locally), and across all layers of the stack.</p> <p>Our evaluation illustrates the power of such a central coordination service and garbage collection mechanism in improving memory utilization, throughput, and adaptability to user activities. In fact, our techniques aim at a sweet spot, where total on-chip energy is reduced (20–30%) with minimal impact on throughput and responsiveness (5–10%). The simplicity and efficacy of our approach reaches well beyond the usual optimization techniques.</p>","abstract_html":"&lt;p&gt;Smartphones, tablets, and other mobile devices exhibit vastly different constraints compared to &lt;em&gt;regular&lt;/em&gt; or &lt;em&gt;classic&lt;/em&gt; computing environments like desktops, laptops, or servers. Mobile devices run dozens of so-called &lt;em&gt;“apps”&lt;/em&gt; hosted by independent virtual machines (VM). All these VMs run concurrently and each VM deploys &lt;em&gt;purely local&lt;/em&gt; heuristics to organize resources like memory, performance, and power. Such a design causes conflicts across all layers of the software stack, calling for the evaluation of VMs and the optimization techniques specific for mobile frameworks.&lt;/p&gt; &lt;p&gt;In this dissertation, we study the design of managed runtime systems for mobile platforms. More specifically, we deepen the understanding of interactions between &lt;em&gt;garbage collection&lt;/em&gt; (GC) and system layers. We develop tools to monitor the memory behavior of Android-based apps and to characterize GC performance, leading to the development of new techniques for memory management that address energy constraints, time performance, and responsiveness.&lt;/p&gt; &lt;p&gt;We implement a GC-aware frequency scaling governor for Android devices. We also explore the tradeoffs of power and performance &lt;em&gt;in vivo&lt;/em&gt; for a range of realistic GC variants, with established benchmarks and real applications running on Android virtual machines. We control for variation due to dynamic voltage and frequency scaling (DVFS), Just-in-time (JIT) compilation, and across established dimensions of heap memory size and concurrency. Finally, we provision GC as a global service that collects statistics from all running VMs and then makes an informed decision that optimizes across all them (and not just locally), and across all layers of the stack.&lt;/p&gt; &lt;p&gt;Our evaluation illustrates the power of such a central coordination service and garbage collection mechanism in improving memory utilization, throughput, and adaptability to user activities. In fact, our techniques aim at a sweet spot, where total on-chip energy is reduced (20–30%) with minimal impact on throughput and responsiveness (5–10%). The simplicity and efficacy of our approach reaches well beyond the usual optimization techniques.&lt;/p&gt;","abstract_has_math":false,"creators":["Hussein, Ahmed Mohamed Abd-elhaffiez"],"institution":null,"degree_name":"Doctor of Philosophy (PhD)","degree_level":"Dissertation","degree_discipline":"Computer Science","degree_department":null,"school":null,"contributors":["Antony L. Hosking","Mathias Payer","Suresh Jagannathan","Xiangyu Zhang"],"advisors":[],"committee_chairs":[],"committee_members":[],"year":2016,"date_issued":"2016-12-01T08:00:00Z","date_published":"2016-12-01T08:00:00Z","updated_at":"2026-07-24T03:54:09Z","subjects":["Applied sciences","Android","Garbage collection","Mobile","Power","Virtual machine","Computer Sciences"],"languages":[],"rights":[],"rights_urls":[],"identifier_entries":[]},"links":{"outbound_url":"https://docs.lib.purdue.edu/open_access_dissertations/941","outbound_label":"Repository record","outbound_source":"dc:identifier"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor","label":"Contributor","values":["Antony L. Hosking","Mathias Payer","Suresh Jagannathan","Xiangyu Zhang"]},{"key":"dc:creator","label":"Author","values":["Hussein, Ahmed Mohamed Abd-elhaffiez"]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"thesis:degree_discipline","label":"Discipline","values":["Computer Science"]},{"key":"thesis:degree_level","label":"Degree Level","values":["Dissertation"]},{"key":"thesis:degree_name","label":"Degree Name","values":["Doctor of Philosophy (PhD)"]}]},{"id":"subjects_keywords","label":"Subjects and Keywords","entries":[{"key":"dc:subject","label":"Dc Subject","values":["Applied sciences","Android","Garbage collection","Mobile","Power","Virtual machine","Computer Sciences"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier","label":"Identifier","values":["https://docs.lib.purdue.edu/open_access_dissertations/941"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description.abstract","label":"Abstract","values":["<p>Smartphones, tablets, and other mobile devices exhibit vastly different constraints compared to <em>regular</em> or <em>classic</em> computing environments like desktops, laptops, or servers. Mobile devices run dozens of so-called <em>“apps”</em> hosted by independent virtual machines (VM). All these VMs run concurrently and each VM deploys <em>purely local</em> heuristics to organize resources like memory, performance, and power. Such a design causes conflicts across all layers of the software stack, calling for the evaluation of VMs and the optimization techniques specific for mobile frameworks.</p> <p>In this dissertation, we study the design of managed runtime systems for mobile platforms. More specifically, we deepen the understanding of interactions between <em>garbage collection</em> (GC) and system layers. We develop tools to monitor the memory behavior of Android-based apps and to characterize GC performance, leading to the development of new techniques for memory management that address energy constraints, time performance, and responsiveness.</p> <p>We implement a GC-aware frequency scaling governor for Android devices. We also explore the tradeoffs of power and performance <em>in vivo</em> for a range of realistic GC variants, with established benchmarks and real applications running on Android virtual machines. We control for variation due to dynamic voltage and frequency scaling (DVFS), Just-in-time (JIT) compilation, and across established dimensions of heap memory size and concurrency. Finally, we provision GC as a global service that collects statistics from all running VMs and then makes an informed decision that optimizes across all them (and not just locally), and across all layers of the stack.</p> <p>Our evaluation illustrates the power of such a central coordination service and garbage collection mechanism in improving memory utilization, throughput, and adaptability to user activities. In fact, our techniques aim at a sweet spot, where total on-chip energy is reduced (20–30%) with minimal impact on throughput and responsiveness (5–10%). The simplicity and efficacy of our approach reaches well beyond the usual optimization techniques.</p>"]},{"key":"dc:title","label":"Title","values":["Effective memory management for mobile environments"]}]}],"canonical_facts":{"dc:contributor":["Antony L. Hosking","Mathias Payer","Suresh Jagannathan","Xiangyu Zhang"],"dc:creator":["Hussein, Ahmed Mohamed Abd-elhaffiez"],"dc:description.abstract":["<p>Smartphones, tablets, and other mobile devices exhibit vastly different constraints compared to <em>regular</em> or <em>classic</em> computing environments like desktops, laptops, or servers. Mobile devices run dozens of so-called <em>“apps”</em> hosted by independent virtual machines (VM). All these VMs run concurrently and each VM deploys <em>purely local</em> heuristics to organize resources like memory, performance, and power. Such a design causes conflicts across all layers of the software stack, calling for the evaluation of VMs and the optimization techniques specific for mobile frameworks.</p> <p>In this dissertation, we study the design of managed runtime systems for mobile platforms. More specifically, we deepen the understanding of interactions between <em>garbage collection</em> (GC) and system layers. We develop tools to monitor the memory behavior of Android-based apps and to characterize GC performance, leading to the development of new techniques for memory management that address energy constraints, time performance, and responsiveness.</p> <p>We implement a GC-aware frequency scaling governor for Android devices. We also explore the tradeoffs of power and performance <em>in vivo</em> for a range of realistic GC variants, with established benchmarks and real applications running on Android virtual machines. We control for variation due to dynamic voltage and frequency scaling (DVFS), Just-in-time (JIT) compilation, and across established dimensions of heap memory size and concurrency. Finally, we provision GC as a global service that collects statistics from all running VMs and then makes an informed decision that optimizes across all them (and not just locally), and across all layers of the stack.</p> <p>Our evaluation illustrates the power of such a central coordination service and garbage collection mechanism in improving memory utilization, throughput, and adaptability to user activities. In fact, our techniques aim at a sweet spot, where total on-chip energy is reduced (20–30%) with minimal impact on throughput and responsiveness (5–10%). The simplicity and efficacy of our approach reaches well beyond the usual optimization techniques.</p>"],"dc:identifier":["https://docs.lib.purdue.edu/open_access_dissertations/941"],"dc:subject":["Applied sciences","Android","Garbage collection","Mobile","Power","Virtual machine","Computer Sciences"],"dc:title":["Effective memory management for mobile environments"],"thesis:degree_discipline":["Computer Science"],"thesis:degree_level":["Dissertation"],"thesis:degree_name":["Doctor of Philosophy (PhD)"]},"updated_at":"2026-07-24T03:54:09Z"}