mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
opimized memory used
This commit is contained in:
@@ -64,20 +64,17 @@ public class StatFilterAfterResetTest extends TestCase {
|
||||
sqlStat = dataSource.getDataSourceStat().getSqlStat(sql);
|
||||
Assert.assertNotNull(sqlStat);
|
||||
|
||||
Histogram histogram = sqlStat.getExecuteAndResultHoldTimeHistogram();
|
||||
Assert.assertEquals("first failed", 1,
|
||||
histogram.getSum());
|
||||
Assert.assertEquals("first failed", 1, sqlStat.getExecuteAndResultHoldTimeHistogramSum());
|
||||
|
||||
rs.close();
|
||||
|
||||
Assert.assertEquals("second failed", 1,
|
||||
histogram.getSum());
|
||||
Assert.assertEquals("second failed", 1, sqlStat.getExecuteAndResultHoldTimeHistogramSum());
|
||||
|
||||
stmt.close();
|
||||
|
||||
conn.close();
|
||||
|
||||
Assert.assertEquals(1, histogram.getSum());
|
||||
Assert.assertEquals(1, sqlStat.getExecuteAndResultHoldTimeHistogramSum());
|
||||
}
|
||||
|
||||
JdbcStatManager.getInstance().reset();
|
||||
@@ -97,15 +94,13 @@ public class StatFilterAfterResetTest extends TestCase {
|
||||
}
|
||||
|
||||
Assert.assertNotSame(sqlStat, dataSource.getDataSourceStat().getSqlStat(sql));
|
||||
|
||||
|
||||
{
|
||||
Histogram histogram = sqlStat.getExecuteAndResultHoldTimeHistogram();
|
||||
Assert.assertEquals(0, histogram.getValue(0) + histogram.getValue(1) + histogram.getValue(2));
|
||||
Assert.assertEquals(0, sqlStat.getExecuteAndResultHoldTimeHistogramSum());
|
||||
}
|
||||
|
||||
|
||||
sqlStat = dataSource.getDataSourceStat().getSqlStat(sql);
|
||||
|
||||
Histogram histogram = sqlStat.getExecuteAndResultHoldTimeHistogram();
|
||||
Assert.assertEquals(1, histogram.getValue(0) + histogram.getValue(1) + histogram.getValue(2));
|
||||
|
||||
Assert.assertEquals(1, sqlStat.getExecuteAndResultHoldTimeHistogramSum());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,12 +79,10 @@ public class StatFilterExecuteFirstResultSetTest extends TestCase {
|
||||
|
||||
JdbcSqlStat sqlStat = dataSource.getDataSourceStat().getSqlStat(sql);
|
||||
|
||||
Histogram histogram = sqlStat.getHistogram();
|
||||
Assert.assertEquals(1, histogram.getSum());
|
||||
Assert.assertEquals(1, sqlStat.getHistogramSum());
|
||||
|
||||
Histogram rsHoldHistogram = sqlStat.getExecuteAndResultHoldTimeHistogram();
|
||||
|
||||
Assert.assertEquals(1, rsHoldHistogram.getSum());
|
||||
Assert.assertEquals(1, sqlStat.getExecuteAndResultHoldTimeHistogramSum());
|
||||
}
|
||||
|
||||
static class MyMockPreparedStatement extends MockPreparedStatement {
|
||||
|
||||
@@ -67,7 +67,7 @@ public class StatFilterExecuteTest extends TestCase {
|
||||
|
||||
PreparedStatement stmt = conn.prepareStatement(sql);
|
||||
|
||||
Assert.assertEquals(0, dataSource.getDataSourceStat().getSqlStat(sql).getExecuteAndResultHoldTimeHistogram().getSum());
|
||||
Assert.assertEquals(0, dataSource.getDataSourceStat().getSqlStat(sql).getExecuteAndResultHoldTimeHistogramSum());
|
||||
|
||||
boolean firstResult = stmt.execute();
|
||||
Assert.assertFalse(firstResult);
|
||||
@@ -78,12 +78,9 @@ public class StatFilterExecuteTest extends TestCase {
|
||||
|
||||
JdbcSqlStat sqlStat = dataSource.getDataSourceStat().getSqlStat(sql);
|
||||
|
||||
Histogram histogram = sqlStat.getHistogram();
|
||||
Assert.assertEquals(1, histogram.getSum());
|
||||
Assert.assertEquals(1, sqlStat.getHistogramSum());
|
||||
|
||||
Histogram rsHoldHistogram = sqlStat.getExecuteAndResultHoldTimeHistogram();
|
||||
|
||||
Assert.assertEquals(1, rsHoldHistogram.getSum());
|
||||
Assert.assertEquals(1, sqlStat.getExecuteAndResultHoldTimeHistogramSum());
|
||||
}
|
||||
|
||||
static class MyMockPreparedStatement extends MockPreparedStatement {
|
||||
|
||||
@@ -66,17 +66,16 @@ public class StatFilterResultSetMultiCloseTest extends TestCase {
|
||||
sqlStat = dataSource.getDataSourceStat().getSqlStat(sql);
|
||||
Assert.assertNotNull(sqlStat);
|
||||
|
||||
Histogram histogram = sqlStat.getExecuteAndResultHoldTimeHistogram();
|
||||
Assert.assertEquals("first failed", 1, histogram.getValue(0) + histogram.getValue(1) + histogram.getValue(2));
|
||||
Assert.assertEquals("first failed", 1, sqlStat.getExecuteAndResultHoldTimeHistogramSum());
|
||||
|
||||
rs.close();
|
||||
|
||||
Assert.assertEquals("second failed", 1, histogram.getValue(0) + histogram.getValue(1) + histogram.getValue(2));
|
||||
Assert.assertEquals("second failed", 1, sqlStat.getExecuteAndResultHoldTimeHistogramSum());
|
||||
|
||||
stmt.close();
|
||||
|
||||
conn.close();
|
||||
|
||||
Assert.assertEquals(1, histogram.getValue(0) + histogram.getValue(1) + histogram.getValue(2));
|
||||
Assert.assertEquals(1, sqlStat.getExecuteAndResultHoldTimeHistogramSum());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.alibaba.druid.stat;
|
||||
|
||||
import java.lang.management.ManagementFactory;
|
||||
import java.text.NumberFormat;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
public class JdbcSqlStatTest extends TestCase {
|
||||
private JdbcSqlStat item;
|
||||
|
||||
public void test_0() throws Exception {
|
||||
item = new JdbcSqlStat("");
|
||||
gc();
|
||||
long memoryStart = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getUsed();
|
||||
|
||||
final int COUNT = 1024 * 1024;
|
||||
JdbcSqlStat[] items = new JdbcSqlStat[COUNT];
|
||||
for (int i = 0; i < COUNT; ++i) {
|
||||
items[i] = new JdbcSqlStat("");
|
||||
// items[i] = Histogram.makeHistogram(20);
|
||||
}
|
||||
|
||||
long memoryEnd = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getUsed();
|
||||
|
||||
System.out.println("memory used : " + NumberFormat.getInstance().format(memoryEnd - memoryStart));
|
||||
}
|
||||
|
||||
private void gc() {
|
||||
for (int i = 0; i < 10; ++i) {
|
||||
System.gc();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user