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

[ http://jira.qos.ch/browse/LBCLASSIC-36?page=com.atlassian.jira.plugin.system... ] Ralph Goers commented on LBCLASSIC-36: -------------------------------------- Since you asked... I created a test to compare Joda Time to Simple Date Format. The results I get on my Mac are: Running TestDateFormat Raw - JDK: 3673 ns Joda: 2587 ns - Difference: 29.56711% Synchronized DateFormat: 0.4640 seconds Unsynchronized DateFormat: 2.2500 seconds ThreadLocal DateFormat: 0.2224 seconds Joda DateTimeFormatter: 0.1631 seconds Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.871 sec The raw test just performs a date format 100,000 times in a loop on a single thread. The synchronized test behaves like Logback currently does, synchronizing calls to format the date. The unsynchronized uses a new SimpleDateTime for each invocation. The threadlocal test creates a SimpleDateFormat for each thread. The joda test uses Joda Time's DateTimeFormatter.
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, dateformattest.zip
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
participants (1)
-
Ralph Goers (JIRA)