gpt4 book ai didi

scala - Scala的Lift如何管理状态?

转载 作者:行者123 更新时间:2023-12-04 13:35:12 26 4
gpt4 key购买 nike

Lift 2.0带Actors和StatefulSnippets等给 table 面带来了深刻的印象,但是我有点担心这些东西的内存开销。我的问题是双重的:

  • Lift如何确定何时垃圾收集状态对象?
  • 页面请求的内存占用是什么样的?

  • 如果网络爬虫在站点范围内跳舞,它们是否将打开足够的状态对象以淹没适度的VPS(512M)?这个问题很明显取决于应用程序,但是我很好奇是否有人可以向我扔掉任何现实世界的数字。

    最佳答案

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

    在 session 中,Lift会跟踪为其分配状态的每个页面(例如,浏览器中的ajax按钮与服务器上的功能之间的映射),并从浏览器中获取心跳信号。未引用在10分钟之内没有跳动的页面的函数是未引用的,因此JVM可以对其进行垃圾回收。所有这些都是可调的,因此您可以更改心跳频率,功能生命周期等,但实际上,默认设置效果很好。

    关于 session 爆炸,是的...这是一个小问题。受欢迎的站点(包括http://demo.liftweb.net/)都可以体验到。示例代码(请参阅http://github.com/lift/lift/tree/master/examples/example/)检测由单个请求创建的 session ,然后将其放弃并提前终止它们。我运行的demo.liftweb.net具有256MB的堆大小(适合512MB VPS),偶尔, session 数增加了1000多次,但这很快就减少了搜索引擎的流量。

    关于scala - Scala的Lift如何管理状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3540593/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com