Closed aspyker closed 8 years ago
looks like most of the time is spent querying the state of the containers:
System.out.println("about to start query for stopped");
for (BoxContainer container : boxContainers) {
if (MobycraftCommandsFactory.getInstance().getListCommands().isStopped(container.getName())) {
container.setState(false);
}
}
System.out.println("just ended query for stopped");
Yields:
[01:14:34] [Server thread/INFO] [STDOUT]: [org.redfrog404.mobycraft.commands.dockerjava.MainCommand:onTick:317]: about to redraw containers [01:14:34] [Server thread/INFO] [STDOUT]: [org.redfrog404.mobycraft.utils.StructureBuilder:containerPanel:214]: about to start query for stopped [01:14:36] [Server thread/INFO] [STDOUT]: [org.redfrog404.mobycraft.utils.StructureBuilder:containerPanel:220]: just ended query for stopped [01:14:36] [Server thread/INFO] [STDOUT]: [org.redfrog404.mobycraft.commands.dockerjava.MainCommand:onTick:325]: after redrawing containers [01:14:37] [Server thread/INFO] [STDOUT]: [org.redfrog404.mobycraft.commands.dockerjava.MainCommand:onTick:317]: about to redraw containers [01:14:37] [Server thread/INFO] [STDOUT]: [org.redfrog404.mobycraft.utils.StructureBuilder:containerPanel:214]: about to start query for stopped [01:14:38] [Server thread/INFO] [STDOUT]: [org.redfrog404.mobycraft.utils.StructureBuilder:containerPanel:220]: just ended query for stopped [01:14:38] [Server thread/INFO] [STDOUT]: [org.redfrog404.mobycraft.commands.dockerjava.MainCommand:onTick:325]: after redrawing containers [01:14:39] [Server thread/INFO] [STDOUT]: [org.redfrog404.mobycraft.commands.dockerjava.MainCommand:onTick:317]: about to redraw containers [01:14:39] [Server thread/INFO] [STDOUT]: [org.redfrog404.mobycraft.utils.StructureBuilder:containerPanel:214]: about to start query for stopped [01:14:40] [Server thread/INFO] [STDOUT]: [org.redfrog404.mobycraft.utils.StructureBuilder:containerPanel:220]: just ended query for stopped [01:14:40] [Server thread/INFO] [STDOUT]: [org.redfrog404.mobycraft.commands.dockerjava.MainCommand:onTick:325]: after redrawing containers [01:14:42] [Server thread/INFO] [STDOUT]: [org.redfrog404.mobycraft.commands.dockerjava.MainCommand:onTick:317]: about to redraw containers [01:14:42] [Server thread/INFO] [STDOUT]: [org.redfrog404.mobycraft.utils.StructureBuilder:containerPanel:214]: about to start query for stopped [01:14:43] [Server thread/INFO] [STDOUT]: [org.redfrog404.mobycraft.utils.StructureBuilder:containerPanel:220]: just ended query for stopped [01:14:43] [Server thread/INFO] [STDOUT]: [org.redfrog404.mobycraft.commands.dockerjava.MainCommand:onTick:325]: after redrawing containers
@AdityaGupta1 For me it seems to be an overhead to request the list of containers for each boxContainer
. So probably it would be better to request list of containers once and iterate over the result or use inspect container call within the boxContainers
loop.
Please note that the list containers response from docker may contain a huge amount of container data. It may include even non-running containers also.
Btw. I think the most efficient way of keeping track of the containers state would be via the docker events API. See https://github.com/docker-java/docker-java/wiki#handle-events. Not sure if this would be possible in your use case.
Thanks @marcuslinke for pointing out the error. It really helped reduce lag time.
@aspyker give this a shot.
Looks much better @AdityaGupta1
... count = 0; System.out.println("after redrawing containers"); } }
and saw: [00:50:39] [Server thread/INFO] [STDOUT]: [org.redfrog404.mobycraft.commands.dockerjava.MainCommand:onTick:317]: about to redraw containers [00:50:40] [Server thread/INFO] [STDOUT]: [org.redfrog404.mobycraft.commands.dockerjava.MainCommand:onTick:325]: after redrawing containers [00:50:42] [Server thread/INFO] [STDOUT]: [org.redfrog404.mobycraft.commands.dockerjava.MainCommand:onTick:317]: about to redraw containers [00:50:43] [Server thread/INFO] [STDOUT]: [org.redfrog404.mobycraft.commands.dockerjava.MainCommand:onTick:325]: after redrawing containers [00:50:44] [Server thread/INFO] [STDOUT]: [org.redfrog404.mobycraft.commands.dockerjava.MainCommand:onTick:317]: about to redraw containers [00:50:45] [Server thread/INFO] [STDOUT]: [org.redfrog404.mobycraft.commands.dockerjava.MainCommand:onTick:325]: after redrawing containers [00:50:47] [Server thread/INFO] [STDOUT]: [org.redfrog404.mobycraft.commands.dockerjava.MainCommand:onTick:317]: about to redraw containers [00:50:48] [Server thread/INFO] [STDOUT]: [org.redfrog404.mobycraft.commands.dockerjava.MainCommand:onTick:325]: after redrawing containers [00:50:49] [Server thread/INFO] [STDOUT]: [org.redfrog404.mobycraft.commands.dockerjava.MainCommand:onTick:317]: about to redraw containers [00:50:50] [Server thread/INFO] [STDOUT]: [org.redfrog404.mobycraft.commands.dockerjava.MainCommand:onTick:325]: after redrawing containers [00:50:52] [Server thread/INFO] [STDOUT]: [org.redfrog404.mobycraft.commands.dockerjava.MainCommand:onTick:317]: about to redraw containers [00:50:53] [Server thread/INFO] [STDOUT]: [org.redfrog404.mobycraft.commands.dockerjava.MainCommand:onTick:325]: after redrawing containers [00:50:54] [Server thread/INFO] [STDOUT]: [org.redfrog404.mobycraft.commands.dockerjava.MainCommand:onTick:317]: about to redraw containers [00:50:55] [Server thread/INFO] [STDOUT]: [org.redfrog404.mobycraft.commands.dockerjava.MainCommand:onTick:325]: after redrawing containers [00:50:57] [Server thread/INFO] [STDOUT]: [org.redfrog404.mobycraft.commands.dockerjava.MainCommand:onTick:317]: about to redraw containers [00:50:58] [Server thread/INFO] [STDOUT]: [org.redfrog404.mobycraft.commands.dockerjava.MainCommand:onTick:325]: after redrawing containers