栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Python

语言的发展01:在内存管理上,计算语言的的发展C/C++和Java,Python,go以及rust三代

Python 更新时间:发布时间: 百科书网 趣学号
内存管理三个时代 1,手动释放(C/C++)

—手动管理内存:使用malloc free / new delete
— 忘记释放就会造成:-Memory leak(内存泄露) —out of Memory

—解决方案,
(1)另外一个则是,直接重启程序吧(别和面试官这样说,不然。。。。)
(2)就是释放多次,但是这样容易形成极难调试的bug,一个线程的内存莫名其妙另外的一个线程给释放了。
–产生了一个这样的语言特点:C/C ++虽然在运行效率上是最高的,但是同样在内存管理上直接加大了开发效率:
总结:开发效率低
在硬件性能不断提升的现在,又产生了一种GC(垃圾回收器)管理内存方法

2,GC管理(Java,Python,Go)

这些,我们耳熟能详的语言,就是在这样的背景下活了起来。
这些语言有什么优点呢?
—方便内存管理的语言
—GC(Garbage Collector) —应用线程只管分配,垃圾回收器负责回收
但是同样需要运行多一个回收线程因此运行效率比较低
—大大的降低了程序员学习的门槛。

那么问题来了,有没有一种效率和C一样,还不用手动内存管理的语言呢?

3 Rust (学习难度巨高,不推荐作为入门语言)

—运行效率超高(堪比asm /C /C++)
—不用手工管理内存(没有GC)
—学习曲线巨高(ownership)
依赖于ownership做到一个变量对应一个块内存,所以变量不用,也就回收了,因此不需要另外回收线程
–只要程序通过,那么就不会出现非逻辑的bug

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/295853.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号