jmeter-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Philippe Mouawad <philippe.moua...@gmail.com>
Subject Re: svn commit: r1233620 - in /jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control: HttpMirrorControl.java HttpMirrorServer.java
Date Sat, 21 Jan 2012 14:31:46 GMT
Hello sebb,
Commited.

Regards
Philippe

On Fri, Jan 20, 2012 at 1:19 AM, sebb <sebbaz@gmail.com> wrote:

> On 19 January 2012 22:42,  <pmouawad@apache.org> wrote:
> > Author: pmouawad
> > Date: Thu Jan 19 22:42:29 2012
> > New Revision: 1233620
> >
> > URL: http://svn.apache.org/viewvc?rev=1233620&view=rev
> > Log:
> > Bug 52471 - Improve Mirror Server performance by Using Pool of threads
> instead of launching a Thread for each request
> > Implemented what was described on dev list
> >
> > Modified:
> >
>  jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/HttpMirrorControl.java
> >
>  jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/HttpMirrorServer.java
> >
> > Modified:
> jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/HttpMirrorControl.java
> > URL:
> http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/HttpMirrorControl.java?rev=1233620&r1=1233619&r2=1233620&view=diff
> >
> ==============================================================================
> > ---
> jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/HttpMirrorControl.java
> (original)
> > +++
> jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/HttpMirrorControl.java
> Thu Jan 19 22:42:29 2012
> > @@ -44,7 +44,7 @@ public class HttpMirrorControl extends A
> >
> >     public static final String MAX_POOL_SIZE =
> "HttpMirrorControlGui.maxPoolSize"; // $NON-NLS-1$
> >
> > -    public static final int DEFAULT_MAX_POOL_SIZE = 10;
> > +    public static final int DEFAULT_MAX_POOL_SIZE = 0;
> >
> >     public HttpMirrorControl() {
> >         initPort(DEFAULT_PORT);
> >
> > Modified:
> jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/HttpMirrorServer.java
> > URL:
> http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/HttpMirrorServer.java?rev=1233620&r1=1233619&r2=1233620&view=diff
> >
> ==============================================================================
> > ---
> jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/HttpMirrorServer.java
> (original)
> > +++
> jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/HttpMirrorServer.java
> Thu Jan 19 22:42:29 2012
> > @@ -94,13 +94,15 @@ public class HttpMirrorServer extends Th
> >         except = null;
> >         running = true;
> >         ServerSocket mainSocket = null;
> > -        final ArrayBlockingQueue<Runnable> queue = new
> ArrayBlockingQueue<Runnable>(
> > -                25);
> > -        ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(
> > -                maxThreadPoolSize/2,
> > -                maxThreadPoolSize, KEEP_ALIVE_TIME, TimeUnit.SECONDS,
> queue);
> > -        threadPoolExecutor.setRejectedExecutionHandler(new
> ThreadPoolExecutor.DiscardOldestPolicy());
> > -
> > +        ThreadPoolExecutor threadPoolExecutor = null;
> > +        if(maxThreadPoolSize>0) {
> > +            final ArrayBlockingQueue<Runnable> queue = new
> ArrayBlockingQueue<Runnable>(
> > +                    25);
>
> Why choose 25?
> Should this not also be changeable?
>
> > +            threadPoolExecutor = new ThreadPoolExecutor(
> > +                    maxThreadPoolSize/2,
> > +                    maxThreadPoolSize, KEEP_ALIVE_TIME,
> TimeUnit.SECONDS, queue);
> > +            threadPoolExecutor.setRejectedExecutionHandler(new
> ThreadPoolExecutor.DiscardOldestPolicy());
> > +        }
> >         try {
> >             log.info("Creating HttpMirror ... on port " + daemonPort);
> >             mainSocket = new ServerSocket(daemonPort);
> > @@ -112,10 +114,13 @@ public class HttpMirrorServer extends Th
> >                     Socket clientSocket = mainSocket.accept();
> >                     if (running) {
> >                         // Pass request to new thread
> > -                       threadPoolExecutor.execute(new
> HttpMirrorThread(clientSocket));
> > -                       //HttpMirrorThread thd = new
> HttpMirrorThread(clientSocket);
> > -                        log.debug("Starting new Mirror thread");
> > -                        //thd.start();
> > +                        if(threadPoolExecutor != null) {
> > +                            threadPoolExecutor.execute(new
> HttpMirrorThread(clientSocket));
> > +                        } else {
> > +                            Thread thd = new Thread(new
> HttpMirrorThread(clientSocket));
> > +                            log.debug("Starting new Mirror thread");
> > +                            thd.start();
> > +                        }
> >                     } else {
> >                         log.warn("Server not running");
> >                         JOrphanUtils.closeQuietly(clientSocket);
> > @@ -130,7 +135,9 @@ public class HttpMirrorServer extends Th
> >             except = e;
> >             log.warn("HttpMirror Server stopped", e);
> >         } finally {
> > -               threadPoolExecutor.shutdownNow();
> > +            if(threadPoolExecutor != null) {
> > +                threadPoolExecutor.shutdownNow();
> > +            }
> >             JOrphanUtils.closeQuietly(mainSocket);
> >         }
> >     }
> >
> >
>



-- 
Cordialement.
Philippe Mouawad.

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message