首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Vaadin中大型系统的内存占用

Vaadin中大型系统的内存占用
EN

Stack Overflow用户
提问于 2013-02-10 20:05:44
回答 2查看 7.7K关注 0票数 18

我在金融部门工作,我们将选择Vaadin 7来开发大型重载系统。

但我有点担心大型系统的Vaadin内存占用,因为Vaadin将所有状态都保存在会话中。这意味着对于每个新用户,所有的应用程序状态都将存储在内存中,不是吗?

我们不能一味地构建单片系统--相反,系统必须是可伸缩和敏捷的。因为我们有庞大的客户群,所以它必须很容易定制并准备好增长。

有人能分享一下在Vaadin中如何最小化或消除这些问题的经验和可能的变通方法吗?

EN

回答 2

Stack Overflow用户

发布于 2013-02-17 01:23:21

在我们的产品开发过程中,我们遇到了使用默认Vaadin架构的内存占用过大的问题。

Vaadin架构基于事件驱动的组件。使用组件创建紧密耦合的应用程序相当简单。原因是组件被组织到一个层次结构中。就像一座金字塔。构建较大的应用程序;较大的金字塔存储在每个用户的会话中。

为了显着减少内存分配,我们为应用程序创建了一种基于页面的方法,使用旧的学校状态管理在后台使用全面的事件模型。它基于XML格式的Statechart表示法。

因此,会话在用户工作流期间仅保留访问过的页面,如Statechart配置所述。当用户完成工作流时,所有页面都将被释放,以便由垃圾收集器进行回收。

为了看到不同之处,我们做了一些测试来比较分配给使用应用程序的用户的内存。

开发的应用程序:

采用紧密耦合方法的

  • 每个用户占用5到15MB的堆

采用松耦合方法的

  • -最多2 MB

我们对结果非常满意,因为它允许我们使用4 4GB将大型系统扩展到每台服务器1000-1500个并发用户。

差一点忘了。我们使用Lexaden Web Flow库。它是使用Apache许可证的。

票数 14
EN

Stack Overflow用户

发布于 2013-02-12 14:23:47

我认为你应该看看这里:https://vaadin.com/blog/-/blogs/vaadin-scalability-study-quicktickets

另外,我还发现了以下由在生产中运行Vaadin的人提供的信息。

巴拉兹·霍多西:

我们有一个后台系统,有超过10,000个用户。每天的用户数量约为3000人,但其中一半的用户在8小时内不注销系统。我们使用Liferay 6.0.5 Tomcat包和Vaadin作为portlet。我们的两台服务器有48 GB的RAM,我们为Tomcat提供了24 GB的堆。DB得到了18 GB,系统得到了剩下的。根据会话大小、并发用户和活动来度量堆。更多的内存导致更少但更长的完整GC。我们计划增加Tomcat工作线程的数量并减少堆。在测量服务器时,请尝试添加更多的内存。如果成本如此重要,不如降低处理器成本并购买更多RAM。大多数情况下,稍微调整一下,它是有价值的。

Pierre-Emmanuel Gros:

一个纯

应用程序:Server3 gb 2核心Jetty,ulimit到50000个PostgreSQL9,50个并发用户(使用一个连接池)。作为软件部分,我还使用了ehcache来缓存DTO对象,并使用纯JDBC.

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14797535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档