加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala的Lift如何管理状态?

发布时间:2020-12-16 19:04:52 所属栏目:安全 来源:网络整理
导读:Lift 2.0带有Actors和StatefulSnippets等对表的印象让我印象深刻,但我有点担心这些东西的内存开销.我的问题是双重的: Lift如何确定何时垃圾收集状态对象? 页面请求的内存占用量是多少? 如果网络爬虫在网站的足迹上跳舞,他们是否会打开足够的状态对象以淹
Lift 2.0带有Actors和StatefulSnippets等对表的印象让我印象深刻,但我有点担心这些东西的内存开销.我的问题是双重的:

> Lift如何确定何时垃圾收集状态对象?
>页面请求的内存占用量是多少?

如果网络爬虫在网站的足迹上跳舞,他们是否会打开足够的状态对象以淹没适度的VPS(512M)?这个问题非常明显取决于应用程序,但我很好奇是否有人有任何真实世界的数字,他们可以抛弃我.

解决方法

Lift在会话中存储状态信息,因此一旦会话被破坏,与该会话相关联的状态就会消失.

在会话中,Lift跟踪分配状态的每个页面(例如,浏览器中的ajax按钮与服务器上的功能之间的映射)并且具有来自浏览器的心跳.未在10分钟内看到心跳的页面的功能未被引用,因此JVM可以对它们进行垃圾回收.所有这些都是可调的,因此您可以改变心跳频率,功能寿命等,但在实践中,默认值可以很好地工作.

在会话爆炸方面,是的……这是一个小问题.热门网站(包括http://demo.liftweb.net/)体验它.示例代码(请参阅http://github.com/lift/lift/tree/master/examples/example/)检测由单个请求创建的会话,然后放弃并尽早过期.我正在运行带有256MB堆大小的demo.liftweb.net(它适合512MB VPS),偶尔会话计数超过1,000,但这会迅速遏制搜索引擎流量.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读