On Thu, 9 Jan 2003, Giacomo Pati wrote:
> On Thu, 9 Jan 2003, Stephan Michels wrote:
>
> >
> >
> >
> > On 9 Jan 2003 [EMAIL PROTECTED] wrote:
> >
> > > giacomo 2003/01/09 06:35:25
> > >
> > > Modified: src/scratchpad/src/org/apache/cocoon/components/source/impl
> > > SlideSource.java
> > > Log:
> > > make some method package protected instead of privat to increase performance
>by avoiding 'access emulated by a synthetic accessor method' (objected by eclipse)
> > >
> >
> >
> > Hmm, do really think that using package protected modifiers instead of
> > private modifiers make the implementation faster. For some time I read
> > an article, which says the private modifier make the fastest access
> > possible.
>
> You can prove that by yourself using the following code:
>
> public class A
> {
> private int a;
>
> public A()
> {
> AA aa = new AA();
> }
>
> private int foo( AA a )
> {
> AA b = a;
> return 0;
> }
>
> public class AA
> {
> public AA()
> {
> int b = a;
> }
> public void b()
> {
> foo( this );
> }
> }
> }
>
> Compile this and produce an assembly listing (javap -c A).
>
> Now, remove the private modifier from the 'int a' as well as from method
> foo to make it package protected.
>
> If you compare these assably listing you'll see what java does with it.
>
> Access to the private variable 'a' as well as to the private method
> 'foo' from within the inner class is indirected by use of
> a synthetic accessor method.
Okay, now I see what you mean, because of the inner class
SlideSourceOutputStream the accessor methods will be produced. And
now Eclipse thinks that if I change all used member variables to
package private all run faster.
If you insert
private int bar()
{
return a+3;
}
you will see that bar doesn't need a synthetic accessor method.
So have a bit more Performance, with a package private member variables.
First rule of performance tuning: Don't do it. cit. Bitter Java(I think)
Stephan Michels
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]