[ 
https://issues.apache.org/jira/browse/COCOON-2071?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12500623
 ] 

Carsten Ziegeler commented on COCOON-2071:
------------------------------------------

Hmm, not sure if are speaking about the same thing here :)

One thing is the proxy which makes components marked as poolable thread safe. 
This is a feature which should be turned on by default and we could think about 
adding an additional configuration to not proxy these components (I think I did 
this for the sitemap components, but I'm not sure if the code is still active).

The other thing is the pooling which if turned on, requires a proxy for 
automatic lookup/release. Here it makes sense to have a global setting (on/off) 
which should default to on (= pooling), and a per component configuration which 
either turns on/off the pooling for a specific component. So you can set the 
global switch to off and turn on pooling for some components or vice versa.

> Option to turn off pooling for components (probably faster on new JVMs and 
> simpler debugging)
> ---------------------------------------------------------------------------------------------
>
>                 Key: COCOON-2071
>                 URL: https://issues.apache.org/jira/browse/COCOON-2071
>             Project: Cocoon
>          Issue Type: Test
>          Components: - Components: Sitemap
>    Affects Versions: 2.2-dev (Current SVN)
>            Reporter: Alexander Klimetschek
>            Assignee: Carsten Ziegeler
>            Priority: Minor
>         Attachments: disable-pooling-config.patch
>
>
> This is a patch that makes the pooling of components/beans optional: by 
> setting this in the applicationContext.xml
>   <!-- Activate Avalon Bridge -->
>   <avalon:bridge pooling="false"/>
> it is possible to turn off pooling completely. The idea is to start testing 
> performance differences between pooling and non-pooling. The default value 
> for the "pooling" option is true, so existing configurations without the 
> attribute set will behave as before when this patch is applied.
> Pooling was introduced back then when creating a new object in Java was slow 
> and re-using of existing objects was faster. Since Java 1.4 this is no longer 
> the case, creating new objects is said to be even faster than malloc() in C. 
> Because pooling needs a recycle() method (to reset internal stuff before 
> reuse) and more calls, including some AOP and Proxy class stuff to add 
> pooling, it is worth to check what is faster nowadays.
> One thing that always annoys me during debugging is that the AOP stuff adds 
> like 4-5 additional calls when accessing a pooled component in the stacktrace 
> - code that you cannot step into, because it has no java source. Removing 
> pooling completely would make the Cocoon architecture (especially the runtime 
> architecture) much simpler.
> My idea is that Cocoon users can test the performance difference on their 
> various systems to get actual results. WDYT?

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to