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**
|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**
|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**

### 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
```