![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
wertklop |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 12.9.2008 Репутация: нет Всего: нет |
Всем привет
Пишу библиотеку под Android. Некоторый её функционал повторяет функционал из пакета android.database.sqlite. В частности, есть 2 метода, один из моей библиотеки, другой из sqlite. На некотором этапе они вызывают один и тот же метод стандартной библиотеки Java "int java.lang.String.indexOf(int ch)", который мало того, что выполняется с разным временем исполнения, так ещё и появляется "(context switch)", который увеличивает время выполнения в целом. Ниже представлены скрины профайлера для вызова из моего метода ![]() и для метода Android'a ![]() Методы я профилирую заключая их между "Debug.startMethodTracing("name method");" и "Debug.stopMethodTracing();" Протестировав некоторое время и перезагрузив устройство, стало понятно, что время выполнения методов примерно одинаково и скорее всего зависит от работы самой Android OS. А вот "(context switch)" не исчезает при выполнении моей библиотеки. Данное явление наблюдается практически во всех вызовах, что соответственно увеличивает общее время выполнения моего кода и намного отстает от кода sqlite в целом. Тут человек описывает похожую ситуацию, но мне ничего особого не дало. Подскажите, с чем может связано такое поведение? Это сообщение отредактировал(а) wertklop - 3.9.2013, 16:44 |
|||
|
||||
wertklop |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 12.9.2008 Репутация: нет Всего: нет |
Вопрос не решен, помогите, пожалуйста
|
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Ты не там спрашиваешь. context switch вещь сугубо специфичная для конкретной реализации и Davlik это не JVM.
Ты профилировал на устройстве или эмуляторе? -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
wertklop |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 12.9.2008 Репутация: нет Всего: нет |
Профилировал и на устройстве и на эмуляторе, разница только во времени выполнения "(context switch)" А где по вашему мне спрашивать? |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Тут (хотя я и сомневаюсь, что там кто нибудь знает). Все что мне удалось нагуглить, это что context switch вызывается при проверках пермиссий. Возможно что код самого Dalvik и пользовательский работает с разным уровнем привилегий, что и вызывает context switch. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
wertklop |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 12.9.2008 Репутация: нет Всего: нет |
Т.е. по этому и происходит вызов "(context switch)", если код вызывается из моего приложения, а из кода Android нет? Может есть какие-то способы не вызывать "(context switch)" или хотя бы уменьшить время его исполнения? Кстати, ещё вопрос, что конкретно означает вызов "self"? Почему у него такое большое время выполнения?Как его уменьшить? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |