## 4 Results
### PWCT2 Performance
Figure 25: Using visual components increases the abstraction level. need to run the program multiple times during development and updating the visual code, making it essential to keep this time low for a smoother and more efficient development cycle. On the other hand, the loading time, while important, is typically incurred only once per file. By maintaining consistently low code generation time, PWCT2 enhances the development experience, making it more efficient and less time-consuming for developers. Table 11 demonstrates the performance and storage requirements of PWCT2 and PWCT1 [23] when using visual source files that contain at least 1000 steps by evaluating various metrics: file storage in kilobytes (KB), the number of steps, loading time (LT) in milliseconds (ms), and code generation time (CGT) in milliseconds (ms). These visual source files pertain to different visual programming languages (CPWCT vs. RingPWCT) and various programs. However, the step counts fall within the same range, representing the size of the visual programs, which influences the code generation performance and storage requirements. PWCT2 shows significant improvements in file storage efficiency and code generation time, with much smaller file sizes (773 KB to 1012 KB) and faster code generation (43 ms to 52 ms) compared to PWCT1, which has larger file sizes (7966 KB to 11,397 KB) and much longer code generation times (1748 ms to 3862 ms). Although PWCT2 has higher loading times for the visual source files (1068 ms to 1270 ms) than PWCT1 (549 ms to 860 ms), this difference is not substantial and is due to new optional features in PWCT2, such as rich colors where the same steps can use more than one color. The faster code generation time in PWCT2 is crucial for developers who need to run the program multiple times during development, making it more efficient and less time-consuming. In Table 12, we present a summary of the key statistical metrics derived from analyzing the relationship between the number of steps, storage requirements, and code generation time (CGT). The analysis for PWCT2 is done for 25 visual source files presented in Table 11 which used RingPWCT. The analysis for PWCT1 is done for 43 visual source files related to CPWCT and introduced in the literature with storage size and code generation time [23]. Figure 26: The relationship between the LT/CGT and the step count. We used the same hardware for all experiments. Also, to ensure the reliability and validity of our findings, we calculated the \(p\)-values for both Pearson and Spearman correlation coefficients across storage vs. steps and code generation time vs. steps. This statistical analysis allowed us to determine the significance of the observed relationships. By verifying that the p-values were well below the accepted threshold of 0.05. For PWCT2, our analysis revealed a very strong positive correlation between the number of steps and both storage and code generation time. This indicates that as the number of steps increases, both storage and CGT also increase in a nearly linear fashion. The average storage required per step was found to be 0.6543 KB, while the average CGT per step was 0.0353 milliseconds. Furthermore, the Root Mean Square Error (RMSE) values for storage per step (0.1082) and CGT per step (0.0032) were low, suggesting that the average values are reliable and well represented by the data. These findings demonstrate the efficiency and scalability of code generation in PWCT2, particularly in handling visual source files with a high number of steps. For PWCT1, the average storage required per step was found to be 13.6751 KB, while the average CGT per step was 1.2956 milliseconds. Furthermore, the Root Mean Square Error (RMSE) values for storage per step (23.4063) and CGT per step (1.0539) were calculated, indicating some variability around the averages. Despite this variability, the correlations remain strong and statistically significant, underscoring the reliability of the data and the performance characteristics of PWCT1.