zoukankan      html  css  js  c++  java
  • C# 内存管理优化畅想----前言

        C#语法简洁、优雅,类库丰富,是我最喜爱的计算机语言,没有“之一”。但是,经过深入学习后发现,C#的内存管理,也就是通常所说的垃圾回收(GC)机制,虽然跟其他支持GC的语言相比,已经很优秀了,但与手动管理内存的语言,如C++等相比,仍有差距,比如内存回收不够及时或频繁回收导致卡顿等。

        我一直在思考,有没有可能在保留C#自动管理内存的优势的同时,使其效率能与手动管理相媲美?我的结论是可以,虽然并不容易。我的核心思路是尽可能减少触发GC的次数,当不得不触发GC时尽可能缩短GC的时间。在后面的该系列文章中,我将分别介绍我所想到的优化方案。

       不过,程序员同行们先别高兴太早,我提出的方案不是给你们用的,而是提给微软的,毕竟GC涉及到比较底层的东西,所以要进行彻底的优化也需要底层的改动,比如需要修改编译器或CLR运行时等,只有微软才能做到。但大家也别被这句话吓着了,我也并不是什么大神,只是对内存管理感兴趣,多思考了一些而已。我对底层机制也并非完全了解,所说的也不一定正确,就当是抛砖引玉,如有不对之处,欢迎大家批评指正。如果谁有更好的方案,也欢迎提出,大家共同讨论。

        虽然这一系列文章都是如标题所言的“畅想”,可能给人不切实际的感觉,但也并非没有实现的可能,后续文章中的每个方案我都用英文提到微软开源.net的网站了,并和一些外国友人进行了初步的讨论,我在具体的文章中会附上链接,欢迎英文好的同学一起参与讨论,说不定就被微软采纳了呢。如果有微软员工读到了这一系列文章后认为可行,希望能帮我向.net开发团队转达这些建议。

  • 相关阅读:
    比较两个集合元素是否相同?
    如何将list集合转成String对象
    如何对金额进行判断
    微信网页授权
    什么是微信小程序?简单介绍
    关于买家买入一件商品以后需要进行的逻辑
    设置快捷的模板的生成
    IDEA优秀插件分享之---Mybatis Log Plugin
    破解Beyond Compare 4
    JPA-save()方法会将字段更新为null的解决方法
  • 原文地址:https://www.cnblogs.com/ygc369/p/4861563.html
Copyright © 2011-2022 走看看