Традиционно вы не должны сильно беспокоиться об оптимизации кода, пока не начнете разработку, и вы поймете, что есть проблема с производительностью. Но если вы узнаете о том, что хотите узнать больше о более оптимальном варианте, это звучит как HashMap или похожая карта.
Наличие метода для получения значений в виде списка может быть полезным в зависимости от того, знаете ли вы идентификатор для виджета, который вы хотите или нет, или если вам нужно проверить какое-либо другое свойство виджета, чтобы идентифицировать его.
Что касается самостоятельного профилирования, есть пара методов. Вы можете просто добавить некоторые инструкции Log, используя System.currentTimeMillis()
, например:
long now = System.currentTimeMillis();
Widget widget = widgetStore.get(id);
long duration = System.currentTimeMillis() - now;
Log.i("WidgetStorePerformance", duration);
Это низкотехнологичное решение. Вы также можете посмотреть, как добавить вызовы метода Trace в код WidgetStore, который вы хотите профилировать.
public Widget getWidget(UUID id) {
Trace.beginSection("WidgetStore");
Widget widget = mIdMap.get(id);
if (widget == null) {
return null;
}
Trace.endSection();
return widget;
}
Затем используйте этот инструмент