博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 内存管理优化畅想----前言
阅读量:4570 次
发布时间:2019-06-08

本文共 710 字,大约阅读时间需要 2 分钟。

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

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

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

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

转载于:https://www.cnblogs.com/ygc369/p/4861563.html

你可能感兴趣的文章
Operating System-Thread(2) Multi-Process-Parallel vs Multi-Thread-Parallel
查看>>
vi补充
查看>>
第二十一章流 5 多种打开文件的方式 文件存在,文件不存在
查看>>
【转】在Win10家庭版中启用组策略
查看>>
git 生成 公钥
查看>>
luoguP4841 城市规划
查看>>
爬虫到底是什么?
查看>>
收藏基本Java项目开发的书
查看>>
getResource()和getResourceAsStream()以及路径问题
查看>>
00080_泛型
查看>>
Java Map 键值对排序 按key排序和按Value排序
查看>>
[笔面] Java IO和网络编程相关面试
查看>>
Hive默认数据库修改配置
查看>>
[转]基本Guava工具
查看>>
趁着没断网,赶快写总结
查看>>
Eclipse中取消按空格选中自动提示
查看>>
JAVA的Date类与Calendar类比较
查看>>
iOS开发拓展篇—音乐的播放
查看>>
Flink资料(1)-- Flink基础概念(Basic Concept)
查看>>
[BZOJ4012] [HNOI2015]开店
查看>>