Skip to content

2.5gb on small project #28540

Description

I have a small project of Natural Language Processing and there are 2 files with 37k lines, which contains the datasets. The problem occurs even when i'm not using those files. Not even opening the files. I have to use other editor to run "node index.js" -my main fail.

I dont know how the problem starts, but when i open the vscode editor, it goes up to 2.5gb of ram on the startup. I dont know what is happening.

Activity

  1. chrmarti commented on Nov 12, 2018

    @chrmarti

    /needsMoreInfo

    What is the file type of the data files?

  2. vscodebot commented on Nov 12, 2018

    @vscodebot

    Thanks for creating this issue! We figured it's missing some basic information or in some other way doesn't follow our issue reporting guidelines. Please take the time to review these and update the issue.

    Happy Coding!

  3. edunsouza commented on Nov 13, 2018

    @edunsouza
    Author

    /needsMoreInfo

    What is the file type of the data files?

    They are all javascript and json files.
    Vscode takes a while to shoot up the memory. When it does, the ram usage goes up to 2.5gb and starts to freeze some features.

  4. chrmarti commented on Nov 13, 2018

    @chrmarti

    Does it reproduce when starting with code --disable-extensions?

  5. edunsouza commented on Nov 13, 2018

    @edunsouza
    Author
  6. mjbvz commented on Nov 14, 2018

    @mjbvz

    Eduardo Souza (@edunsouza) Can you share those source files?

  7. edunsouza commented on Nov 14, 2018

    @edunsouza
    Author

    Matt Bierner (@mjbvz) of course I can! And I'll be happy if I can help to find out the problem.

    The files are available on the repository: https://github.com/edunsouza/communicator

  8. mjbvz commented on Nov 15, 2018

    @mjbvz

    Tested using typescript@3.2.0-dev.20181114

    Switching between the js files in dataset/ I can still easily get up to over a GB. Seems mostly to happen after switching to another js file not under dataset.

    Logs:
    tsserver.log

  9. removed their assignment
    on Nov 15, 2018
  10. DanielRosenwasser commented on Nov 15, 2018

    @DanielRosenwasser
    Member

    Nathan Shively-Sanders (@sandersn) and Anders Hejlsberg (@ahejlsberg), any ideas on how we could do better here?

  11. ahejlsberg commented on Nov 16, 2018

    @ahejlsberg
    Member

    The issue looks to be with the dataset/afinn/afinn.js file. It contains an array literal with 30K+ elements specified as object literals:

    module.exports = [
        {texto: ";)", sentimento: 1, ";)": 1},
        {texto: ";@", sentimento: -1, ";@": -1},
        {texto: ";*", sentimento: -1, ";*": -1},
        {texto: ";**", sentimento: -1, ";**": -1},
        {texto: ";~", sentimento: -1, ";~": -1},
        ...
    ];

    The reverse mapping pattern means that each object literal has a unique type. To make matters worse, object literal normalization (#19513) causes us to expand into 30K+ unique types with 30K+ properties each (!!!). We then attempt to perform subtype reduction on the set of types in order to make a union type. This ends up generating enormous amounts of work. If I reduce down to 2500 unique types we still take close to 30 seconds to type check, so with 30K+ types we'll effectively take forever.

    I'm thinking we should consider a governor on union subtype reduction. Given that is an O(n^2) operation, perhaps we limit subtype reduction to unions with 500 or less constituents.

  12. ahejlsberg commented on Jan 28, 2019

    @ahejlsberg
    Member

    Oops, meant to close the old PR, not the issue.

  13. locked as resolved and limited conversation to collaborators on Oct 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

BugA bug in TypeScriptDomain: PerformanceReports of unusually slow behaviorFixedA PR has been merged for this issue

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions