2015-11-23 35 views
0

我创建了一个只包含SQL Lite连接的java代码的类。 所以在这里我在Linux操作系统(覆盆子-PI)&窗口比我看到的Linux是Windows的比较采取更多的内存执行该程序Rasberry-pi比Windows有更多的内存

内存如下所示为Linux

PID USER  PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 
3337 root  20 0 744m 179m 10m S 0.0 19.4 0:07.79 dbtest.java 

的Windows需要18 MB与连接代码

&这里如果我评论连接的代码,那么它需要较少的内存

PID USER  PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 
3337 root  20 0 596m 17m 10m S 0.0 19.4 0:07.79 dbtest.java 

Windows需要9 MB没有连接代码

我想知道为什么Linux正在采取安静的记忆,如果有人知道请看看我的问题。

package test; 

import java.sql.Connection; 
import java.sql.DatabaseMetaData; 
import java.sql.DriverManager; 
import java.sql.SQLException; 

public class DBTest { 

    public static void main(String[] args) { 
     dbtest(); 
     while (true) { 
      try { 
       Thread.sleep(20000); 
      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 

    public static boolean dbtest() { 
     Connection conn = null; 
     try { 

      System.out.println("Before ...... Class.forname"); 
      Class.forName("org.sqlite.JDBC"); 
      try { 
       Thread.sleep(5000); 
      } catch (InterruptedException e) { 

       e.printStackTrace(); 
      } 
      String dbURL = "jdbc:sqlite:product.db"; 
      conn = DriverManager.getConnection(dbURL); 
      if (conn != null) { 
       System.out.println("Connected to the database"); 
       try { 
        Thread.sleep(5000); 
       } catch (InterruptedException e) { 

        e.printStackTrace(); 
       } 
       DatabaseMetaData dm = (DatabaseMetaData) conn.getMetaData(); 
       System.out.println("Driver name: " + dm.getDriverName()); 
       System.out.println("Driver version: " + dm.getDriverVersion()); 
       System.out.println("Product name: " 
         + dm.getDatabaseProductName()); 
       System.out.println("Product version: " 
         + dm.getDatabaseProductVersion()); 
      } 
     } catch (ClassNotFoundException ex) { 
      ex.printStackTrace(); 
     } catch (SQLException ex) { 
      ex.printStackTrace(); 
     } finally { 
      try { 
       conn.close(); 
      } catch (SQLException e) { 
       e.printStackTrace(); 
      } 
     } 
     return false; 
    } 
} 
+0

的JVM? https://docs.oracle.com/cd/E21764_01/web.1111/e13814/jvm_tuning.htm#PERFM155 并且您是否使用相同的堆大小? http://viralpatel.net/blogs/jvm-java-increase-heap-size-setting-heap-size-jvm-heap/ – HRgiger

+0

JVM是java 7&Linux的情况下,它需要14942208堆大小为Windows需要123731968堆大小 – yuvi

+0

这意味着windows正在采取更多的堆大小 在这里,我的怀疑是所有关于系统的物理RAM Linux需要179 MB和Windows 18 MB – yuvi

回答

相关问题