Measure performance of DB lookups for parent blocks.

This commit is contained in:
akwizgran
2019-02-12 14:33:12 +00:00
parent b342759e06
commit e01e0b57c3
9 changed files with 159 additions and 2 deletions

View File

@@ -12,6 +12,7 @@ import org.briarproject.bramble.api.contact.ContactExchangeTask;
import org.briarproject.bramble.api.contact.ContactManager;
import org.briarproject.bramble.api.crypto.CryptoExecutor;
import org.briarproject.bramble.api.crypto.PasswordStrengthEstimator;
import org.briarproject.bramble.api.db.DatabaseComponent;
import org.briarproject.bramble.api.db.DatabaseExecutor;
import org.briarproject.bramble.api.event.EventBus;
import org.briarproject.bramble.api.identity.IdentityManager;
@@ -82,6 +83,8 @@ public interface AndroidComponent
@DatabaseExecutor
Executor databaseExecutor();
DatabaseComponent databaseComponent();
MessageTracker messageTracker();
LifecycleManager lifecycleManager();

View File

@@ -223,6 +223,7 @@ public class NavDrawerActivity extends BriarActivity implements
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
controller.countFakes();
drawerLayout.closeDrawer(START);
clearBackStack();
if (item.getItemId() == R.id.nav_btn_lock) {

View File

@@ -21,4 +21,5 @@ public interface NavDrawerController extends ActivityLifecycleController {
void shouldAskForDozeWhitelisting(Context ctx,
ResultHandler<Boolean> handler);
void countFakes();
}

View File

@@ -3,6 +3,8 @@ package org.briarproject.briar.android.navdrawer;
import android.app.Activity;
import android.content.Context;
import org.briarproject.bramble.api.UniqueId;
import org.briarproject.bramble.api.db.DatabaseComponent;
import org.briarproject.bramble.api.db.DatabaseExecutor;
import org.briarproject.bramble.api.db.DbException;
import org.briarproject.bramble.api.event.Event;
@@ -21,6 +23,9 @@ import org.briarproject.bramble.api.settings.SettingsManager;
import org.briarproject.briar.android.controller.DbControllerImpl;
import org.briarproject.briar.android.controller.handler.ResultHandler;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.concurrent.Executor;
import java.util.logging.Logger;
@@ -49,6 +54,7 @@ public class NavDrawerControllerImpl extends DbControllerImpl
private static final String EXPIRY_DATE_WARNING = "expiryDateWarning";
private static final String EXPIRY_SHOW_UPDATE = "expiryShowUpdate";
private final DatabaseComponent db;
private final PluginManager pluginManager;
private final SettingsManager settingsManager;
private final EventBus eventBus;
@@ -57,9 +63,11 @@ public class NavDrawerControllerImpl extends DbControllerImpl
@Inject
NavDrawerControllerImpl(@DatabaseExecutor Executor dbExecutor,
LifecycleManager lifecycleManager, PluginManager pluginManager,
SettingsManager settingsManager, EventBus eventBus) {
DatabaseComponent db, LifecycleManager lifecycleManager,
PluginManager pluginManager, SettingsManager settingsManager,
EventBus eventBus) {
super(dbExecutor, lifecycleManager);
this.db = db;
this.pluginManager = pluginManager;
this.settingsManager = settingsManager;
this.eventBus = eventBus;
@@ -185,6 +193,25 @@ public class NavDrawerControllerImpl extends DbControllerImpl
});
}
@Override
public void countFakes() {
int numFakes = 1024;
Random random = new Random();
List<byte[]> ids = new ArrayList<>(numFakes);
for (int i = 0; i < numFakes; i++) {
byte[] id = new byte[UniqueId.LENGTH];
random.nextBytes(id);
ids.add(id);
}
runOnDbThread(() -> {
try {
db.transaction(true, txn -> db.countFakes(txn, ids));
} catch (DbException e) {
logException(LOG, WARNING, e);
}
});
}
@Override
public boolean isTransportRunning(TransportId transportId) {
Plugin plugin = pluginManager.getPlugin(transportId);