TypeCobolTeam / TypeCobol

TypeCobol is an Incremental Cobol parser for IBM Enterprise Cobol 6 for zOS syntax. TypeCobol is also an extension of Cobol 85 language which can then be converted to Cobol85.
Other
78 stars 25 forks source link

Optimize the parser #1294

Open smedilol opened 5 years ago

smedilol commented 5 years ago

The parser has been optimized recently but there is still room for improvement.

This issue is a general issue about optimization.

After investigation these areas that can be improved:

More details on each issue.

smedilol commented 5 years ago

After investigation there are at least 3 areas that can be improved. I've updated the first post of the issue to detail this.

osmedile commented 5 years ago

A intermediate status of the performance gain so far PerfStatus.xlsx

Except for a performance regression due to evolution of v1.3, we can see that they are major gain. There is no more big performance impact when you use type over plain Cobol 85

10/03/2019 30/03/2019
Test e251ec0badd0536c80cc2f05072a9e1ca807c0b3 (time in ms) TypeCobolLinker (time in ms) Gain
Part1_FullParsing_Cobol85_NoRedefines 2053 2123 -3%
Part1_FullParsing_TC_BigTypesNoProcedure 2990 1995 33%
Part1_FullParsing_TC_BigTypesWithProcedure 2455 1996 19%
Part1_FullParsing_TC_GlobalStorage 2255 1908 15%
Part1_Incremental_Cobol85_NoRedefines 525 323 38%
Part1_Incremental_TC_BigTypesNoProcedure 1288 331 74%
Part1_Incremental_TC_BigTypesWithProcedure 742 402 46%
Part1_Incremental_TC_GlobaStorage 743 401 46%
Part2_FullParsing_TC_UseALotOfTypes_001Time 692 535 23%
Part2_FullParsing_TC_UseALotOfTypes_100Times 2497 565 77%
Part2_FullParsing_TC_UseALotOfTypes_WithProc_100Times 1435 586 59%
Part2_Incremental_TC_UseALotOfTypes_001Time 161 64 60%
Part2_Incremental_TC_UseALotOfTypes_100Times 1972 100 95%
Part2_Incremental_TC_UseALotOfTypes_WithProc_100Times 926 95 90%
Part3_FullParsing_Cobol85_DeepVariables 1967 1388 29%
Part3_FullParsing_TC_DeepTypes 4078 1621 60%
Part3_Incremental_Cobol85_DeepVariables 853 251 71%
Part3_Incremental_TC_DeepTypes 3010 417 86%