microsoft / microsoft/TypeScript-Sublime-Plugin

Plugin slows down Sublime Text

Aperta
#716 3 commenti 11 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Lingua principale
JavaScript
Stelle
1.7k
Fork
236
Merge medio
21g 13h
PR unite (30g)
1

Descrizione

Typescript plugin extremely slows down text typing and selection performance on large files like tsserver.js. Slowing down appears even after renaming that file to .txt and opening as Plain Text. This is very annoying when you need to view large logs or csv files.

This behavior is reproducible in clean portable installation of Sublime Text with only TypeScript plugin installed even without opened project and tsconfig.json.

Disabling plugin via Package Control makes Sublime smooth again. Can using *_async api help here? Or is there any setting to disable processing non-js/ts files?

System Info
Item Value
CPUs Intel(R) Core(TM) i5-4430 CPU @ 3.00GHz (4 x 3000)
Memory (System) 15.93GB (9.38GB free)
System Windows 10.0.17763.475 (x64)
Sublime v3.2.1 build 3207 x64 stable channel
Typescript plugin v3.4.1
Plugin Event Profile
This list shows how much time each plugin has taken to respond to each event:

on_activated:
    Default.pane: 0.001s total, mean: 0.000s, max: 0.001s
    TypeScript.typescript.listeners.listeners: 1.334s total, mean: 0.056s, max: 0.265s

on_close:
    Default.pane: 0.000s total, mean: 0.000s, max: 0.000s
    TypeScript.typescript.listeners.listeners: 0.164s total, mean: 0.055s, max: 0.163s

on_deactivated:
    Default.history_list: 0.011s total, mean: 0.000s, max: 0.002s

on_hover:
    Default.symbol: 0.004s total, mean: 0.000s, max: 0.001s
    TypeScript.typescript.listeners.listeners: 3.556s total, mean: 0.155s, max: 0.691s

on_load:
    Default.detect_indentation: 0.003s total, mean: 0.002s, max: 0.003s
    TypeScript.typescript.listeners.listeners: 0.000s total, mean: 0.000s, max: 0.000s
    Default.exec: 0.003s total, mean: 0.001s, max: 0.002s

on_modified:
    TypeScript.typescript.listeners.listeners: 36.134s total, mean: 0.317s, max: 1.174s

on_pre_close:
    Default.history_list: 0.000s total, mean: 0.000s, max: 0.000s

on_selection_modified:
    TypeScript.typescript.listeners.listeners: 88.955s total, mean: 0.217s, max: 1.569s

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia profilando i TypeScript plugin listeners per on_modified e on_selection_modified quando vengono aperti file di grandi dimensioni come tsserver.js come Plain Text. Confronta il comportamento con il plugin disabilitato e verifica se si applica la *_async EventListener API di Sublime Text o il filtraggio per tipo di file. Il lavoro è completato quando la digitazione e la selezione rimangono reattive nei file .txt, di log o CSV di grandi dimensioni senza compromettere il comportamento dei file TypeScript.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
javascript, typescript
Ambito
performance, tooling
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.