小编Las*_*Elb的帖子

Spring + Hibernate:查询计划缓存内存使用情况

我正在使用最新版本的Spring Boot编写应用程序.我最近成了堆增长的问题,不能被垃圾收集.使用Eclipse MAT对堆进行的分析表明,在运行应用程序的一小时内,堆增长到630MB,而Hibernate的SessionFactoryImpl使用了整个堆的75%以上.

在此输入图像描述

是在寻找查询计划缓存的可能来源,但我发现的唯一的事情就是这个,但是没有发挥出来.属性设置如下:

spring.jpa.properties.hibernate.query.plan_cache_max_soft_references=1024
spring.jpa.properties.hibernate.query.plan_cache_max_strong_references=64
Run Code Online (Sandbox Code Playgroud)

数据库查询都是由Spring的Query魔法生成的,使用本文档中的存储库接口.使用此技术生成了大约20个不同的查询.没有使用其他本机SQL或HQL.样品:

@Transactional
public interface TrendingTopicRepository extends JpaRepository<TrendingTopic, Integer> {
    List<TrendingTopic> findByNameAndSource(String name, String source);
    List<TrendingTopic> findByDateBetween(Date dateStart, Date dateEnd);
    Long countByDateBetweenAndName(Date dateStart, Date dateEnd, String name);
}
Run Code Online (Sandbox Code Playgroud)

要么

List<SomeObject> findByNameAndUrlIn(String name, Collection<String> urls);
Run Code Online (Sandbox Code Playgroud)

作为IN使用的示例.

问题是:为什么查询计划缓存不断增长(它不会停止,它以完整堆结束)以及如何防止这种情况?有没有人遇到类似的问题?

版本:

  • Spring Boot 1.2.5
  • Hibernate 4.3.10

postgresql spring hibernate spring-boot

26
推荐指数
2
解决办法
1万
查看次数

.NET XMLDocument 编码问题

我目前正面临一个非常具体的问题。我将一些数据存储在 XMLDocument 中并将其保存在 HDD 上。他们看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<Settings>
  <Units>
    <Unit>
      <Name>Kilogramm</Name>
      <ShortName>Kg</ShortName>
    </Unit>
    <Unit>
      <Name>Flasche(n)</Name>
      <ShortName>Fl</ShortName>
    </Unit>
    <Unit>
      <Name>Stück</Name>
      <ShortName>St</ShortName>
    </Unit>
    <Unit>
      <Name>Beutel</Name>
      <ShortName>Btl</ShortName>
    </Unit>
    <Unit>
      <Name>Schale</Name>
      <ShortName>Sch</ShortName>
    </Unit>
    <Unit>
      <Name>Kiste</Name>
      <ShortName>Ki</ShortName>
    </Unit>
    <Unit>
      <Name>Meter</Name>
      <ShortName>m</ShortName>
    </Unit>
    <Unit>
      <Name>Stunde(n)</Name>
      <ShortName>h</ShortName>
    </Unit>
    <Unit>
      <Name>Glas</Name>
      <ShortName>Gl</ShortName>
    </Unit>
    <Unit>
      <Name>Portion</Name>
      <ShortName>Port</ShortName>
    </Unit>
    <Unit>
      <Name>Dose</Name>
      <ShortName>Do</ShortName>
    </Unit>
    <Unit>
      <Name>Paket</Name>
      <ShortName>Pa</ShortName>
    </Unit>
  </Units>
</Settings>
Run Code Online (Sandbox Code Playgroud)

我正在通过 XMLDocument.Load() 加载文件并使用 XMLDocument.Save() 保存它。但是现在我从旧 PC 中保存了文件,现在在保存和重新加载后,特殊字符 (ä,ö,ü) 出现异常。
事实上,在记事本中查看文件没有任何区别,但在十六进制上查看有一些!这怎么可能?

.net c# vb.net xmldocument

3
推荐指数
1
解决办法
9915
查看次数

标签 统计

.net ×1

c# ×1

hibernate ×1

postgresql ×1

spring ×1

spring-boot ×1

vb.net ×1

xmldocument ×1