diff --git a/ActiveAndroid/build.gradle b/ActiveAndroid/build.gradle index 6096675..2562e22 100644 --- a/ActiveAndroid/build.gradle +++ b/ActiveAndroid/build.gradle @@ -16,7 +16,7 @@ android { defaultConfig { applicationId 'de.greenrobot.performance.activeandroid' - minSdkVersion rootProject.ext.minSdkVersion + minSdkVersion 14 // due to support-compat lib targetSdkVersion rootProject.ext.targetSdkVersion testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" @@ -25,6 +25,6 @@ android { dependencies { androidTestCompile project(':Common') - androidTestCompile 'com.android.support:support-v4:23.0.1' + androidTestCompile 'com.android.support:support-compat:26.1.0' androidTestCompile 'com.michaelpardo:activeandroid:3.1.0-SNAPSHOT' } diff --git a/ActiveAndroid/src/androidTest/java/de/greenrobot/performance/activeandroid/PerfTestActiveAndroid.java b/ActiveAndroid/src/androidTest/java/de/greenrobot/performance/activeandroid/PerfTestActiveAndroid.java index 85439b7..0a5648d 100644 --- a/ActiveAndroid/src/androidTest/java/de/greenrobot/performance/activeandroid/PerfTestActiveAndroid.java +++ b/ActiveAndroid/src/androidTest/java/de/greenrobot/performance/activeandroid/PerfTestActiveAndroid.java @@ -5,6 +5,9 @@ import com.activeandroid.Configuration; import com.activeandroid.query.Select; +import org.junit.After; +import org.junit.Before; + import java.util.ArrayList; import java.util.List; @@ -21,26 +24,27 @@ public class PerfTestActiveAndroid extends BasePerfTestCase { private static final String DATABASE_NAME = "active-android.db"; - @Override - public void tearDown() throws Exception { + @Before + public void setUp() { + // set up database + Configuration dbConfiguration = new Configuration.Builder(getTargetContext()) + .setDatabaseName(DATABASE_NAME) + .addModelClass(IndexedStringEntity.class) + .addModelClass(SimpleEntityNotNull.class) + .create(); + ActiveAndroid.initialize(dbConfiguration); + } + + @After + public void cleanUp() throws Exception { if (Cache.isInitialized()) { ActiveAndroid.dispose(); } getTargetContext().deleteDatabase(DATABASE_NAME); - - super.tearDown(); } @Override protected void doIndexedStringEntityQueries() throws Exception { - // set up database - Configuration dbConfiguration = new Configuration.Builder(getTargetContext()) - .setDatabaseName(DATABASE_NAME) - .addModelClass(IndexedStringEntity.class) - .create(); - ActiveAndroid.initialize(dbConfiguration); - log("Set up database."); - for (int i = 0; i < RUNS; i++) { log("----Run " + (i + 1) + " of " + RUNS); indexedStringEntityQueriesRun(getBatchSize()); @@ -90,18 +94,6 @@ private void indexedStringEntityQueriesRun(int count) { log("Deleted all entities."); } - @Override - protected void onRunSetup() throws Exception { - super.onRunSetup(); - - // set up database - Configuration dbConfiguration = new Configuration.Builder(getTargetContext()) - .setDatabaseName(DATABASE_NAME) - .addModelClass(SimpleEntityNotNull.class) - .create(); - ActiveAndroid.initialize(dbConfiguration); - } - @Override protected void doOneByOneCrudRun(int count) throws Exception { final List list = new ArrayList<>(); diff --git a/Cupboard/build.gradle b/Cupboard/build.gradle index 11d00dd..342c32a 100644 --- a/Cupboard/build.gradle +++ b/Cupboard/build.gradle @@ -21,5 +21,5 @@ android { dependencies { androidTestCompile project(':Common') - androidTestCompile 'nl.qbusict:cupboard:2.1.4' + androidTestCompile 'nl.qbusict:cupboard:2.2.0' } diff --git a/Cupboard/src/androidTest/java/de/greenrobot/performance/cupboard/PerfTestCupboard.java b/Cupboard/src/androidTest/java/de/greenrobot/performance/cupboard/PerfTestCupboard.java index 2400b48..f05fcee 100644 --- a/Cupboard/src/androidTest/java/de/greenrobot/performance/cupboard/PerfTestCupboard.java +++ b/Cupboard/src/androidTest/java/de/greenrobot/performance/cupboard/PerfTestCupboard.java @@ -4,6 +4,9 @@ import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; +import org.junit.After; +import org.junit.Before; + import java.util.ArrayList; import java.util.List; @@ -25,39 +28,30 @@ public class PerfTestCupboard extends BasePerfTestCase { private Cupboard cupboard; private DatabaseCompartment database; - @Override - public void setUp() throws Exception { - super.setUp(); - - setUpCupboard(); - } - - private void setUpCupboard() { + @Before + public void setUp() { cupboard = new CupboardBuilder().useAnnotations().build(); + // set up database + cupboard.register(IndexedStringEntity.class); + cupboard.register(SimpleEntityNotNull.class); + DbHelper dbHelper = new DbHelper(getTargetContext(), DATABASE_NAME, DATABASE_VERSION); + database = cupboard.withDatabase(dbHelper.getWritableDatabase()); } - @Override - public void tearDown() throws Exception { + @After + public void cleanUp() throws Exception { getTargetContext().deleteDatabase(DATABASE_NAME); - - super.tearDown(); } @Override protected void doIndexedStringEntityQueries() { - // set up database - cupboard.register(IndexedStringEntity.class); - DbHelper dbHelper = new DbHelper(getTargetContext(), DATABASE_NAME, DATABASE_VERSION); - DatabaseCompartment database = cupboard.withDatabase(dbHelper.getWritableDatabase()); - log("Set up database."); - for (int i = 0; i < RUNS; i++) { log("----Run " + (i + 1) + " of " + RUNS); - indexedStringEntityQueriesRun(database, getBatchSize()); + indexedStringEntityQueriesRun(getBatchSize()); } } - private void indexedStringEntityQueriesRun(DatabaseCompartment database, int count) { + private void indexedStringEntityQueriesRun(int count) { // create entities List entities = new ArrayList<>(count); String[] fixedRandomStrings = StringGenerator.createFixedRandomStrings(count); @@ -92,16 +86,6 @@ private void indexedStringEntityQueriesRun(DatabaseCompartment database, int cou log("Deleted all entities."); } - @Override - protected void onRunSetup() throws Exception { - super.onRunSetup(); - - // set up database - cupboard.register(SimpleEntityNotNull.class); - DbHelper dbHelper = new DbHelper(getTargetContext(), DATABASE_NAME, DATABASE_VERSION); - database = cupboard.withDatabase(dbHelper.getWritableDatabase()); - } - @Override protected void doOneByOneCrudRun(int count) throws Exception { final List list = new ArrayList<>(); diff --git a/DBFlow/build.gradle b/DBFlow/build.gradle index 70ee67c..abfa1c2 100644 --- a/DBFlow/build.gradle +++ b/DBFlow/build.gradle @@ -23,7 +23,7 @@ android { } } -def dbflow_version = "3.1.1" +def dbflow_version = "4.1.1" dependencies { androidTestCompile project(':Common') diff --git a/DBFlow/src/androidTest/java/de/greenrobot/performance/dbflow/PerfTestDbFlow.java b/DBFlow/src/androidTest/java/de/greenrobot/performance/dbflow/PerfTestDbFlow.java index a15cfbe..7576081 100644 --- a/DBFlow/src/androidTest/java/de/greenrobot/performance/dbflow/PerfTestDbFlow.java +++ b/DBFlow/src/androidTest/java/de/greenrobot/performance/dbflow/PerfTestDbFlow.java @@ -2,6 +2,7 @@ import android.support.annotation.NonNull; +import com.raizlabs.android.dbflow.config.DatabaseConfig; import com.raizlabs.android.dbflow.config.FlowConfig; import com.raizlabs.android.dbflow.config.FlowManager; import com.raizlabs.android.dbflow.data.Blob; @@ -12,6 +13,9 @@ import com.raizlabs.android.dbflow.structure.database.transaction.FastStoreModelTransaction; import com.raizlabs.android.dbflow.structure.database.transaction.ITransaction; +import org.junit.After; +import org.junit.Before; + import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -25,19 +29,23 @@ */ public class PerfTestDbFlow extends BasePerfTestCase { - @Override - public void setUp() throws Exception { - super.setUp(); - - FlowManager.init(new FlowConfig.Builder(getTargetContext()).build()); + private static final String DATABASE_NAME = "flowdb"; + private static final String DATABASE_EXTENSION = ".db"; + + @Before + public void setUp() { + FlowManager.init(new FlowConfig.Builder(getTargetContext()) + .addDatabaseConfig(DatabaseConfig.builder(FlowDatabase.class) + .databaseName(DATABASE_NAME) + .extensionName(DATABASE_EXTENSION) + .build()) + .build()); } - @Override - public void tearDown() throws Exception { + @After + public void cleanUp() { FlowManager.destroy(); - getTargetContext().deleteDatabase(FlowDatabase.NAME + ".db"); - - super.tearDown(); + getTargetContext().deleteDatabase(DATABASE_NAME + DATABASE_EXTENSION); } @Override @@ -120,6 +128,7 @@ protected void doOneByOneCrudRun(int count) throws Exception { deleteAll(); } + @SuppressWarnings("ResultOfMethodCallIgnored") @Override protected void doBatchCrudRun(int count) throws Exception { final List list = new ArrayList<>(); @@ -144,16 +153,16 @@ protected void doBatchCrudRun(int count) throws Exception { startClock(); for (int i = 0; i < reloaded.size(); i++) { SimpleEntityNotNull entity = reloaded.get(i); - long id = entity._id; - boolean simpleBoolean = entity.simpleBoolean; - byte simpleByte = entity.simpleByte; - short simpleShort = entity.simpleShort; - int simpleInt = entity.simpleInt; - long simpleLong = entity.simpleLong; - float simpleFloat = entity.simpleFloat; - double simpleDouble = entity.simpleDouble; - String simpleString = entity.simpleString; - byte[] blob = entity.simpleByteArray.getBlob(); + entity.get_id(); + entity.isSimpleBoolean(); + entity.getSimpleByte(); + entity.getSimpleShort(); + entity.getSimpleInt(); + entity.getSimpleLong(); + entity.getSimpleFloat(); + entity.getSimpleDouble(); + entity.getSimpleString(); + entity.getSimpleByteArray().getBlob(); } stopClock(Benchmark.Type.BATCH_ACCESS); diff --git a/DBFlow/src/main/java/de/greenrobot/performance/dbflow/FlowDatabase.java b/DBFlow/src/main/java/de/greenrobot/performance/dbflow/FlowDatabase.java index e50417a..acc07ca 100644 --- a/DBFlow/src/main/java/de/greenrobot/performance/dbflow/FlowDatabase.java +++ b/DBFlow/src/main/java/de/greenrobot/performance/dbflow/FlowDatabase.java @@ -2,10 +2,8 @@ import com.raizlabs.android.dbflow.annotation.Database; -@Database(name = FlowDatabase.NAME, version = FlowDatabase.VERSION) +@Database(version = FlowDatabase.VERSION) public class FlowDatabase { - public static final String NAME = "flowdb"; - public static final int VERSION = 1; } diff --git a/DBFlow/src/main/java/de/greenrobot/performance/dbflow/IndexedStringEntity.java b/DBFlow/src/main/java/de/greenrobot/performance/dbflow/IndexedStringEntity.java index e59a775..94dbe24 100644 --- a/DBFlow/src/main/java/de/greenrobot/performance/dbflow/IndexedStringEntity.java +++ b/DBFlow/src/main/java/de/greenrobot/performance/dbflow/IndexedStringEntity.java @@ -12,10 +12,10 @@ @Table(database = FlowDatabase.class) public class IndexedStringEntity extends BaseModel { - @PrimaryKey(autoincrement = false) - public long _id; + @PrimaryKey + long _id; @Column @Index - public String indexedString; + String indexedString; } diff --git a/DBFlow/src/main/java/de/greenrobot/performance/dbflow/SimpleEntityNotNull.java b/DBFlow/src/main/java/de/greenrobot/performance/dbflow/SimpleEntityNotNull.java index 37e5667..ecd6c9c 100644 --- a/DBFlow/src/main/java/de/greenrobot/performance/dbflow/SimpleEntityNotNull.java +++ b/DBFlow/src/main/java/de/greenrobot/performance/dbflow/SimpleEntityNotNull.java @@ -12,24 +12,64 @@ @Table(database = FlowDatabase.class) public class SimpleEntityNotNull extends BaseModel { - @PrimaryKey(autoincrement = false) - public long _id; + @PrimaryKey + long _id; @Column - public boolean simpleBoolean; + boolean simpleBoolean; @Column - public byte simpleByte; + byte simpleByte; @Column - public short simpleShort; + short simpleShort; @Column - public int simpleInt; + int simpleInt; @Column - public long simpleLong; + long simpleLong; @Column - public float simpleFloat; + float simpleFloat; @Column - public double simpleDouble; + double simpleDouble; @Column - public String simpleString; + String simpleString; @Column - public Blob simpleByteArray; + Blob simpleByteArray; + + public long get_id() { + return _id; + } + + public boolean isSimpleBoolean() { + return simpleBoolean; + } + + public byte getSimpleByte() { + return simpleByte; + } + + public short getSimpleShort() { + return simpleShort; + } + + public int getSimpleInt() { + return simpleInt; + } + + public long getSimpleLong() { + return simpleLong; + } + + public float getSimpleFloat() { + return simpleFloat; + } + + public double getSimpleDouble() { + return simpleDouble; + } + + public String getSimpleString() { + return simpleString; + } + + public Blob getSimpleByteArray() { + return simpleByteArray; + } } diff --git a/Firebase/src/androidTest/java/de/greenrobot/performance/firebase/PerfTestFirebase.java b/Firebase/src/androidTest/java/de/greenrobot/performance/firebase/PerfTestFirebase.java index e819961..ced9d91 100644 --- a/Firebase/src/androidTest/java/de/greenrobot/performance/firebase/PerfTestFirebase.java +++ b/Firebase/src/androidTest/java/de/greenrobot/performance/firebase/PerfTestFirebase.java @@ -7,6 +7,9 @@ import com.firebase.client.Query; import com.firebase.client.ValueEventListener; +import org.junit.After; +import org.junit.Before; + import java.util.ArrayList; import java.util.List; import java.util.concurrent.CountDownLatch; @@ -40,14 +43,8 @@ protected int getQueryCount() { return 100; } - @Override - public void setUp() throws Exception { - super.setUp(); - - setupFirebase(); - } - - private void setupFirebase() { + @Before + public void setUp() { // handle multiple tests calling setup if (!Firebase.getDefaultConfig().isFrozen()) { Firebase.getDefaultConfig().setPersistenceEnabled(true); @@ -56,16 +53,15 @@ private void setupFirebase() { Firebase.goOffline(); rootFirebaseRef = new Firebase("https://luminous-inferno-2264.firebaseio.com"); + simpleEntityRef = rootFirebaseRef.child("simpleEntities"); } - @Override - public void tearDown() throws Exception { + @After + public void cleanUp() { rootFirebaseRef.getApp().purgeOutstandingWrites(); rootFirebaseRef.removeValue(); getTargetContext().deleteDatabase("luminous-inferno-2264.firebaseio.com_default"); - - super.tearDown(); } @Override @@ -149,12 +145,6 @@ public void onCancelled(FirebaseError firebaseError) { log("Deleted all entities."); } - @Override - protected void onRunSetup() throws Exception { - // set up node for entities - simpleEntityRef = rootFirebaseRef.child("simpleEntities"); - } - @Override protected void doOneByOneCrudRun(int count) throws Exception { final List list = new ArrayList<>(); diff --git a/OrmLite/build.gradle b/OrmLite/build.gradle index bd0c190..1b829b2 100644 --- a/OrmLite/build.gradle +++ b/OrmLite/build.gradle @@ -21,5 +21,5 @@ android { dependencies { androidTestCompile project(':Common') - androidTestCompile 'com.j256.ormlite:ormlite-android:4.48' + androidTestCompile 'com.j256.ormlite:ormlite-android:5.0' } diff --git a/OrmLite/src/androidTest/java/de/greenrobot/performance/ormlite/PerfTestOrmLite.java b/OrmLite/src/androidTest/java/de/greenrobot/performance/ormlite/PerfTestOrmLite.java index cd6d6bf..5be7f70 100644 --- a/OrmLite/src/androidTest/java/de/greenrobot/performance/ormlite/PerfTestOrmLite.java +++ b/OrmLite/src/androidTest/java/de/greenrobot/performance/ormlite/PerfTestOrmLite.java @@ -2,6 +2,9 @@ import com.j256.ormlite.dao.Dao; +import org.junit.After; +import org.junit.Before; + import java.sql.SQLException; import java.util.ArrayList; import java.util.List; @@ -21,51 +24,39 @@ */ public class PerfTestOrmLite extends BasePerfTestCase { - private boolean inMemory = false; + private final static boolean IN_MEMORY = false; + private DbHelper dbHelper; private Dao dao; + private Dao daoIndexed; - @Override - public void setUp() throws Exception { - super.setUp(); - - setUpOrmLite(); - } - - protected void setUpOrmLite() { + @Before + public void setUp() throws SQLException { String name; - if (inMemory) { + if (IN_MEMORY) { name = null; } else { name = "test-db"; - getTargetContext().deleteDatabase(name); } dbHelper = new DbHelper(getTargetContext(), name); + dao = dbHelper.getDao(SimpleEntityNotNull.class); + daoIndexed = dbHelper.getDao(IndexedStringEntity.class); } - @Override - public void tearDown() throws Exception { - if (!inMemory) { - getTargetContext().deleteDatabase("test-db"); - } - - super.tearDown(); + @After + public void cleanUp() { + getTargetContext().deleteDatabase("test-db"); } @Override protected void doIndexedStringEntityQueries() throws Exception { - // set up data access - final Dao dao = dbHelper.getDao(IndexedStringEntity.class); - log("Set up data access."); - for (int i = 0; i < RUNS; i++) { log("----Run " + (i + 1) + " of " + RUNS); - indexedStringEntityQueriesRun(dao, getBatchSize()); + indexedStringEntityQueriesRun(getBatchSize()); } } - private void indexedStringEntityQueriesRun(final Dao dao, int count) - throws Exception { + private void indexedStringEntityQueriesRun(int count) throws Exception { // create entities final List entities = new ArrayList<>(count); String[] fixedRandomStrings = StringGenerator.createFixedRandomStrings(count); @@ -78,11 +69,11 @@ private void indexedStringEntityQueriesRun(final Dao log("Built entities."); // insert entities - dao.callBatchTasks(new Callable() { + daoIndexed.callBatchTasks(new Callable() { @Override public Void call() throws Exception { for (IndexedStringEntity entity : entities) { - dao.create(entity); + daoIndexed.create(entity); } return null; } @@ -96,7 +87,7 @@ public Void call() throws Exception { for (int i = 0; i < getQueryCount(); i++) { int nextIndex = randomIndices[i]; //noinspection unused - List query = dao.queryBuilder() + List query = daoIndexed.queryBuilder() .where() .eq("INDEXED_STRING", fixedRandomStrings[nextIndex]) .query(); @@ -109,13 +100,6 @@ public Void call() throws Exception { log("Deleted all entities."); } - @Override - protected void onRunSetup() throws Exception { - super.onRunSetup(); - - dao = dbHelper.getDao(SimpleEntityNotNull.class); - } - @Override protected void doOneByOneCrudRun(int count) throws Exception { final List list = new ArrayList<>();