Uploaded image for project: 'IGB'
  1. IGB
  2. IGBF-3628

Investigate: How is IGB running faster in JDK21 vs JDK8?

    Details

    • Type: Task
    • Status: Closed (View Workflow)
    • Priority: Minor
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:
      None

      Description

      Now that stress testing of the new IGB version is complete, it would be enlightening to determine where (if anywhere specific) IGB has sped up by a couple of seconds.

      Task: Re-run the stress testing scripts on both Mac computers and save the logs as text files. Then, compare the log files between the old and new version of IGB to see which part(s) of the script ran faster.

        Attachments

          Issue Links

            Activity

            Hide
            pkulzer Paige Kulzer added a comment - - edited

            Upon re-running the stress testing on both Mac computers (M1 vs i9) with multiple versions of IGB (9.1.4/10.0.0 and 9.1.10/10.0.0, respectively), the length of time needed to run the script was the same across all four tests (1 minute and 25 seconds). This differs slightly from the stress testing I did for IGBF-3594 where IGB 10.0.0 was a couple seconds faster on both computers.

            It does appear that loading data into IGB is a couple of seconds faster in IGB 10.0.0 than 9.1.X, but it then must also be slightly slower at other things for the times to balance out like they did. I'll include a table of those times below, for reference.

            MacBook Pro M1:

            IGB Version Time to Load Data (s) Time Overall (min:sec)
            9.1.4 46 1:25
            10.0.0 44 1:25

            MacBook Pro i9:

            IGB Version Time to Load Data (s) Time Overall (min:sec)
            9.1.10 46 1:25
            10.0.0 44 1:25

            Overall, I don't think we can conclude with confidence that IGB 10.0.0 is faster than its predecessors. However, we may be able to conclude that loading data into IGB 10.0.0 is faster than its predecessors.

            Show
            pkulzer Paige Kulzer added a comment - - edited Upon re-running the stress testing on both Mac computers (M1 vs i9) with multiple versions of IGB (9.1.4/10.0.0 and 9.1.10/10.0.0, respectively), the length of time needed to run the script was the same across all four tests (1 minute and 25 seconds). This differs slightly from the stress testing I did for IGBF-3594 where IGB 10.0.0 was a couple seconds faster on both computers. It does appear that loading data into IGB is a couple of seconds faster in IGB 10.0.0 than 9.1.X, but it then must also be slightly slower at other things for the times to balance out like they did. I'll include a table of those times below, for reference. MacBook Pro M1: IGB Version Time to Load Data (s) Time Overall (min:sec) 9.1.4 46 1:25 10.0.0 44 1:25 MacBook Pro i9: IGB Version Time to Load Data (s) Time Overall (min:sec) 9.1.10 46 1:25 10.0.0 44 1:25 Overall, I don't think we can conclude with confidence that IGB 10.0.0 is faster than its predecessors. However, we may be able to conclude that loading data into IGB 10.0.0 is faster than its predecessors.
            Hide
            ann.loraine Ann Loraine added a comment -

            A note for Paige Kulzer:

            Please also see linked ticket. I wrote a short protocol describing how you can investigate responsiveness, as well.

            In addition to wait time to see their data upon loading, users also care about responsiveness, meaning: how quickly does the application change appearance in response to user interactions?

            Show
            ann.loraine Ann Loraine added a comment - A note for Paige Kulzer : Please also see linked ticket. I wrote a short protocol describing how you can investigate responsiveness, as well. In addition to wait time to see their data upon loading, users also care about responsiveness, meaning: how quickly does the application change appearance in response to user interactions?
            Hide
            ann.loraine Ann Loraine added a comment -

            A followup question:

            1) How is "Time Overall" measured? (e.g., was the "time" unix command being used, or was it some other method?)

            Show
            ann.loraine Ann Loraine added a comment - A followup question: 1) How is "Time Overall" measured? (e.g., was the "time" unix command being used, or was it some other method?)
            Hide
            pkulzer Paige Kulzer added a comment -

            Good question! The time at which each line of the script executes is recorded in the IGB Log. I used those recorded times to calculate approximately how much time it took for IGB to run the stress testing script (aka "Time Overall") by comparing the time at which the last line of the script was executed to when the first line of the script was executed.

            It's not a perfect metric since IGB is sometimes faster at reading lines of the script than it is executing them (e.g., IGB read the lines "load http://igbquickload.org/rnaseq/H_sapiens_Dec_2013..." faster than it could actually load in the data). However, I made sure to eyeball each stress test to confirm that the end time recorded in the log was a true end time (i.e., data had all finished loading and the screenshots taken at the end of the script had saved successfully at the same time as what was recorded in the IGB log).

            Show
            pkulzer Paige Kulzer added a comment - Good question! The time at which each line of the script executes is recorded in the IGB Log. I used those recorded times to calculate approximately how much time it took for IGB to run the stress testing script (aka "Time Overall") by comparing the time at which the last line of the script was executed to when the first line of the script was executed. It's not a perfect metric since IGB is sometimes faster at reading lines of the script than it is executing them (e.g., IGB read the lines "load http://igbquickload.org/rnaseq/H_sapiens_Dec_2013 ..." faster than it could actually load in the data). However, I made sure to eyeball each stress test to confirm that the end time recorded in the log was a true end time (i.e., data had all finished loading and the screenshots taken at the end of the script had saved successfully at the same time as what was recorded in the IGB log).
            Hide
            kgopu Kaushik Gopu added a comment - - edited

            Paige Kulzer did a great job testing performance times between older (JDK8) and newer (JDK21) versions of IGB.

            • Coming to my observations, this article helped me understand the Garbage Collector (GC) performance between JDKs such as JDK8, JDK17, and JDK21.
            • The heap usage when loading the human genome sequence is higher in JDK8 (1400 - 1500 M) compared to JDK21 ( 1000 - 1100 M) on my Windows 11 machine.
            • Performance-wise, I did not notice much difference between the two versions.
            • I will add more notes to this comment If I find something interesting.
            Show
            kgopu Kaushik Gopu added a comment - - edited Paige Kulzer did a great job testing performance times between older (JDK8) and newer (JDK21) versions of IGB. Coming to my observations, this article helped me understand the Garbage Collector (GC) performance between JDKs such as JDK8, JDK17, and JDK21. The heap usage when loading the human genome sequence is higher in JDK8 (1400 - 1500 M) compared to JDK21 ( 1000 - 1100 M) on my Windows 11 machine. Performance-wise, I did not notice much difference between the two versions. I will add more notes to this comment If I find something interesting.
            Hide
            ann.loraine Ann Loraine added a comment -

            Thank you for investigating Paige Kulzer and Kaushik Gopu!

            Moving to DONE.

            Show
            ann.loraine Ann Loraine added a comment - Thank you for investigating Paige Kulzer and Kaushik Gopu ! Moving to DONE.

              People

              • Assignee:
                pkulzer Paige Kulzer
                Reporter:
                pkulzer Paige Kulzer
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: