【发布时间】:2019-05-16 19:28:06
【问题描述】:
我需要检查执行查询时使用的内存。我已经在 MYSQL 中将 JDBC 连接到我的数据库。而且我也知道如何执行查询。但我不知道如何检查执行查询时使用的内存。这是为了比较内存和时间。我正在使用 NetBeans。
谢谢
【问题讨论】:
我需要检查执行查询时使用的内存。我已经在 MYSQL 中将 JDBC 连接到我的数据库。而且我也知道如何执行查询。但我不知道如何检查执行查询时使用的内存。这是为了比较内存和时间。我正在使用 NetBeans。
谢谢
【问题讨论】:
您可以使用com.sun.management.ThreadMXBean.getThreadAllocatedBytes(long id) 获取大约。线程使用的字节数。 https://docs.oracle.com/javase/7/docs/jre/api/management/extension/com/sun/management/ThreadMXBean.html#getThreadAllocatedBytes(long)
当您的 JDBC 连接、语句和结果集内容由线程执行时,您可以获得大约。通过提供线程 id 由线程使用的内存量。
参考-Will ThreadMXBean#getThreadAllocatedBytes return size of allocated memory or objects?
【讨论】:
如果您指的是数据库服务器中的内存使用情况(通过 JDBC),则不能。询问 DBA。
如果是为您的应用程序或您的应用程序服务器,那么您可以使用Runtime.getRuntime().freeMemory() 来获取数据库/JDBC 调用前后的内存使用情况。
更好的是,您可以使用 JMX 远程完成。 JConsole 最基本的用法可以帮助您。
【讨论】: