[ https://issues.apache.org/jira/browse/LANG-1504?focusedWorklogId=364807&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-364807 ]
ASF GitHub Bot logged work on LANG-1504: ---------------------------------------- Author: ASF GitHub Bot Created on: 31/Dec/19 00:23 Start Date: 31/Dec/19 00:23 Worklog Time Spent: 10m Work Description: topera commented on issue #482: LANG-1504 - Adding steps feature to StopWatch URL: https://github.com/apache/commons-lang/pull/482#issuecomment-569835131 > FYI, the conventional name for what you call "step" is "split", sometimes also "lap" (less modern terminology.) I didn`t know that, thanks for sharing :) I take a look now and the StopWatch already has the **split** method, but works in a different way. Some differences: 1. With **split** we need to call **getSplitTime** while we are in the middle of split (I mean, before calling **unsplit**). In the "steps" solution we can get all times in a separated report, at the end of our performance test, for example. 2. With **split** we can have just one split each time. With **steps**, many 3. With **steps** we can label each step with a name 4. Split counts the time since the StopWatch started, not the time between splits. Example ``` final StopWatch sw = StopWatch.createStarted(); Thread.sleep(100); sw.split(); Thread.sleep(200); sw.split(); Thread.sleep(400); System.out.println("splitTime: " + sw.getSplitTime()); // returns 300: the time between start and latest split System.out.println("time: " + sw.getTime()); // returns 700 ``` So, my proposal is to use a new name no change the idea of the old split. Possibilities: **lap** (as you said), **step**, **stage** ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking ------------------- Worklog Id: (was: 364807) Time Spent: 40m (was: 0.5h) > StopWatch: steps feature > ------------------------ > > Key: LANG-1504 > URL: https://issues.apache.org/jira/browse/LANG-1504 > Project: Commons Lang > Issue Type: New Feature > Components: lang.time.* > Reporter: Rafael Santos > Priority: Major > Time Spent: 40m > Remaining Estimate: 0h > > Would be great if we could use StopWatch to track times on many places of our > code. > I created a new feature called "*steps*". > > With this feature we can add label to each step and then get a report with > time between each step. > > Example: > {code:java} > final StopWatch watch = new StopWatch(); > watch.step("starting"); > exampleGoSleep(); > watch.step("sleeping"); > exampleGoWalk(); > watch.step("walking "); > exampleGoDance(); > watch.step("dancing "); > System.out.println(watch.getStepsReport()); > {code} > The output would be: > {noformat} > [starting] 0ms > [sleeping] 235ms > [walking ] 20ms > [dancing ] 458ms > {noformat} -- This message was sent by Atlassian Jira (v8.3.4#803005)