{"id":27010,"date":"2026-09-27T20:02:28","date_gmt":"2026-09-27T18:02:28","guid":{"rendered":"https:\/\/www.itspy.cz\/thesis\/improving-the-security-of-garbage-collectors-in-the-javavirtual-machine\/"},"modified":"2026-09-27T20:05:06","modified_gmt":"2026-09-27T18:05:06","slug":"improving-the-security-of-garbage-collectors-in-the-javavirtual-machine","status":"publish","type":"thesis","link":"https:\/\/www.itspy.cz\/en\/thesis\/improving-the-security-of-garbage-collectors-in-the-javavirtual-machine\/","title":{"rendered":"Improving the Security of Garbage Collectors in the Java\nVirtual Machine"},"content":{"rendered":"<p>This thesis focuses on improving the security of the<br \/>\nGarbage-First garbage collector (G1 GC) in the Java Virtual<br \/>\nMachine (JVM). The increase in security is achieved through<br \/>\ncontinuous relocation of memory regions used by the garbage<br \/>\ncollector and by &#8220;locking&#8221; the original memory regions in<br \/>\nwhich they were located. Thanks to this relocation, the<br \/>\ndereference of dangling pointers (or other pointers<br \/>\ncreated, for example, by a buffer overflow), which are<br \/>\nstill incorrectly pointing to the original memory, would be<br \/>\ndetected. This makes it much easier to detect and debug<br \/>\nmemory vulnerabilities in this garbage collector.<br \/>\nThis extension of G1 GC is called SanitizeGC, and it was<br \/>\ntested with a set of custom tests as well as with a G1 test<br \/>\nsuite already present in the JVM&#8217;s code. Apart from that,<br \/>\nits functionality was checked on a few real-world<br \/>\napplications. There were also two special scenarios created<br \/>\nthat introduce bugs on purpose to showcase that the<br \/>\nextension can catch them efficiently (which was<br \/>\nsuccessful), at the cost of worse performance (4.5 times<br \/>\nslower on average in high memory workload scenarios) and<br \/>\nhigher physical memory usage (1.1 times more on average,<br \/>\ndoubled in the worst case). Giving evidence that SanitizeGC<br \/>\nis a useful diagnostic tool in the development and testing<br \/>\nphases of JVM with acceptable overhead.<\/p>\n","protected":false},"featured_media":26783,"template":"","meta":{"_acf_changed":false,"_links_to":"","_links_to_target":""},"university":[189,441],"thesis-year":[466],"class_list":["post-27010","thesis","type-thesis","status-publish","has-post-thumbnail","hentry","thesis-year-466"],"acf":{"autor":"Patrik \u010cerb\u00e1k","portret":"","vedouci":"Ing. David Koz\u00e1k, Ph.D."},"_links":{"self":[{"href":"https:\/\/www.itspy.cz\/en\/wp-json\/wp\/v2\/thesis\/27010","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.itspy.cz\/en\/wp-json\/wp\/v2\/thesis"}],"about":[{"href":"https:\/\/www.itspy.cz\/en\/wp-json\/wp\/v2\/types\/thesis"}],"version-history":[{"count":1,"href":"https:\/\/www.itspy.cz\/en\/wp-json\/wp\/v2\/thesis\/27010\/revisions"}],"predecessor-version":[{"id":27065,"href":"https:\/\/www.itspy.cz\/en\/wp-json\/wp\/v2\/thesis\/27010\/revisions\/27065"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.itspy.cz\/en\/wp-json\/wp\/v2\/media\/26783"}],"wp:attachment":[{"href":"https:\/\/www.itspy.cz\/en\/wp-json\/wp\/v2\/media?parent=27010"}],"wp:term":[{"taxonomy":"university","embeddable":true,"href":"https:\/\/www.itspy.cz\/en\/wp-json\/wp\/v2\/university?post=27010"},{"taxonomy":"thesis-year","embeddable":true,"href":"https:\/\/www.itspy.cz\/en\/wp-json\/wp\/v2\/thesis-year?post=27010"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}