From 0adcc79770a4d22c0b0f6386d000d697d9991c45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E9=93=81?= Date: Sun, 27 Mar 2016 15:17:49 +0800 Subject: [PATCH] fixed for large datasource test in small memory --- .../alibaba/druid/bvt/pool/Large10KTest.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/test/java/com/alibaba/druid/bvt/pool/Large10KTest.java b/src/test/java/com/alibaba/druid/bvt/pool/Large10KTest.java index d07cafde97..0ee1baf9e2 100644 --- a/src/test/java/com/alibaba/druid/bvt/pool/Large10KTest.java +++ b/src/test/java/com/alibaba/druid/bvt/pool/Large10KTest.java @@ -1,5 +1,6 @@ package com.alibaba.druid.bvt.pool; +import java.lang.management.ManagementFactory; import java.sql.Connection; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; @@ -11,10 +12,23 @@ import com.alibaba.druid.util.JdbcUtils; public class Large10KTest extends TestCase { - private DruidDataSource[] dataSources = new DruidDataSource[10000]; + private DruidDataSource[] dataSources; private ScheduledExecutorService scheduler; - + protected void setUp() throws Exception { + + long xmx = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getMax() / (1000 * 1000); // m + + final int dataSourceCount; + if (xmx <= 500) { + dataSourceCount = 500; + } else if (xmx <= 1000) { + dataSourceCount = 1000; + } else { + dataSourceCount = 10000; + } + dataSources = new DruidDataSource[dataSourceCount]; + scheduler = Executors.newScheduledThreadPool(10); for (int i = 0; i < dataSources.length; ++i) { DruidDataSource dataSource = new DruidDataSource();