H2OIDE - Measure Performance --- It takes about **10 minutes** for the background taks when creating a project. For loading a project, it takes about **2.5 minutes** to finish background tasks. ```mermaid graph LR New_Proj --> |35s| Show_Ready --> |2m47s| Show_ProjView --> En_Addins --> En_OEM_Ref --> |5m18s| Index_Files --> |9m25s| Idle ``` ```mermaid graph LR Load_Proj --> |22s| Show_Ready --> |49s| Show_ProjView --> En_Addins --> Index_Files --> |1m13s|En_OEM_Ref --> |2m10s|Idle ``` <!-- ```mermaid gantt title Time elapsed dateFormat HH:mm:s axisFormat %Mm:%Ss #section Section Show Ready to use:a1, 00:00:00, 35s Show Project View:a2, after a1, 132s OEM Service-Show referenced is available: a3, after a2, 151s Index source files: a4, after a2, 398s ``` ```mermaid gantt title Test 7(Load) dateFormat HH:mm:s axisFormat %Mm%Ss #section Section Show Ready to use:a1, 00:00:00, 22s Show Project View:a2, after a1, 27s OEM Service-Show referenced is available: a3, 00:02:00, 34s Index source files: a4, 00:00:49, 37s ``` --> ### What features depend on these background tasks: * BIOS parser * Project view * Variable interpreter * PCD editor & related Addins(SMBIOS, FlashDevice...) * Override file. * Go to definition * Index source files(Using Git) * H2OSSR * Speed up "Find in files" * Cscope * OEM Service - Highlight which service is referenced. :::warning :speech_balloon: SSR doesn't need "Index source files" ::: ### The elapsed time for major tasks: **New Project** &nbsp;|D#2|D#3|D#4|D#5|D#6|AVG. -|-|-|-|-|-|- Show Ready to use|43s|42s|32s|30s|31s|35.6s Show Projcet View|2m32s|2m11s|2m08s|1m58s|2m12s|2m12s OEM service<br>(Show reference)|2m01|1m42s|1m32s|1m31s|1m49s|2m31s Index source files|7m33s|6m01s|6m14s|6m03s|7m21s|6m38s <!--Initialize parser|22s|32s|17s|16s|16s|20.6s--> **Load Project** &nbsp;|D#1|D#2|D#3|AVG. -|-|-|-|- Show Ready to use|22s|21s|22s|21.7s Show Projcet View|29s|25s|27s|27s OEM service<br>(Show reference)|34s|34s|34s|34s Index source files|33s|36s|42s|37s <!--Init DSC Parser|15s|11s|12s|12.7s--> :::info * Git/Cscope: When the indexing is complete, it spends less time when loading a project. * Test codebase: Whitley-5.41.51.0024 ::: **Heavy loading while loading project** ![](https://i.imgur.com/pTuA8K6.png) ### Concurrent tasks <!-- ```mermaid gantt title Test 1 dateFormat HH:mm:s axisFormat %Mm%Ss #section Section Show Ready to use:a1, 21:48:55, 21:49:25 Show Project View:a2, 21:49:23, 21:49:25 OEM Service-Show referenced is available: a3, 21:52:12, 21:54:01 Index source files: a4, 21:51:26, 21:57:24 ``` --> ```mermaid gantt title Test 2(New) dateFormat HH:mm:s axisFormat %Mm%Ss #section Section Show Ready to use:a1, 20:11:38, 20:12:21 Show Project View:a2, 20:12:18, 20:14:51 OEM Service-Show referenced is available: a3, 20:15:38, 20:17:39 Index source files: a4, 20:14:37, 20:22:10 ``` ```mermaid gantt title Test 3(New) dateFormat H:mm:s axisFormat %Mm%Ss #section Section Show Ready to use:a1, 9:31:21, 9:32:03 Show Project View:a2, 9:32:00, 9:34:11 OEM Service-Show referenced is available: a3, 9:34:49, 9:36:30 Index source files: a4, 9:34:03, 9:40:04 ``` ```mermaid gantt title Test 4(New) dateFormat H:mm:s axisFormat %Mm%Ss #section Section Show Ready to use:a1, 9:45:21, 9:45:54 Show Project View:a2, 9:45:52, 9:48:00 OEM Service-Show referenced is available: a3, 9:48:46, 9:50:24 Index source files: a4, 9:47:52, 9:54:06 ``` ```mermaid gantt title Test 5(New) dateFormat HH:mm:s axisFormat %Mm%Ss #section Section Show Ready to use:a1, 10:09:21, 10:09:52 Show Project View:a2, 10:09:49, 10:11:48 OEM Service-Show referenced is available: a3, 10:12:20, 10:13:51 Index source files: a4, 10:11:40, 10:17:43 ``` ```mermaid gantt title Test 6(New) dateFormat HH:mm:s axisFormat %Mm%Ss #section Section Show Ready to use:a1, 10:30:36, 10:31:07 Show Project View:a2, 10:31:05, 10:33:17 OEM Service-Show referenced is available: a3, 10:34:06, 10:35:55 Index source files: a4, 10:33:07, 10:40:28 ``` ```mermaid gantt title Test 7(Load) dateFormat HH:mm:s axisFormat %Mm%Ss #section Section Show Ready to use:a1, 11:12:45, 11:13:07 Show Project View:a2, 11:13:06, 11:13:34 OEM Service-Show referenced is available: a3, 11:14:29, 11:15:03 Index source files: a4, 11:13:24, 11:13:56 ``` ```mermaid gantt title Test 8(Load) dateFormat HH:mm:s axisFormat %Mm%Ss #section Section Show Ready to use:a1, 11:24:40, 11:25:01 Show Project View:a2, 11:24:59, 11:25:24 OEM Service-Show referenced is available: a3, 11:26:21, 11:26:55 Index source files: a4, 11:25:13, 11:25:49 ``` ```mermaid gantt title Test 9(Load) dateFormat HH:mm:s axisFormat %Mm%Ss #section Section Show Ready to use:a1, 11:27:53, 11:28:15 Show Project View:a2, 11:28:13, 11:28:41 OEM Service-Show referenced is available: a3, 11:29:37, 11:30:11 Index source files: a4, 11:28:29, 11:29:11 ```