java - How to calculate run-time for a multi-threaded program? -
i trying test performance (in terms of execution time) webcrawler having trouble timing due multi-threading taking place.
my main class:
class webcrawlertest { //methods , variables etc webcrawlertest(list<string> websites){ // } if(!started){ starttime = system.currenttimemillis(); executor = executors.newfixedthreadpool(32); //this value i'm tweaking started=true; } for(string site : websites){ executor.submit(webprocessor = new allwebsiteprocessortest(site, deepsearch)); } executor.shutdown(); //tried grabbing end time here no luck
allwebsiteprocessortest class:
class allwebsiteprocessortest implements runnable{ //methods , var etc allwebsiteprocessortest(string site, boolean deepsearch) { } public void run() { scansinglewebsite(websites); for(string email:emails){ system.out.print(email + ", "); } private void scansinglewebsite(string website){ try { string url = website; document document = jsoup.connect(url).get(); grabemails(document.tostring()); }catch (exception e) {}
with class (with main
method), create instance of webcrawlertest
, pass in array of websites. crawler works fine can't seem figure out how time it.
i can start time (system.getcurrenttime...();
), problem end time. i've tried adding end time this:
//another class public static void main(.....){ long start = getcurrent....(); webcrawlertest w = new webcrawlertest(listofsites, true); long end = getcurrent....(); }
which doesn't work. tried adding end
after executor.shutdown()
, again doesn't work (instantly triggered). how grab time final completed thread?
after shutting down executors pool
executor.shutdown(); //tried grabbing end time here no luck
you can
executor.awaittermination(timeunit, value)
this call block untill tasks completed. take time, subtract t0
, voila, have execution time.
shutdown()
method assures no new tasks accepted excution queue. tasks in queue performed (shutdownnow()
drops pending tasks). wait running tasks complete, have awaittermination()
.
Comments
Post a Comment