anoma / vscode-juvix

VSCode extension for Juvix
https://marketplace.visualstudio.com/items?itemName=heliax.juvix-mode
GNU General Public License v3.0
3 stars 2 forks source link

Extension causes high cpu load #126

Open jonaprieto opened 11 months ago

jonaprieto commented 11 months ago

Find more details here: https://github.com/microsoft/vscode/wiki/Explain-extension-causes-high-cpu-load

jonaprieto commented 11 months ago
    "nodes": [
        {
            "id": 1,
            "callFrame": {
                "functionName": "(root)",
                "scriptId": "0",
                "url": "",
                "lineNumber": -1,
                "columnNumber": -1
            },
            "hitCount": 0,
            "children": [
                2,
                48
            ]
        },
        {
            "id": 2,
            "callFrame": {
                "functionName": "MessagePortMain._internalPort.emit",
                "scriptId": "168",
                "url": "node:electron/js2c/utility_init",
                "lineNumber": 1,
                "columnNumber": 280
            },
            "hitCount": 0,
            "children": [
                3
            ]
        },
        {
            "id": 3,
            "callFrame": {
                "functionName": "emit",
                "scriptId": "24",
                "url": "node:events",
                "lineNumber": 459,
                "columnNumber": 43
            },
            "hitCount": 0,
            "children": [
                4
            ]
        },
        {
            "id": 4,
            "callFrame": {
                "functionName": "",
                "scriptId": "185",
                "url": "pii_removed/extensionHostProcess.js",
                "lineNumber": 152,
                "columnNumber": 6192
            },
            "hitCount": 0,
            "children": [
                5
            ]
        },
        {
            "id": 5,
            "callFrame": {
                "functionName": "fire",
                "scriptId": "185",
                "url": "pii_removed/extensionHostProcess.js",
                "lineNumber": 95,
                "columnNumber": 13997
            },
            "hitCount": 0,
            "children": [
                6
            ]
        },
        {
            "id": 6,
            "callFrame": {
                "functionName": "fire",
                "scriptId": "185",
                "url": "pii_removed/extensionHostProcess.js",
                "lineNumber": 79,
                "columnNumber": 2005
            },
            "hitCount": 0,
            "children": [
                7
            ]
        },
        {
            "id": 7,
            "callFrame": {
                "functionName": "y",
                "scriptId": "185",
                "url": "pii_removed/extensionHostProcess.js",
                "lineNumber": 79,
                "columnNumber": 1813
            },
            "hitCount": 0,
            "children": [
                8
            ]
        },
        {
            "id": 8,
            "callFrame": {
                "functionName": "",
                "scriptId": "185",
                "url": "pii_removed/extensionHostProcess.js",
                "lineNumber": 152,
                "columnNumber": 7833
            },
            "hitCount": 0,
            "children": [
                9
            ]
        },
        {
            "id": 9,
            "callFrame": {
                "functionName": "fire",
                "scriptId": "185",
                "url": "pii_removed/extensionHostProcess.js",
                "lineNumber": 95,
                "columnNumber": 13997
            },
            "hitCount": 0,
            "children": [
                10
            ]
        },
        {
            "id": 10,
            "callFrame": {
                "functionName": "fire",
                "scriptId": "185",
                "url": "pii_removed/extensionHostProcess.js",
                "lineNumber": 79,
                "columnNumber": 2005
            },
            "hitCount": 0,
            "children": [
                11
            ]
        },
        {
            "id": 11,
            "callFrame": {
                "functionName": "y",
                "scriptId": "185",
                "url": "pii_removed/extensionHostProcess.js",
                "lineNumber": 79,
                "columnNumber": 1813
            },
            "hitCount": 0,
            "children": [
                12
            ]
        },
        {
            "id": 12,
            "callFrame": {
                "functionName": "",
                "scriptId": "185",
                "url": "pii_removed/extensionHostProcess.js",
                "lineNumber": 133,
                "columnNumber": 7556
            },
            "hitCount": 0,
            "children": [
                13
            ]
        },
        {
            "id": 13,
            "callFrame": {
                "functionName": "L",
                "scriptId": "185",
                "url": "pii_removed/extensionHostProcess.js",
                "lineNumber": 133,
                "columnNumber": 8549
            },
            "hitCount": 0,
            "children": [
                14,
                38
            ]
        },
        {
            "id": 14,
            "callFrame": {
                "functionName": "M",
                "scriptId": "185",
                "url": "pii_removed/extensionHostProcess.js",
                "lineNumber": 133,
                "columnNumber": 9489
            },
            "hitCount": 1,
            "children": [
                15
            ],
            "positionTicks": [
                {
                    "line": 134,
                    "ticks": 1
                }
            ]
        },
        {
            "id": 15,
            "callFrame": {
                "functionName": "Q",
                "scriptId": "185",
                "url": "pii_removed/extensionHostProcess.js",
                "lineNumber": 133,
                "columnNumber": 10561
            },
            "hitCount": 0,
            "children": [
                16
            ]
        },
        {
            "id": 16,
            "callFrame": {
                "functionName": "S",
                "scriptId": "185",
                "url": "pii_removed/extensionHostProcess.js",
                "lineNumber": 133,
                "columnNumber": 10647
            },
            "hitCount": 0,
            "children": [
                17,
                39
            ]
        },
        {
            "id": 17,
            "callFrame": {
                "functionName": "$acceptModelChanged",
                "scriptId": "185",
                "url": "pii_removed/extensionHostProcess.js",
                "lineNumber": 126,
                "columnNumber": 9853
            },
            "hitCount": 0,
            "children": [
                18
            ]
        },
        {
            "id": 18,
            "callFrame": {
                "functionName": "fire",
                "scriptId": "185",
                "url": "pii_removed/extensionHostProcess.js",
                "lineNumber": 79,
                "columnNumber": 2005
            },
            "hitCount": 0,
            "children": [
                19
            ]
        },
        {
            "id": 19,
            "callFrame": {
                "functionName": "z",
                "scriptId": "185",
                "url": "pii_removed/extensionHostProcess.js",
                "lineNumber": 79,
                "columnNumber": 1926
            },
            "hitCount": 0,
            "children": [
                20
            ]
        },
        {
            "id": 20,
            "callFrame": {
                "functionName": "y",
                "scriptId": "185",
                "url": "pii_removed/extensionHostProcess.js",
                "lineNumber": 79,
                "columnNumber": 1813
            },
            "hitCount": 0,
            "children": [
                21
            ]
        },
        {
            "id": 21,
            "callFrame": {
                "functionName": "",
                "scriptId": "260",
                "url": "pii_removed/extension.js",
                "lineNumber": 0,
                "columnNumber": 63924
            },
            "hitCount": 0,
            "children": [
                22,
                25
            ]
        },
        {
            "id": 22,
            "callFrame": {
                "functionName": "processChange",
                "scriptId": "260",
                "url": "pii_removed/extension.js",
                "lineNumber": 0,
                "columnNumber": 66484
            },
            "hitCount": 0,
            "children": [
                23
            ]
        },
        {
            "id": 23,
            "callFrame": {
                "functionName": "get",
                "scriptId": "260",
                "url": "pii_removed/extension.js",
                "lineNumber": 0,
                "columnNumber": 104374
            },
            "hitCount": 0,
            "children": [
                24
            ]
        },
        {
            "id": 24,
            "callFrame": {
                "functionName": "deserialize",
                "scriptId": "260",
                "url": "pii_removed/extension.js",
                "lineNumber": 0,
                "columnNumber": 104095
            },
            "hitCount": 0
        },
        {
            "id": 25,
            "callFrame": {
                "functionName": "updateState",
                "scriptId": "260",
                "url": "pii_removed/extension.js",
                "lineNumber": 0,
                "columnNumber": 66185
            },
            "hitCount": 0,
            "children": [
                26
            ]
        },
        {
            "id": 26,
            "callFrame": {
                "functionName": "setInputActive",
                "scriptId": "260",
                "url": "pii_removed/extension.js",
                "lineNumber": 0,
                "columnNumber": 66391
            },
            "hitCount": 0,
            "children": [
                27
            ]
        },
        {
            "id": 27,
            "callFrame": {
                "functionName": "executeCommand",
                "scriptId": "185",
                "url": "pii_removed/extensionHostProcess.js",
                "lineNumber": 139,
                "columnNumber": 21307
            },
            "hitCount": 0,
            "children": [
                28
            ]
        },
        {
            "id": 28,
            "callFrame": {
                "functionName": "executeCommand",
                "scriptId": "185",
                "url": "pii_removed/extensionHostProcess.js",
                "lineNumber": 124,
                "columnNumber": 138497
            },
            "hitCount": 0,
            "children": [
                29
            ]
        },
        {
            "id": 29,
            "callFrame": {
                "functionName": "g",
                "scriptId": "185",
                "url": "pii_removed/extensionHostProcess.js",
                "lineNumber": 124,
                "columnNumber": 138584
            },
            "hitCount": 0,
            "children": [
                30
            ]
        },
        {
            "id": 30,
            "callFrame": {
                "functionName": "h",
                "scriptId": "185",
                "url": "pii_removed/extensionHostProcess.js",
                "lineNumber": 124,
                "columnNumber": 139293
            },
            "hitCount": 0,
            "children": [
                31
            ]
        },
        {
            "id": 31,
            "callFrame": {
                "functionName": "$.registerCommand.description",
                "scriptId": "185",
                "url": "pii_removed/extensionHostProcess.js",
                "lineNumber": 124,
                "columnNumber": 137648
            },
            "hitCount": 0,
            "children": [
                32
            ]
        },
        {
            "id": 32,
            "callFrame": {
                "functionName": "executeCommand",
                "scriptId": "185",
                "url": "pii_removed/extensionHostProcess.js",
                "lineNumber": 124,
                "columnNumber": 138497
            },
            "hitCount": 0,
            "children": [
                33
            ]
        },
        {
            "id": 33,
            "callFrame": {
                "functionName": "g",
                "scriptId": "185",
                "url": "pii_removed/extensionHostProcess.js",
                "lineNumber": 124,
                "columnNumber": 138584
            },
            "hitCount": 0,
            "children": [
                34
            ]
        },
        {
            "id": 34,
            "callFrame": {
                "functionName": "F.<computed>.z.charCodeAt.F.<computed>",
                "scriptId": "185",
                "url": "pii_removed/extensionHostProcess.js",
                "lineNumber": 133,
                "columnNumber": 8301
            },
            "hitCount": 0,
            "children": [
                35
            ]
        },
        {
            "id": 35,
            "callFrame": {
                "functionName": "U",
                "scriptId": "185",
                "url": "pii_removed/extensionHostProcess.js",
                "lineNumber": 133,
                "columnNumber": 10847
            },
            "hitCount": 0,
            "children": [
                36
            ]
        },
        {
            "id": 36,
            "callFrame": {
                "functionName": "serializeRequestArguments",
                "scriptId": "185",
                "url": "pii_removed/extensionHostProcess.js",
                "lineNumber": 133,
                "columnNumber": 14485
            },
            "hitCount": 0,
            "children": [
                37
            ]
        },
        {
            "id": 37,
            "callFrame": {
                "functionName": "l",
                "scriptId": "185",
                "url": "pii_removed/extensionHostProcess.js",
                "lineNumber": 133,
                "columnNumber": 6714
            },
            "hitCount": 1,
            "positionTicks": [
                {
                    "line": 134,
                    "ticks": 1
                }
            ]
        },
        {
            "id": 39,
            "callFrame": {
                "functionName": "$acceptDirtyStateChanged",
                "scriptId": "185",
                "url": "pii_removed/extensionHostProcess.js",
                "lineNumber": 126,
                "columnNumber": 9651
            },
            "hitCount": 0,
            "children": [
                40
            ]
        },
        {
            "id": 40,
            "callFrame": {
                "functionName": "fire",
                "scriptId": "185",
                "url": "pii_removed/extensionHostProcess.js",
                "lineNumber": 79,
                "columnNumber": 2005
            },
            "hitCount": 0,
            "children": [
                41
            ]
        },
        {
            "id": 41,
            "callFrame": {
                "functionName": "z",
                "scriptId": "185",
                "url": "pii_removed/extensionHostProcess.js",
                "lineNumber": 79,
                "columnNumber": 1926
            },
            "hitCount": 0,
            "children": [
                42
            ]
        },
        {
            "id": 42,
            "callFrame": {
                "functionName": "y",
                "scriptId": "185",
                "url": "pii_removed/extensionHostProcess.js",
                "lineNumber": 79,
                "columnNumber": 1813
            },
            "hitCount": 0,
            "children": [
                43
            ]
        },
        {
            "id": 43,
            "callFrame": {
                "functionName": "",
                "scriptId": "260",
                "url": "pii_removed/extension.js",
                "lineNumber": 0,
                "columnNumber": 63924
            },
            "hitCount": 0,
            "children": [
                44
            ]
        },
        {
            "id": 44,
            "callFrame": {
                "functionName": "updateState",
                "scriptId": "260",
                "url": "pii_removed/extension.js",
                "lineNumber": 0,
                "columnNumber": 66185
            },
            "hitCount": 0,
            "children": [
                45
            ]
        },
        {
            "id": 45,
            "callFrame": {
                "functionName": "setInputActive",
                "scriptId": "260",
                "url": "pii_removed/extension.js",
                "lineNumber": 0,
                "columnNumber": 66391
            },
            "hitCount": 0,
            "children": [
                46
            ]
        },
        {
            "id": 46,
            "callFrame": {
                "functionName": "executeCommand",
                "scriptId": "185",
                "url": "pii_removed/extensionHostProcess.js",
                "lineNumber": 139,
                "columnNumber": 21307
            },
            "hitCount": 0,
            "children": [
                47
            ]
        },
        {
            "id": 47,
            "callFrame": {
                "functionName": "executeCommand",
                "scriptId": "185",
                "url": "pii_removed/extensionHostProcess.js",
                "lineNumber": 124,
                "columnNumber": 138497
            },
            "hitCount": 1,
            "positionTicks": [
                {
                    "line": 125,
                    "ticks": 1
                }
            ]
        },
        {
            "id": 38,
            "callFrame": {
                "functionName": "deserializeRequestJSONArgs",
                "scriptId": "185",
                "url": "pii_removed/extensionHostProcess.js",
                "lineNumber": 133,
                "columnNumber": 15272
            },
            "hitCount": 1,
            "positionTicks": [
                {
                    "line": 134,
                    "ticks": 1
                }
            ]
        },
        {
            "id": 48,
            "callFrame": {
                "functionName": "(program)",
                "scriptId": "0",
                "url": "",
                "lineNumber": -1,
                "columnNumber": -1
            },
            "hitCount": 1
        }
    ],
    "startTime": 198556261209,
    "endTime": 198556382584,
    "samples": [
        24,
        37,
        38,
        47,
        14,
        48
    ],
    "timeDeltas": [
        120542,
        208,
        125,
        125,
        167,
        83
    ]
}
lukaszcz commented 8 months ago

This may be related:

For me, the extension makes the following too slow to be usable:

lukaszcz commented 2 months ago

The UI responsiveness has improved since:

The high CPU load may still be a problem, but it's now less visible by the user on a multi-core machine.

lukaszcz commented 2 months ago

Is this solved by:

I don't seem to experience high CPU load or unresponsiveness anymore.