Microsoft Research has been experimenting with integrating safe manual memory management with garbage collection (GC) in the .Net runtime. The goal is to give developers both the convenience and safety of automated memory management and the opportunity to improve performance by freeing objects from memory manually.
The effort, called Project Snowflake, is the subject of a paper published this week by Microsoft Research and co-authors from the University of Cambridge and Princeton University. With Snowflake, programmers could choose between allocating objects in the GC heap or the manual heap. Snowflake combines the open source .Net runtime with a facility to manage memory manually without compromising performance or safety. Existing applications run unmodified using the GC heap, with no performance degradation.