Hi,

We are noticing that an idling Restlet server has about 2MB of garbage 
collected in 30 seconds.

I think I tracked it down to the loop in ConnectionController that invokes the 
method below:


    @Override
    protected void doRun(long sleepTime) throws IOException {
        super.doRun(sleepTime);
        registerKeys();
        updateKeys();
        selectKeys(sleepTime);
        controlConnections();
    }

The sleepTime comes from the controllerSleepTimeMs parameter, which is 1 by 
default.

So if the loop generates 60 bytes of garbage (2 iterator objects), it'd lead 
to: 60 x 1000 x 30 = 1,800,000 bytes or 1.8MB every 30 seconds.

Can I ask if this is a known issue? And if there are workarounds?

I have already tried tweaking the controllerSleepTimeMs and changing it to 
something like 30000 (30 seconds). Every connection then takes up to 30 seconds 
to close - probably not acceptable as a solution.

Additional info: Restlet 2.1 rc4 Android edition.

Thanks,
Yan Zhou

------------------------------------------------------
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2970496

Reply via email to