[ https://issues.apache.org/jira/browse/SLING-10969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17454090#comment-17454090 ]
Paul Bjorkstrand commented on SLING-10969: ------------------------------------------ [~sseifert], [~rombert], [~kwin] PR: https://github.com/apache/sling-org-apache-sling-models-impl/pull/29 > Remove synchronized & rest of accessible flag during injection > -------------------------------------------------------------- > > Key: SLING-10969 > URL: https://issues.apache.org/jira/browse/SLING-10969 > Project: Sling > Issue Type: Improvement > Components: Sling Models > Affects Versions: Models Implementation 1.4.16 > Reporter: Paul Bjorkstrand > Priority: Major > > To improve multithreaded performance of Sling Models, the {{synchronized}} > blocks, along with the "reset" of the {{setAccessible}} using its original > value should be removed. > Context: > The synchronized blocks were added to resolve a race condition [1]. After > looking into another large project that uses reflection to access members of > classes (Felix [2]), nowhere in that project is something similar being done. > Every reflective access is just doing {{setAccessible(true)}}. > Results from a JMH test allude to a significant performance improvement > during multithreaded threaded access by removing the synchronized (JMH > results [3]). > [1]: SLING-6584 > [2]: https://github.com/apache/felix-dev/search?q=setAccessible > [3]: https://gist.github.com/paul-bjorkstrand/f3bb154665e7d2168b4656eb7b794496 > [4]: https://www.mail-archive.com/dev@sling.apache.org/msg113123.html > [5]: https://github.com/apache/sling-org-apache-sling-models-impl/pull/11 -- This message was sent by Atlassian Jira (v8.20.1#820001)