Thank you for you answer. However I underline that the extra time observed
when accessing ServiceProperty fields doesn't comes from the profiler (I
used the NetBeans Profiler). Below is a short test :
package felixtest.impl;
import felixtest.services.SimpleService;
import org.apache.felix.ipojo.annotations.Component;
import org.apache.felix.ipojo.annotations.Provides;
import org.apache.felix.ipojo.annotations.ServiceProperty;
@Component
@Provides
public class SimpleImplementation implements SimpleService {
@ServiceProperty(name = REAL_VALUE)
double k;
@ServiceProperty(name = LOOPS_NUMBER)
int n;
@Override
public void computeSlow() {
double res;
for (int i = 0; i < n; ++i) {
res = k * i;
}
}
@Override
public void computeFast() {
double res,k0=k,n0=n;
for (int i = 0; i < n; ++i) {
res = k0 * i;
}
}
}
As you can see the « computeSlow » method reads n and k for each loop. 10E6
loops give me a total run time around 9 secondes, while « computeFast »
accessing only n in the if test is around 3 seconds.
Even worth, when I replaced within that last method n in the if test by n0
the total time is 17 microSeconds !!!
This of course is not good, and if I must introduced local variables I will
felt like in the bad old time when creator or methods should hold a long
list of meaningless parameters.
Best regards,
JP
--
View this message in context:
http://apache-felix.18485.x6.nabble.com/ipojo-performance-tp5021814p5021879.html
Sent from the Apache Felix - Users mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]