保存查询的内存



我有一个Java程序,可以在mysql、mongodb和neo4j上执行查询。我想存储我的java程序在查询过程中的每个瞬间使用的内存,并存储到一个数组中。

以下是mysql 中的一个查询示例

try {
String url = "jdbc:mysql://127.0.0.1:3306/database";
String user = "user";
String password = "pass";
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(url, user, password);
String sql = "SELECT IDUSER, NAME, CITY FROM EMPLOYEES";
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);
rs.close();
st.close();
conn.close();
} catch (Exception exc) {
exc.printStackTrace();
}

有几个程序使用内存进行工作。

第一个是您的java程序,因为您在代码中使用SELECT,数据将从DB传输到程序空间,这完全取决于ResultSet的大小。其他对象的大小相同。

另一个程序是DBMS,它使用内存从磁盘加载数据并将其发送回Java程序。在DBMS中,它还取决于请求数据的大小。

然而,如果您想要在系统中使用总内存,您可以使用一些有用的操作系统命令,如linux中的freetop

最新更新