SimpleDateFormat is not thread-safe -- you have no choice but to 1)
re-create it per request, or 2) use thread-locals.
-Tal
On 01/24/2011 09:05 AM, Chris Davis wrote:
> Hello,
>
> I have been profiling my android app that uses android restlet client
> 2.0.3.
> I can see from the profile (image attached see the cornflower blue
> section on the right hand side of the restlet thread) and subsequent
> tracing that when DateUtils is used to parse the date header it
> creates a new SimpleDateFormat object that then has to load all the
> timezone names from android. This loading takes considerable time and
> uses a lot of memory and as far as I can tell is done each time a
> client resource is handled.
>
> At first I thought that the client should cache the dateformat object
> but that too would hold onto memory (unless it held a weak reference?)
> but I also see from DateUtils that if the format is RFC 3339 then an
> InternetDateFormat parser is used which I'm guessing wont need to load
> the timezone names as the timezone is specified in hours
>
> So I am wondering that if I can configure my server resources to
> return the date header in a format that required less processing? We
> are using restlet 1.1.9 (I know we need to upgrade, we will get around
> to it eventually) on the server side can I force it to use RFC 3339?
>
> kind regards
> Chris
>
>
>
>
--
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2700256