当前位置: 首页 > 知识库问答 >
问题:

限制Vaadin会话的内存消耗

聂炜
2023-03-14

是否可以限制会话和与之相关的请求可以使用的内存量?

例如,我希望将每个用户会话限制为一兆字节。此限制应适用于处理请求时创建的任何对象。有可能吗?

共有1个答案

艾意蕴
2023-03-14

理论上是可能的,但实践上是不可行的。

据我所知,没有一个JVM跟踪线程分配的内存量。所以,如果你想这样做,你就需要建立大量的基础设施。这里有几个理论观点。

>

  • 您可以使用字节码工程在每个new之前注入一些代码,以测量和记录所分配对象的大小。你需要在你的整个代码库中运行这个...包括你的应用程序使用的任何Java SE类和第三方类。

    您可以修改JVM来记录信息本身。例如,您可以修改new使用的内存分配器。

    但是,这两种方法都需要大量的实现、调试和维护工作。而且两者都可能对性能产生重大影响。

    我不清楚你为什么需要这个...作为一般的东西。如果您在特定类型的请求的内存使用方面有问题,那么请求代码本身可以更简单地使用选项卡来确定请求数据结构的大小。当数据结构变得太大时,请求可能会“中止”自己。

  •  类似资料:
    • 关于Java应用程序使用的驻留内存,我有两个问题。 一些背景细节: 我用-xms2560m-xmx2560m设置了一个java应用程序。 java应用程序在容器中运行。k8s允许容器最多消耗4GB. 堆:应用程序的工作方式似乎是使用所有内存,然后释放,然后使用等等。 这张快照说明了这一点。Y列是空闲堆内存。(由应用程序通过)提取) 我还可以使用HotSpotDiagnosticMXBean来确认它

    • 在我的Vaadin应用程序中,当Vaadin在“session Timeout”消息之后没有使会话无效时,我遇到了一个问题。收到此消息后,用户有时可以单击链接或刷新页面,并继续工作,就像他们仍在登录一样。我使用以下参数: Last参数(session-timeout)也在context.xml(session-timeout=900)和web.xml(session-config/session-

    • 我有一个问题发生在我坐在空闲的时候,没有接触网络浏览器,vaadin在点击vaadin应用程序中的任何内容之后,就会抛出红色的通信问题错误消息。 我已经通过30分钟不接触浏览器进行了测试。之后,当我单击vaadin应用程序中的一个按钮时,它会抛出通信错误消息。 我有两个应用服务器,它们位于Rackspace的负载均衡器后面。我还启用了“粘性会话”... vaadin可能有自己的超时吗?

    • 是否可以限制siteminder SP上受保护资源上的活动用户数?我想确保受保护的资源被有限数量的活动用户使用,比如说n。 谢谢Andrea

    • 我正在使用JPAContainer和Hibernate4.3开发一个Vaadin webapp。我遵循了这个链接的说明,成功地实现了EntityManager-per-Request模式。这意味着惰性加载可以很好地用于JPAContainer 但是,每次我需要使用纯JPA时,它都无法延迟负载。 下面是一个示例代码: 另外,当我从JPAContainer中移除实体时,我会收到一个错误:org.hib