Загруженные имена часовых поясов для en - PullRequest
1 голос
/ 16 января 2012

У меня есть что-то вроде этого

I/global  ( 3622): Loaded time zone names for en in 355ms.
I/global  ( 3622): Loaded time zone names for en in 307ms.
I/global  ( 3622): Loaded time zone names for en in 309ms.
I/global  ( 3622): Loaded time zone names for en in 310ms.
I/global  ( 3622): Loaded time zone names for en in 324ms.

, и я понятия не имею, откуда взялся этот журнал.

Я проводил некоторые исследования по этой теме, и я полагаю, что это исходит от

new Date();

но я не уверен.

Мне нужен совет, что мне следует сделать, чтобы ускорить процесс.У меня есть приложение, которое очень медленное в данный момент, и задержка наступает ровно на пять строк выше, это занимает около полутора секунд, чтобы просто прочитать время: (.

, если вы советуете поставить глобальныйпеременная и читать время только извините, я не могу этого сделать :(. Мне нужно время в моих функциях в данный момент (невозможно прочитать время только единицы :().

Ответы [ 3 ]

6 голосов
/ 17 января 2012

Я нашел свою проблему

Проблема в том, что сейчас нет способа обойти эту проблему из-за дизайна API SimpleDateFormat.Только более быстрые телефоны могут исправить это, просто потратив меньше времени на сбор этих строк.

Поэтому я надеюсь, что не будет проблем с часовым поясом в следующих версиях android skd и в новых телефонах.

до тех пор будьте осторожны с этой строкой

 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS Z");

потому что отсюда идет задержка

если вы используете форматирование без часового пояса, оно работает идеально (без задержки)

 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
2 голосов
/ 13 декабря 2012

Я также заметил это при разборе потока контента, содержащего даты.Я понял, что в моем случае (и, вероятно, в случае многих из нас) строка формата даты была одинаковой для каждого из созданных объектов SimpleDateFormat.

Итак, мне удалось решить эту проблему, создав только один объект SimpleDateFormatи использовать его всякий раз, когда мне нужно было разобрать даты.Есть слишком много способов реализовать это в зависимости от того, как структурирован ваш код, поэтому я не буду вдаваться в подробности.

Задержка загрузки часовых поясов, разумеется, однажды происходит, когда создается объект.

0 голосов
/ 28 августа 2013

Убедитесь, что вы создали только один объект SimpleDateFormat, а затем повторно используете его там, где вам нужно. Таким образом, имена часовых поясов будут загружаться только один раз.

...