gprof не сообщает ни о каком накопленном времени

После комментария Ромена Гая вот как я это исправил. Надеюсь, это поможет кому-нибудь еще, у кого также была эта проблема.

Я действительно пытался выяснить положение представлений до того, как они были выложены на экран, но это было совсем не очевидно. Эти строки были размещены после запуска кода инициализации, поэтому я предположил, что все было готово. Тем не менее, этот код все еще был в onCreate (); Поэкспериментировав с Thread.sleep (), я обнаружил, что макет на самом деле не завершен до тех пор, пока onCreate () полностью не завершит выполнение onResume (). И действительно, код пытался выполнить до того, как макет был размещен на экране. При добавлении кода в OnClickListener (или некоторый другой Listener) были получены правильные значения, потому что его можно было запустить только после завершения макета.


Строка ниже была предложена как правка сообщества:

, пожалуйста, используйте onWindowfocuschanged(boolean hasFocus)

24
задан Daniel 23 June 2009 в 15:55
поделиться

4 ответа

Я подумал, что могу поделиться обсуждением списка рассылки Apple , с которым я недавно столкнулся.

Описанное здесь поведение - именно то, что я испытываю. Похоже, что gprof уже давно не работает на OSX.

Я обратился к Акуле, которую любезно предложил Дэйв Ригби.

Спасибо!

5
ответ дан 29 November 2019 в 00:13
поделиться

Использует ли ваша программа несколько потоков? Я столкнулся с этой проблемой с многопоточными программами в Linux, не уверен, будет ли у OS X такие же проблемы

Вот решение проблемы многопоточности, которое я успешно использовал в прошлом.

2
ответ дан 29 November 2019 в 00:13
поделиться

Как быстро ваша программа работает? Если это очень быстро, это может быть слишком быстро, чтобы профилировать. У меня была эта проблема с очень простой программой обработки текста: когда я запускал ее с моим тестовым файлом размером менее 1 КБ, она сообщала все нули в столбцах времени. Я решил эту проблему, пропустив через нее весь текст «Великого Гэтсби». Попробуйте использовать более крупный набор данных или повторите основное вычисление несколько сотен раз.

2
ответ дан 29 November 2019 в 00:13
поделиться

Если ваша программа завершается некорректно, данные профиля не будут записаны правильно - как завершается ваша программа?

Тем не менее, я настоятельно рекомендую использовать Shark вместо gprof - он очень прост в использовании и превосходит gprof практически во всех отношениях - и не требует от вас для перекомпиляции вашей программы.

11
ответ дан 29 November 2019 в 00:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: