gweMysql Driver vs MM.MYSQL Driver Profiling Simple Test Case |
Target test case - testSelect.java |
import java.net.URL; import java.sql.*; public class testSelect { public static void test() { try { String url = "jdbc:mysql://localhost:3306/test?characterEncoding=Shift_JIS"; Connection con = DriverManager.getConnection(url, "root", "XXXX"); Statement stmt = con.createStatement(); String query = "select * from foo"; ResultSet rs = stmt.executeQuery(query); while( rs.next() ) { int intval = rs.getInt("col1"); String strval = rs.getString("col2"); } rs.close(); stmt.close(); con.close(); } catch( Exception e ) { e.printStackTrace(); } } public static void main(String[] args) { try { Class.forName(args[0]); for(int i = 0; i < 1000; i++) test(); } catch( Exception e ) { e.printStackTrace(); } } } |
Environment | |
Profiler | Borland Optimizeit Profiler |
Java VM | Java HotSpot(TM) Client VM (build 1.3.1_03-b03, mixed mode) |
OS | Windows2000 SP2 |
CPU | PentiumIII 700MHz |
Memory | 256MB |
RDBMS | MySQL-Max 3.23.49a |
Table definition & data | create table foo(col1 INTEGER PRIMARY KEY,
col2 VARCHAR(128) NOT NULL); INSERT INTO foo values(1, ''); |
gwe.sql.MysqlDriver 2002/05/26 |
Class name | Instance count | Difference | Size | Size difference |
---|---|---|---|---|
int[] | ![]() |
+ 445 | 79 K | + 79 K |
char[] | ![]() |
+ 401 | 27 K | + 27 K |
byte[] | ![]() |
+ 346 | 656 K | + 656 K |
java.lang.String | ![]() |
+ 296 | 11 K | + 11 K |
Object[] | ![]() |
+ 145 | 10 K | + 10 K |
java.util.Hashtable$Entry | ![]() |
+ 79 | 3160 b | + 3160 b |
java.lang.StringBuffer | ![]() |
+ 51 | 2040 b | + 2040 b |
short[] | ![]() |
+ 41 | 3520 b | + 3520 b |
java.lang.Integer | ![]() |
+ 39 | 1248 b | + 1248 b |
java.lang.Class | ![]() |
+ 37 | 1480 b | + 1480 b |
gwe.sql.gweMysqlStringBuffer | ![]() |
+ 35 | 1120 b | + 1120 b |
java.lang.ref.Finalizer | ![]() |
+ 30 | 1440 b | + 1440 b |
java.util.Hashtable | ![]() |
+ 25 | 1400 b | + 1400 b |
java.lang.ref.SoftReference | ![]() |
+ 21 | 1008 b | + 1008 b |
java.util.ArrayList | ![]() |
+ 10 | 400 b | + 400 b |
java.io.FileDescriptor | ![]() |
+ 10 | 320 b | + 320 b |
java.net.SocketOutputStream | ![]() |
+ 10 | 400 b | + 400 b |
java.net.PlainSocketImpl | ![]() |
+ 10 | 720 b | + 720 b |
java.util.Properties | ![]() |
+ 10 | 640 b | + 640 b |
gwe.sql.gweMysqlColumn | ![]() |
+ 10 | 480 b | + 480 b |
sun.io.CharToByteMS932 | ![]() |
+ 10 | 640 b | + 640 b |
sun.io.CharToByteJIS0201 | ![]() |
+ 10 | 720 b | + 720 b |
java.net.SocketInputStream | ![]() |
+ 10 | 400 b | + 400 b |
java.lang.Object | ![]() |
+ 10 | 240 b | + 240 b |
java.util.Hashtable$Enumerator | ![]() |
+ 9 | 504 b | + 504 b |
sun.io.ByteToCharMS932 | ![]() |
+ 9 | 720 b | + 720 b |
sun.io.ByteToCharJIS0201 | ![]() |
+ 9 | 432 b | + 432 b |
java.util.HashMap$Entry | ![]() |
+ 6 | 240 b | + 240 b |
gwe.sql.gweMysqlResultSetCore | ![]() |
+ 5 | 360 b | + 360 b |
gwe.sql.gweMysql | ![]() |
+ 5 | 560 b | + 560 b |
java.io.DataInputStream | ![]() |
+ 5 | 160 b | + 160 b |
java.io.DataOutputStream | ![]() |
+ 5 | 160 b | + 160 b |
gwe.sql.gweMysqlMetaResult | ![]() |
+ 5 | 160 b | + 160 b |
gwe.sql.gweMysqlResultSetBuffer | ![]() |
+ 5 | 200 b | + 200 b |
gwe.sql.gweMysqlPacket | ![]() |
+ 5 | 360 b | + 360 b |
java.net.Socket | ![]() |
+ 5 | 160 b | + 160 b |
gwe.sql.gweMysqlConnection | ![]() |
+ 5 | 400 b | + 400 b |
gwe.sql.gweMysqlStatement | ![]() |
+ 5 | 320 b | + 320 b |
java.net.Socket$1 | ![]() |
+ 4 | 128 b | + 128 b |
java.net.Socket$2 | ![]() |
+ 4 | 128 b | + 128 b |
sun.security.action.GetPropertyAction | ![]() |
+ 4 | 128 b | + 128 b |
java.util.Vector | ![]() |
+ 3 | 120 b | + 120 b |
java.io.FilePermission | ![]() |
+ 2 | 96 b | + 96 b |
java.security.ProtectionDomain | ![]() |
+ 2 | 64 b | + 64 b |
java.lang.Thread | ![]() |
+ 2 | 160 b | + 160 b |
java.lang.RuntimePermission | ![]() |
+ 2 | 80 b | + 80 b |
java.lang.ThreadLocal | ![]() |
+ 2 | 64 b | + 64 b |
java.security.CodeSource | ![]() |
+ 2 | 80 b | + 80 b |
java.lang.ThreadLocal$SecureKey | ![]() |
+ 2 | 64 b | + 64 b |
sun.security.provider.PolicyPermissions | ![]() |
+ 2 | 96 b | + 96 b |
java.security.AccessControlContext | ![]() |
+ 2 | 80 b | + 80 b |
java.sql.SQLPermission | ![]() |
+ 1 | 40 b | + 40 b |
java.sql.DriverInfo | ![]() |
+ 1 | 40 b | + 40 b |
java.net.InetAddress$CacheEntry | ![]() |
+ 1 | 40 b | + 40 b |
gwe.sql.gweMysqlDriver | ![]() |
+ 1 | 24 b | + 24 b |
java.lang.Package | ![]() |
+ 1 | 56 b | + 56 b |
java.net.InetAddress | ![]() |
+ 1 | 40 b | + 40 b |
java.util.HashMap | ![]() |
+ 1 | 64 b | + 64 b |
org.gjt.mm.mysql.Driver Version 2.0.14 |
Class name | Instance count | Difference | Size | Size difference |
---|---|---|---|---|
char[] | ![]() |
+ 4648 | 210 K | + 210 K |
java.lang.String | ![]() |
+ 2681 | 104 K | + 104 K |
Object[] | ![]() |
+ 1582 | 88 K | + 88 K |
java.util.Hashtable$Entry | ![]() |
+ 1273 | 49 K | + 49 K |
byte[] | ![]() |
+ 1058 | 180 K | + 180 K |
sun.io.ByteToCharMS932 | ![]() |
+ 964 | 75 K | + 75 K |
sun.io.ByteToCharJIS0201 | ![]() |
+ 964 | 45 K | + 45 K |
int[] | ![]() |
+ 867 | 96 K | + 96 K |
org.gjt.mm.mysql.Buffer | ![]() |
+ 60 | 2880 b | + 2880 b |
java.lang.StringBuffer | ![]() |
+ 49 | 1960 b | + 1960 b |
short[] | ![]() |
+ 43 | 4224 b | + 4224 b |
java.lang.Class | ![]() |
+ 40 | 1600 b | + 1600 b |
java.lang.ref.Finalizer | ![]() |
+ 40 | 1920 b | + 1920 b |
java.util.Hashtable | ![]() |
+ 27 | 1512 b | + 1512 b |
java.lang.Integer | ![]() |
+ 20 | 640 b | + 640 b |
org.gjt.mm.mysql.Field | ![]() |
+ 16 | 896 b | + 896 b |
java.util.Vector | ![]() |
+ 11 | 440 b | + 440 b |
java.net.PlainSocketImpl | ![]() |
+ 10 | 720 b | + 720 b |
java.net.SocketInputStream | ![]() |
+ 10 | 400 b | + 400 b |
java.net.SocketOutputStream | ![]() |
+ 10 | 400 b | + 400 b |
org.gjt.mm.mysql.jdbc2.Connection | ![]() |
+ 10 | 1600 b | + 1600 b |
java.lang.Object | ![]() |
+ 10 | 240 b | + 240 b |
java.io.FileDescriptor | ![]() |
+ 10 | 320 b | + 320 b |
java.util.StringTokenizer | ![]() |
+ 9 | 504 b | + 504 b |
org.gjt.mm.mysql.jdbc2.Statement | ![]() |
+ 8 | 768 b | + 768 b |
long[] | ![]() |
+ 8 | 384 b | + 384 b |
org.gjt.mm.mysql.EscapeProcessor | ![]() |
+ 8 | 192 b | + 192 b |
org.gjt.mm.mysql.jdbc2.ResultSet | ![]() |
+ 8 | 1280 b | + 1280 b |
java.util.Properties | ![]() |
+ 8 | 512 b | + 512 b |
java.util.HashMap$Entry | ![]() |
+ 5 | 200 b | + 200 b |
java.io.BufferedOutputStream | ![]() |
+ 4 | 160 b | + 160 b |
java.net.Socket$2 | ![]() |
+ 4 | 128 b | + 128 b |
java.io.BufferedInputStream | ![]() |
+ 4 | 192 b | + 192 b |
java.net.Socket | ![]() |
+ 4 | 128 b | + 128 b |
org.gjt.mm.mysql.jdbc2.IO | ![]() |
+ 4 | 416 b | + 416 b |
java.lang.Boolean | ![]() |
+ 3 | 96 b | + 96 b |
java.net.Socket$1 | ![]() |
+ 3 | 96 b | + 96 b |
sun.security.action.GetPropertyAction | ![]() |
+ 3 | 96 b | + 96 b |
java.lang.Package | ![]() |
+ 2 | 112 b | + 112 b |
java.security.ProtectionDomain | ![]() |
+ 2 | 64 b | + 64 b |
java.lang.RuntimePermission | ![]() |
+ 2 | 80 b | + 80 b |
java.security.CodeSource | ![]() |
+ 2 | 80 b | + 80 b |
java.lang.Thread | ![]() |
+ 2 | 160 b | + 160 b |
sun.security.provider.PolicyPermissions | ![]() |
+ 2 | 96 b | + 96 b |
java.security.AccessControlContext | ![]() |
+ 2 | 80 b | + 80 b |
java.io.FilePermission | ![]() |
+ 2 | 96 b | + 96 b |
java.net.InetAddress$CacheEntry | ![]() |
+ 1 | 40 b | + 40 b |
java.net.InetAddress | ![]() |
+ 1 | 40 b | + 40 b |
java.sql.DriverInfo | ![]() |
+ 1 | 40 b | + 40 b |
java.sql.SQLPermission | ![]() |
+ 1 | 40 b | + 40 b |
org.gjt.mm.mysql.Driver | ![]() |
+ 1 | 24 b | + 24 b |