Breeze 微风记忆使用

Breeze 微风记忆使用,breeze,Breeze,我使用Breeze、ASP.NETWebAPI和MySQL数据库开发SPA。数据库的主要实体(代码优先EF)有4个一对多关系和20个简单属性。当我下载了约500个实体(包含相关实体的对象总数约2000个)后,Chrome选项卡进程使用250+Mb的RAM(不加载UI)。如果我保存一些实体,这个值就会增加。这正常吗?如何降低此值?到目前为止,我无法重新生成此结果,因此可以获取更多信息吗?为了确保我清楚,您的查询是针对500个根实体的,每个根实体有20个简单属性和4个导航属性,查询的实体总数只有20

我使用Breeze、ASP.NETWebAPI和MySQL数据库开发SPA。数据库的主要实体(代码优先EF)有4个一对多关系和20个简单属性。当我下载了约500个实体(包含相关实体的对象总数约2000个)后,Chrome选项卡进程使用250+Mb的RAM(不加载UI)。如果我保存一些实体,这个值就会增加。这正常吗?如何降低此值?

到目前为止,我无法重新生成此结果,因此可以获取更多信息吗?为了确保我清楚,您的查询是针对500个根实体的,每个根实体有20个简单属性和4个导航属性,查询的实体总数只有2000个(因此每个导航属性平均有1个相关实体?(2000/(500*4))

相关实体的大小是多少

您是使用“EntityQuery.expand”检索关系属性,还是使用“entityAspect.loadNavigationProperty”


每个breeze entityManager按键存储每个实体的单个副本,因此除非检索更多实体(或使用多个entityManager),否则内存使用不应扩展.

从breeze v 1.1开始,我们确实修复了breeze中的一些内存泄漏,并在处理大型查询时减少了一些内存压力。此外,breeze使用的最新版本的Q库也修复了一些泄漏。希望您现在能看到更小的内存占用。请发布任何进一步的发现……感谢您的评论在这一点上。

对不起,我对模型的描述有点错误。根实体有六个1对多属性。但其中五个实体中相关实体的最大数量不超过5个。第六个关系具有以下1对多关系方案:1根实体->第一个导航实体(14个简单属性和8个1:1属性,最大数量不受限制,~10个)->第二个导航实体(11个简单属性和1:1属性,最大数量~5)->第三个导航实体(20个简单属性和3个1:1属性,最大数量~50)符号表示一对多关系。我使用一个entityManager和“EntityQuery.expand”表达式。那么您总共要减少多少个实体?以及(平均)多少个属性对于每种实体类型。理想情况下,您可以给我一个您“期望”要获取的实体的总内存估计值;假设每个唯一实体只计算一次。实体总数约为5000个,具有15个简单属性(平均)我认为每50000个这样的uniq实体中有250-300MB是理想的(或者至少每25k=)。