- From: Eamon.Dalton <eamon.dalton@cs.tcd.ie>
- Date: Fri, 15 Sep 2000 07:50:47 -0400 (EDT)
- To: www-jigsaw@w3.org
Hi, I'm currently running Jigsaw in proxy configuration with a filter that I have developed. The filter is a client side filter that implements PropRequestFilter. org.w3c.www.protocol.http.filters=org.w3c.www.protocol.http.myClientSideFilter I need to measure the amount of data and the rate that the data is transferred between a user making HTTP request and a target server via Jigsaw in proxy configuration. In ingoingFilter the following happens. if(request.hasOutputStream()){ try { PipedOutputStream pout = new PipedOutputStream(); PipedInputStream pin = new PipedInputStream(pout); new RequestDataMover(request.getOutputStream(),pout); request.setOutputStream(pin); } catch (Exception ex) { } } What I want to know is based on the code below 1. Is this an accurate way to measure throughput between the end-user making a HTTP requests and a target HTTP server via Jigsaw in proxy configuration? 2. Will monitoring like this have a significant impact on throughput performance? 3. If it will impact performance, how could this be overcome? Thanks, Eamon. class RequestDataMover extends Thread { InputStream in = null; OutputStream out = null; RequestDataMover(InputStream in, OutputStream out) { this.in = in; this.out = out; setName("RequestDataMover"); start(); } public void run() { try { byte buf[] = new byte[1]; int got = -1; int contentLenght = 0; //Print Time of transfer starting while ((got = in.read(buf)) >= 0){ out.write(buf, 0, got); contentLenght = contentLenght + 1; } //Print Time of transfer ending //Print contentLenght } catch (IOException ex) { ex.printStackTrace(); } finally { try { in.close(); } catch (Exception ex) {}; try { out.close(); } catch (Exception ex) {} ; } } }
Received on Friday, 15 September 2000 08:06:13 UTC