[logback-dev] [JIRA] Commented: (LBCLASSIC-36) Synchronization of SimpleDateFormat object in DateConverter

Joern Huxhorn (JIRA) noreply-jira at qos.ch
Wed Jun 17 14:01:10 CEST 2009

    [ http://jira.qos.ch/browse/LBCLASSIC-36?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=11199#action_11199 ] 

Joern Huxhorn commented on LBCLASSIC-36:

Well, the above test looks like this from within IDEA:
Raw - JDK: 4992 ns Joda: 5533 ns - Difference: -10.837339%
Synchronized DateFormat: 0.4826 seconds
Unsynchronized DateFormat: 1.7025 seconds
ThreadLocal DateFormat: 0.1858 seconds
Joda DateTimeFormatter: 0.0908 seconds

And values are fluctuating quite a bit on reruns, that's why I'm asking...

Raw - JDK: 4864 ns Joda: 5348 ns - Difference: -9.950658%
Synchronized DateFormat: 0.4799 seconds
Unsynchronized DateFormat: 1.5900 seconds
ThreadLocal DateFormat: 0.1806 seconds
Joda DateTimeFormatter: 0.1252 seconds

Raw - JDK: 5030 ns Joda: 5719 ns - Difference: -13.697813%
Synchronized DateFormat: 0.4813 seconds
Unsynchronized DateFormat: 1.6982 seconds
ThreadLocal DateFormat: 0.1870 seconds
Joda DateTimeFormatter: 0.0838 seconds


> Synchronization of SimpleDateFormat object in DateConverter
> -----------------------------------------------------------
>                 Key: LBCLASSIC-36
>                 URL: http://jira.qos.ch/browse/LBCLASSIC-36
>             Project: logback-classic
>          Issue Type: Bug
>          Components: Other
>    Affects Versions: unspecified
>         Environment: Operating System: All
> Platform: All
>            Reporter: Anders Hammar
>            Assignee: Ceki Gulcu
>         Attachments: DateConverter_patch.java, DateFormatPerfTest.java, dateformattest.zip, DoubleCheckedLocking.patch
> According to the API documentation of SimpleDateFormat, date formats are not synchronized and it is recommended to create separate format instances for each thread.
> However, a possibly simpler (mer efficient) solution would be to synchronize on the SimpleDateFormat object in the convert() method to prevent two threads to access it concurrently.

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators: http://jira.qos.ch/secure/Administrators.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the logback-dev mailing list