Why not just measure execution time of the existing http clients such as wget, curl, fetch. Those support cookies and authentication already, and for single transaction testing are very lightweight and fast.
If you are rolling your own the question is what more do you want to do... this is pretty well-trodden territory and there have been many research papers published about the techniques. Some things to think about: - testing the server under load. To do this you need to run a tool in parallel to generate the workload. httperf does this. - breaking down what's happening at the TCP level. tcpdump uses very little cpu and by capturing the packet headers you can then look at how much time was spend doing the handshake, waiting for the server to process the request, slow start, etc. You can write tools to extract this data automatically, do statistics across many runs, etc. - predicting real browser performance. What happens in firefox when it's downloading a page full of embedded images and such, is quite different from the individual requests issues by a command line tool. Now you have pipelining, keepalive, and simultaneous connections to think about, plus whatever work the browser has to do to render the page. You can use javascript and frames to create a tool that measures start-to-finsih load time for a whole page. There are probably off-the-shelf products that do this now - it's been many years since I've done this. In any case if you are going to be counting in microseconds I think it's unlikely that POE is your best solution. It would be a good choice for something like a web crawler where you are throttled by your ISP's connection anyway, and must handle a potentially large number of simultaneous connections waiting for server response. On Jul 25, 2010, at 6:43 AM, Stefan Parvu wrote: >> Im planning to see how can I develop a HTTP probe, in Perl, >> probable using POE module which will do the following > > Sorry for the trashed subject line. Basically my recorder > should do the following: > >> start timer >> for all urls >> start time >> GET /something or POST /something >> stop timer > >> print milisecs of the HTTP action(s). > > The recorder currently we been developing, uses Apache HTTP Client in Java. > The output is something like: > > timestamp transaction name response time (ms) > 1273024907: main: 0.352 > 1273024912: recdesign: 0.355 > 1273024917: recorders: 0.381 > 1273024922: reporting: 0.318 > 1273024927: cpuplayer: 0.399 > 1273024932: relnotes: 1.174 > 1273024937: docs: 0.298 > 1273024942: faq: 0.366 > > http://www.systemdatarecorder.org/recording/recorders.html#webrec > > Questions: > > 1. Can I build such recorder using POE ? > 2. How light is the POE library versus Java ? Anyone have any experiment > results regarding this ? > > Thanks a lot, > Stefan