More academic exercise than recommendation, but...
Write your own implementation of a Map/HashMap
specific to java.util.Date objects.
Identify your smallest time increment (5 seconds in your email).
Identify largest time increment (60 seconds)
Create (60/5)+1 buckets for your hash functionWrite your hash function such that each date object -- representing one request each -- gets placed in the right bucket. If the bucket contains "aged" dates, which you should know by simple counting (not comparison), empty it before placing a new one in.
To display results, simply add up the content size of the appropriate buckets and return.
This implementation is more lightweight than others suggested because the process of pruning is built into your implementation (instead of using external threads or comparisons each time you insert)... you're trading memory usage for decreased processing time. On the other hand, it doesn't *strictly* tell you how many requests came in the last X seconds -- only how many came since the last time unit started. It's also only reasonable for numbers like you suggested -- Tim or Yoav's suggestions would be better if your range is 5 seconds to 60 minutes, for example.
justin
At 07:10 AM 7/29/2004, you wrote:
I need to display on a .jsp page the number of requests for Tomcat in the past 5 / 10 / 15/ 30 / 45 / 60 seconds. I've already implement a Filter will count the total number of requests. I did this with a static int, which is incremented everytime a request comes in. But what should I do so that I can show number of request over past time intervals? Since the present time is always changing, "the past n seconds" is constantly changing also.
Thanks in advance,
Tom
______________________________________________ Justin Ruthenbeck Software Engineer, NextEngine Inc. justinr - AT - nextengine DOT com Confidential. See: http://www.nextengine.com/confidentiality.php ______________________________________________
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
