Android Open Source - couchbase-lite-android Test14_ Reduce View From Project Back to project page couchbase-lite-android .
License The source code is released under:
Apache License
If you think the Android project couchbase-lite-android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code package com.couchbase.lite.performance2;
/ * f r o m w w w . j a v a 2 s . c o m * /
import com.couchbase.lite.CouchbaseLiteException;
import com.couchbase.lite.Document;
import com.couchbase.lite.Emitter;
import com.couchbase.lite.LitePerfTestCase;
import com.couchbase.lite.LiteTestCase;
import com.couchbase.lite.Mapper;
import com.couchbase.lite.Query;
import com.couchbase.lite.QueryEnumerator;
import com.couchbase.lite.QueryRow;
import com.couchbase.lite.Reducer;
import com.couchbase.lite.Status;
import com.couchbase.lite.TransactionalTask;
import com.couchbase.lite.View;
import com.couchbase.lite.internal.Body;
import com.couchbase.lite.internal.RevisionInternal;
import com.couchbase.lite.util.Log;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Test14_ReduceView extends LitePerfTestCase {
public static final String TAG = "Test14_ReduceView" ;
private static final String _propertyValue = "1" ;
public double runOne(final int numberOfDocuments, final int sizeOfDocuments) throws Exception {
final StringBuffer bigObj = new StringBuffer(sizeOfDocuments);
for (int i = 0; i < sizeOfDocuments; i++) {
bigObj.append(_propertyValue);
}
View view = database.getView("vacant" );
view.setMapReduce(
new Mapper() {
public void map(Map<String, Object> document, Emitter emitter) {
Boolean vacant = (Boolean) document.get("vacant" );
String name = (String) document.get("name" );
if (vacant && name != null) {
emitter.emit(name, vacant);
}
}
},
new Reducer() {
public Object reduce(List<Object> keys, List<Object> values, boolean rereduce) {
return View.totalValues(values);
}
},
"1.0.0"
);
boolean success = database.runInTransaction(new TransactionalTask() {
public boolean run() {
for (int i = 0; i < numberOfDocuments; i++) {
String name = String.format("%s" ,bigObj);
boolean vacant = ((i + 2) % 2 == 0) ? true : false;
Map<String,Object> props = new HashMap<String,Object>();
props.put("name" ,name);
props.put("apt" ,i);
props.put("phone" ,408100000 + i);
props.put("vacant" ,vacant);
Document doc = database.createDocument();
try {
doc.putProperties(props);
}
catch (CouchbaseLiteException cblex)
{
Log.v("PerformanceStats" ,TAG+", Failed to create doc " +props,cblex);
return false;
}
}
return true;
}
});
long startMillis = System.currentTimeMillis();
Query query = database.getView("vacant" ).createQuery();
query.setMapOnly(false);
QueryEnumerator rowEnum = query.run();
QueryRow row = rowEnum.getRow(0);
double executionTime = Long.valueOf(System.currentTimeMillis()-startMillis);
Log.v("PerformanceStats" ,TAG+"," +executionTime+"," +numberOfDocuments+"," +sizeOfDocuments);
return executionTime;
}
}
Java Source Code List com.couchbase.lite.ApiTest.java com.couchbase.lite.AttachmentsTest.java com.couchbase.lite.AuthTest.java com.couchbase.lite.Base64Test.java com.couchbase.lite.BlobStoreWriterTest.java com.couchbase.lite.CRUDOperationsTest.java com.couchbase.lite.CacheTest.java com.couchbase.lite.ChangesTest.java com.couchbase.lite.CollationTest.java com.couchbase.lite.DatabaseTest.java com.couchbase.lite.DocumentTest.java com.couchbase.lite.LitePerfTestCase.java com.couchbase.lite.LiteTestCase.java com.couchbase.lite.LiteTestContext.java com.couchbase.lite.LocalDocsTest.java com.couchbase.lite.ManagerTest.java com.couchbase.lite.MiscTest.java com.couchbase.lite.MultipartReaderTest.java com.couchbase.lite.RevTreeTest.java com.couchbase.lite.RevisionsTest.java com.couchbase.lite.RouterTest.java com.couchbase.lite.SequenceMapTest.java com.couchbase.lite.ValidationsTest.java com.couchbase.lite.ViewsTest.java com.couchbase.lite.android.AndroidContext.java com.couchbase.lite.android.AndroidLogger.java com.couchbase.lite.android.AndroidNetworkReachabilityManager.java com.couchbase.lite.android.AndroidSQLiteStorageEngineFactory.java com.couchbase.lite.android.AndroidSQLiteStorageEngine.java com.couchbase.lite.mockserver.MockBulkDocs.java com.couchbase.lite.mockserver.MockChangesFeedNoResponse.java com.couchbase.lite.mockserver.MockChangesFeed.java com.couchbase.lite.mockserver.MockCheckpointGet.java com.couchbase.lite.mockserver.MockCheckpointPut.java com.couchbase.lite.mockserver.MockDispatcher.java com.couchbase.lite.mockserver.MockDocumentBulkGet.java com.couchbase.lite.mockserver.MockDocumentGet.java com.couchbase.lite.mockserver.MockDocumentPut.java com.couchbase.lite.mockserver.MockFacebookAuthPost.java com.couchbase.lite.mockserver.MockHelper.java com.couchbase.lite.mockserver.MockPreloadedPullTarget.java com.couchbase.lite.mockserver.MockRevsDiff.java com.couchbase.lite.mockserver.MockSessionGet.java com.couchbase.lite.mockserver.SmartMockResponse.java com.couchbase.lite.mockserver.WrappedSmartMockResponse.java com.couchbase.lite.performance2.Test01_CreateDocs.java com.couchbase.lite.performance2.Test02_CreateDocsUnoptimizedWay.java com.couchbase.lite.performance2.Test03_CreateDocsWithAttachments.java com.couchbase.lite.performance2.Test06_PullReplication.java com.couchbase.lite.performance2.Test07_PushReplication.java com.couchbase.lite.performance2.Test08_DocRevisions.java com.couchbase.lite.performance2.Test09_LoadDB.java com.couchbase.lite.performance2.Test10_DeleteDB.java com.couchbase.lite.performance2.Test11_DeleteDocs.java com.couchbase.lite.performance2.Test12_IndexView.java com.couchbase.lite.performance2.Test13_QueryView.java com.couchbase.lite.performance2.Test14_ReduceView.java com.couchbase.lite.performance2.Test28_KeySizes.java com.couchbase.lite.performance2.Test29_AllDocQuery.java com.couchbase.lite.performance2.Test30_LiveQuery.java com.couchbase.lite.performance2.Test31_CompactDB.java com.couchbase.lite.performance.Test10_DeleteDB.java com.couchbase.lite.performance.Test11_DeleteDocs.java com.couchbase.lite.performance.Test12_IndexView.java com.couchbase.lite.performance.Test13_QueryView.java com.couchbase.lite.performance.Test14_ReduceView.java com.couchbase.lite.performance.Test16_ParallelPushReplication.java com.couchbase.lite.performance.Test1_CreateDocs.java com.couchbase.lite.performance.Test2_CreateDocsUnoptimizedWay.java com.couchbase.lite.performance.Test3_CreateDocsWithAttachments.java com.couchbase.lite.performance.Test6_PushReplication.java com.couchbase.lite.performance.Test7_PullReplication.java com.couchbase.lite.performance.Test8_DocRevisions.java com.couchbase.lite.performance.Test9_LoadDB.java com.couchbase.lite.replicator.BulkDownloaderTest.java com.couchbase.lite.replicator.ChangeTrackerTest.java com.couchbase.lite.replicator.CustomizableMockHttpClient.java com.couchbase.lite.replicator.ReplicationTest.java com.couchbase.lite.replicator.ResponderChain.java com.couchbase.lite.support.BatcherTest.java com.couchbase.lite.support.JsonDocumentTest.java com.couchbase.lite.support.PersistentCookieStoreTest.java com.couchbase.lite.support.RemoteRequestTest.java com.couchbase.touchdb.RevCollator.java com.couchbase.touchdb.TDCollateJSON.java