Skip to content

V1: Validation Performance issue - revalidating too much. #1496

@markwpearce

Description

@markwpearce

In a test project, I'm finding that re-validation is taking longer than it used to. This is happening with v1 (current commit a194c3925)

Changing the content of a string (something that basically shouldn't cause ANY re-validation) in the source scope is about 700 ms of validation time:

[10:15:17:589 AM][INFO ] [prj0] Program.validate metrics:
    wait for previous run---------------------------------------------------- 000.003ms,   1 calls
    before and on programValidate-------------------------------------------- 000.079ms,   1 calls
    addDeferredComponentTypeSymbolCreation----------------------------------- 001.763ms,   2 calls
    addComponentReferenceTypes----------------------------------------------- 000.125ms,   1 calls
    beforeFileValidate------------------------------------------------------- 000.005ms,   2 calls
    onFileValidate----------------------------------------------------------- 000.482ms,   2 calls
    afterFileValidate-------------------------------------------------------- 002.009ms,   2 calls
    Build component types for any component that changes--------------------- 293.115ms,   1 calls
    track and update type-time and runtime symbol dependencies and changes--- 000.018ms,   1 calls
    tracks changed symbols and prepares files and scopes for validation.----- 430.574ms,   1 calls
    invalidate affected scopes----------------------------------------------- 000.456ms,   3 calls
    validate scopes---------------------------------------------------------- 000.064ms, 143 calls
    validate scope----------------------------------------------------------- 010.084ms, 143 calls
    afterScopeValidate------------------------------------------------------- 000.049ms, 122 calls
    detect duplicate component names----------------------------------------- 000.190ms,   1 calls
    Total-------------------------------------------------------------------- 739.016ms,          

The Build component types for any component that changes and tracks changed symbols and prepares files and scopes for validation steps are taking MUCH longer than they should.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions