У меня есть этот метод:Java/Android: Я не понимаю, почему это происходит медленнее, чем ожидалось
@DebugLog
private synchronized int insertInOrderedFromBottom(ItemWithTime itemWithTime, ArrayList<ItemWithTime> array) {
long start = System.currentTimeMillis();
if (itemWithTime == null || itemWithTime.getDateTime() == null) return -1;
if (array == null) return -1;
int arraySize = array.size();
for (int i = arraySize - 1; i >= 0; i--) {
if (itemWithTime.getDateTime().isBefore(array.get(i).getDateTime())) {
i++;
array.add(i, itemWithTime);
long end = System.currentTimeMillis();
Log.d(TAG,"insertInOrderedFromBottom inside took "+(end-start));
return i;
}
}
array.add(itemWithTime);
long end = System.currentTimeMillis();
Log.d(TAG,"insertInOrderedFromBottom inside took "+(end-start));
return array.size();
}
Теперь вы видите заявление журнала, которые я использую, чтобы измерить время, затрачиваемое этот метод для завершения:
- журналы говорят, что метод для завершения занимает около 0 мельниц.
я называю метод, как это:
start = System.currentTimeMillis();
insertInOrderedFromBottom(datum, items);
end = System.currentTimeMillis();
Log.d(TAG, "insertInOrderedFromBottom invoication took " + (end - start) + " ms");
- Здесь журнал говорит, что это занимает 10-15 мельниц.
Что происходит? Что мне здесь не хватает?
EDIT
Я попытался без не синхронизируется и никакой разницы.
Я не понимаю, о чем вы просите. Сначала вы пишете: «Говорят, что метод для завершения занимает около 0 мельниц» (Кто это говорит?). Позже ваш собственный журнал показывает, что он занимает от 10 до 15 миллисекунд. Какова ваша проблема сейчас? –
Журналы говорят, что: 'Log.d (TAG," insertInOrderedFromBottom, loop принят "+ (end-start) +" ms ");' –
Пожалуйста, прочитайте мои вопросы и ответьте на них. Как насчет первого предложения около 0 миллисов? Кто так говорит ? И что конкретно представляет собой ваша проблема? –