会话关闭后如何强制休眠释放内存?

2024-03-19

我们最近才开始使用 Hibernate,并且仍在适应它的工作方式。

我们看到的一件事是,即使在所有会话关闭并且引用超出范围之后,hibernate 似乎仍然在其缓存中维护以前使用的数据库值。

我们的代码可以多次读取一组表。因为所有的内存都被非常少量地释放,所以后面的传递速度会慢得像爬行一样。

有没有办法强制 Hibernate 清除其缓存?

显式调用 System.gc() 没有帮助。 (是的,我知道这是一个建议)

附加信息:我们已明确禁用二级缓存。


您可以尝试调用Session.clear来强制清除一级缓存。请务必首先调用 Session.flush 将任何挂起的更改写入数据库。如果这“解决”了问题,那么我怀疑某些东西仍然持有对会话的引用,从而阻止缓存中的对象被垃圾收集。您可能需要获取程序的堆转储来追踪泄漏。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

会话关闭后如何强制休眠释放内存? 的相关文章

随机推荐

  • Postgresql 适配器 (pg):无法连接到服务器

    我每次运行 Rails 应用程序时都会收到此错误 它无法连接到我的本地 Postgresql Users leonardo rvm gems ruby 1 9 3 p362 gems activerecord 3 2 11 lib acti
  • 我应该如何将返回非通用任务的函数转换为 ValueTask?

    我正在编写一些代码 它在内存中构建一个缓冲区 然后将其清空到TextWriter当缓冲区填满时 大多数时候 角色会直接进入缓冲区 同步 但偶尔 每 4kb 一次 我需要调用TextWriter WriteAsync In the Syste
  • 如何使用 matlab 中的电子表格制作 3D 平面图

    pointA 9 62579 15 7309 3 3291 pointB 13 546 25 6869 3 3291 pointC 23 502 21 7667 3 3291 pointD 19 5818 11 8107 3 3291 po
  • mintty (Git Bash for Windows) 中的 /usr 文件夹在哪里?

    Windows 上的 git 新手 安装最新版本的 git 后 来自适用于 Windows 的 git https gitforwindows org 网站 您可以输入cd usr bin在标准 Linux 用法中 但它到底在我的 Wind
  • ListView 内的RelativeLayout 边距不显示

    我目前正在使用一个 ListView 我用带有relativelayout的自定义适配器填充它 问题是相对布局不显示边距 这是我的相对布局声明
  • 具有自定义格式的 XML 编写器

    我需要创建一个人类可读的 XML 文件 XmlWriter 似乎对此几乎是完美的 但我想在我想要的地方插入换行符或一般情况下的自定义空白 两者都不WriteRaw http msdn microsoft com library 0755yt
  • Android Studio布局大小文件夹

    我正在尝试为 1080dp 和其他使用创建不同的布局 layout sw1080dp 文件夹 但似乎 android studio 完全忽略它并从默认布局文件夹加载 我尝试了另一种方法 使用values sw1080dp 设置不同的尺寸 但
  • 提供程序:命名管道提供程序,错误:40 – 无法打开与 SQL Server 的连接。

    我开发了一个依赖于 SQL Server 数据库的 net 应用程序 该数据库位于用于开发应用程序的本地计算机上 当我将数据库移动到远程计算机并更改连接字符串时 出现以下错误 连接 SQL Server 2005 时建立与服务器的连接时发生
  • 无法使用 jest + puppeteer 获得测试覆盖率

    我有项目优秀 js https github com vitaly t excellent自动测试设置jest https github com facebook jest and 木偶师 https github com GoogleCh
  • Android Arctic Fox 的 InvokingTargetException 2020.3.1 M1 苹果芯片上的arm64

    在我的 M1 Apple Silicon 上构建 Android 项目期间 使用kapt 例如房间 Android Studio Arctic Fox 2020 3 1 Beta 1 arm64 Android Studio Arctic
  • 如何将 DataTable 转换为 IDatareader?

    我们都知道 DataReader 比 DataTable 更快 因为 DataReader 用于构建 DataTable 因此鉴于我已经有一个数据表 为什么我想将其转换为 DataReader 好吧 我正在创建一个名为 IDataProvi
  • java arraylist EnsureCapacity 不起作用

    要么我做错了 要么我不明白这个方法是如何工作的 ArrayList
  • 强制 pandas xaxis 日期时间索引使用特定格式

    我的 pandas 数据框如下所示 data1 data2 data3 DateTime 2016 04 18 16 16 53 66 1 94 8654 2016 04 18 16 17 03 67 1 94 8601 2016 04 1
  • 顺序一致但非静态一致的执行示例

    根据 Maurice Herlihy 和 Nir Shavit 的 多处理器编程的艺术 第 3 章 在并发程序的正确性方面 顺序一致性是比静态一致性更强的条件 作者还在 3 4 1 中提到 存在顺序一致的执行 但并非静态一致 我不明白怎么办
  • 使用 Jcraft 通过 SFTP 传输文件

    项目清单 我可以编写一个java程序通过SFTP传输文件 但是 这将包含一个带有可执行命令的脚本 这可以通过 Jcraft 实现吗 比方说 示例脚本文件是这样的 cd pub ascii get filename txt put other
  • 打字稿提升

    我试图理解打字稿中的提升 提升是否在 Typescript 中进行 如果是 与 Javascript 中的提升方式相比有什么不同吗 例如 即使我在使用它的函数之后声明了接口 代码也可以很好地转换 可以安全地假设它的发生是由于作为转译的一部分
  • 使用具有多行的 imagettftext 函数?

    我正在使用 php 创建透明文本 gt png 图像 到目前为止一切顺利 唯一的问题是我希望能够由于固定宽度而使文本自动换行 或者能够在文本中插入断线 有没有人有任何经验这样做 这是我的代码
  • 动态更改持久性单元 - JPA

    persistence xml 中的持久性单元是在构建应用程序期间创建的 由于我想在运行时更改数据库url 有什么方法可以在运行时修改持久化单元吗 我应该在分发后使用除预绑定数据库之外的不同数据库 我正在使用 EclipseLink JPA
  • Django-storage - 如何在上传之前检查文件大小?

    存储和 Django 1 6 我想限制保存的文件大小s3 执行此操作的适当方法是什么 我应该在表单中进行自定义字段验证 还是在使用 Django Storage 时有更好的方法来执行此操作 验证需要将文件上传到服务器 这建议的方式 http
  • 会话关闭后如何强制休眠释放内存?

    我们最近才开始使用 Hibernate 并且仍在适应它的工作方式 我们看到的一件事是 即使在所有会话关闭并且引用超出范围之后 hibernate 似乎仍然在其缓存中维护以前使用的数据库值 我们的代码可以多次读取一组表 因为所有的内存都被非常