Microsoft Research's manual memory management for .NET: https://www.microsoft.com/en-us/research/wp-content/uploads/2017/07/snowflake-extended.pdf

Microsoft Research's manual memory management for .NET: https://www.microsoft.com/en-us/research/wp-content/uploads/2017/07/snowflake-extended.pdf

Interesting concept of manual but safe memory management with exactly one owner of an object at any given moment and shields that prevent an object's destruction while it's still in use by other threads.
https://www.microsoft.com/en-us/research/wp-content/uploads/2017/07/snowflake-extended.pdf

Comments

  1. A. Bouchez If Delphi continues to imitate C # while C # imitates Delphi, I may move from one to another :)

    ReplyDelete
  2. Dalija Prasnikar​​​ I was a bit ironic here, for sure... ;) Ownership is the main difference with GC, in this case. Then there are additional features like shields... but dangling pointers are solved more by software design care than a particular technology. You can leak memory using a GC too (and search for such leaks with a GC is a real debugging nightmare)! There is no magic system. I found manual memory management not difficult to implement: on the contrary, it implies that you know what you are doing and how resources are used - which is mandatory e.g. for good server code.

    ReplyDelete
  3. A. Bouchez I got that ;-)

    Anyway, this manual + GC combination seems quite nice. Too bad I cannot have something like that on Android, GC there is quite a nightmare.

    Anyone saying that under automatic memory management systems (any kind) you don't have to think and know how memory works are either living in delusion or telling a lie.

    But automatic memory management can clean up a lot of cruft in code, and I like that part.

    On the other hand, I don't think I ever spent more time fiddling around and solving memory issues than I had with Android + Java + GC.

    ReplyDelete

Post a Comment