Rust中文翻译15

翻译 2015年07月08日 00:47:17
大多数使用垃圾回收的语言都默认在堆上分配内存.这就意味着每个值都要装箱.有很多原因导致他们这样设计,但是这超出了本书的范围.同样,也有很多优化设计导致它并不是100%这样工作的.垃圾回收器宁愿选择在堆上分配内存,也不使用栈和Drop操作来释放内存.

4.1.7 该用哪一种呢?

所以当栈又快又好用的时候,为什么我们还需要使用堆呢?一个重要的原因是,栈只给你提供了LIFO语义来管理内存.堆分配却可以提供更加通用的和任意的顺序来使用内存,同时附带一些开销.

通常情况下,你应当使用栈,Rust默认就是如此.LIFO语义很简单,这是在函数级别上的.这同样有两点影响:运行时效率和语义.

运行时效率:
管理栈上的内存是简单的:它仅仅有增加和减少一个单一值,即"栈指针".管理堆上的内存去不简单:堆上的内存可以在任意位置分配,分配任意大小,内存管理器必须确保内存是可以被重用的.
如果你对这一议题感兴趣,你可以在这篇文章中学习更多:http://www.cs.northwestern.edu/~pdinda/icsclass/doc/dsa.pdf

语义的影响:
栈分配影响到了Rust语言自身,也影响到了程序员的思维.LIFO模式是Rust语言自动内存管理的模式.就连被唯一拥有的堆内存也可以被以这种模式管理.非LIFO模式的灵活性会导致在运行时CPU无法推导出哪里的内存需要被释放;它就需要依赖于动态协议,来自语言外部的机制来驱动内存释放(引用计数,通过Rc<T>和Arc<T>来实现,就是一种例子).

最极端的,堆分配内存既耗费了运行时(垃圾回收机制)又增加了程序员的编写开销(显示管理内存的话Rust并不提供验证).

Rust中文翻译12

Page 63 我们已经学习了如何写一些Rust代码了.但是能写Rust代码和能写好的Rust代码又很大区别. 这一章讲述一些相对独立的指南,告诉你如何把的Rust代码更进一步.一...
  • zcmit
  • zcmit
  • 2015年07月03日 17:11
  • 847

Rust中文翻译20

Page 100 并发和并行在计算机科学中是非常重要的主题.在工业领域也很火.计算机如今有越来越多的核心,然而很多程序员还没有准备好使用它们. Rust安全的内存特性同样适用于并发存储.并发的...
  • zcmit
  • zcmit
  • 2015年07月11日 15:49
  • 1212

Rust中文翻译1

用kindle看trpl有一段时间了,由于总是在地铁里看,对知识的巩固和加深理解没有好处,还是决定自己翻译一遍吧,便于自己学习,也可以给其他人以参考. 平时加班太多了,我希望能坚持做完. 闲话不说,上...
  • zcmit
  • zcmit
  • 2015年06月14日 17:16
  • 2536

rust book 中文翻译

  • 2015年07月10日 12:03
  • 2.24MB
  • 下载

Google内部流传的反多样性文章(10页完整版中文翻译)

Google内部流传的反多样性文章(10页完整版中文翻译) 更新于8/5/17 7:25pm ET: Google 新上任的多样性和管理副主席 Danielle Brown 向谷歌员工发布了她最...

Cocos2d-x 的3D游戏制作官方教程(中文翻译)

Cocos2d-X 从版本3开始,已经将3D一些特性添加到了Cocos2d-x里面。因为3D游戏是一个巨大的市场,所以,为了方便您进行3D游戏的开发,Cocos2d-x向您提供了所有你开发3D游戏时所...
  • cyh24
  • cyh24
  • 2015年05月13日 23:02
  • 5380

Python UnitTest 文档中文翻译-5-6(渣翻自娱)

25.3.5重用旧的测试代码 25.3.6跳过测试和预期失败

苹果App Store审核指南中文翻译(更新)

转自:http://www.cocoachina.com/newbie/basic/2014/0227/7892.html 前言 感谢您付出宝贵的才华与时间来开发iOS应用程程序。从职...

DBCP2配置详细说明(中文翻译)

common-dbcp2数据库连接池参数说明 由于commons-dbcp所用的连接池出现版本升级,因此commons-dbcp2中的数据库池连接配置也发生了变化,具体的参数配置说明如下: ...
  • kerafan
  • kerafan
  • 2015年12月22日 23:10
  • 6023

苹果App Store审核指南中文翻译(更新)

from: http://www.cocoachina.com/ios/20140227/7892.html (注:苹果应用商店审核指南>中文翻译最近一次更新为2013-03-04,文...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Rust中文翻译15
举报原因:
原因补充:

(最多只允许输入30个字)