当前位置:  开发笔记 > 编程语言 > 正文

Scala的Lift如何管理状态?

如何解决《Scala的Lift如何管理状态?》经验,为你挑选了1个好方法。

Lift 2.0带有Actors和StatefulSnippets等对表的印象让我印象深刻,但我有点担心这些东西的内存开销.我的问题是双重的:

    Lift如何确定何时垃圾收集状态对象?

    页面请求的内存占用量是多少?

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



1> David Pollak..:

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,但这会迅速遏制搜索引擎流量.


作者的回答,我很荣幸.感谢您的详细信息和一个精彩的项目!
推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有