Scala流及其内存使用
发布时间:2020-12-16 19:06:49 所属栏目:安全 来源:网络整理
导读:据了解,Stream保留最近评估的元素.我想它不保留所有评估的元素(这是不可行的),所以它可能使用一些内部的“缓存”. 这是对的吗?我可以控制这个缓存的大小和策略吗? 解决方法 流像列表,根据需要生成其成员.一旦生成元素,它将保留在流中并重新使用. 例如: la
据了解,Stream保留最近评估的元素.我想它不保留所有评估的元素(这是不可行的),所以它可能使用一些内部的“缓存”.
这是对的吗?我可以控制这个缓存的大小和策略吗? 解决方法
流像列表,根据需要生成其成员.一旦生成元素,它将保留在流中并重新使用.
例如: lazy val naturals: Stream[Int] = Stream.cons(0,naturals.map{_ + 1}) 会给你一个自然数字的流.如果我打电话 naturals(5) 它将生成元素0-5并返回5,如果我然后调用 naturals(8) 它将重新使用前6个元素并再生成3个元素. 如果您关心内存使用情况,您可以使用Stream.drop(num)来生成一个新的流,并从头开始删除num元素,从而允许使用旧流垃圾收集截断的元素.例如: naturals(5) //returns 5 val truncated = naturals.drop(4) truncated(5) //returns 9 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- twitter-bootstrap – Twitter Bootstrap – Carousel Tran
- 关于XMLBeans/shcema,不得不说的话题
- Getting Started with AngularJS 1.5 and ES6: part 3
- 在UNIX中处理信号的差异
- angular – 具有多个参数和注入项的TypeScript构造函数
- [后端人员耍前端系列]KnockoutJs篇:使用WebApi+Bootstrap+
- 如何在Angular 2中解释MVC模式?
- Scala:覆盖toString,以便在字符串周围打印引号
- 如何使scala解析器失败
- Bootstrap模板代码+页面自适应页面的案例代码