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]