11 Punkte von xguru 2021-09-30 | 4 Kommentare | Auf WhatsApp teilen
  • Die 2016 entwickelte Erweiterung Bracket Pair Colorizer wurde 6 Millionen Mal installiert

  • Auch Version 2 mit verbesserter Performance wurde 3 Millionen Mal installiert

  • Wegen der Einschränkungen der VS Code Decoration API und weil kein Zugriff auf Token-Informationen möglich ist, ist sie bei großen Dateien aber immer noch langsam

→ Eine 42k-Datei lastet die CPU 10 Sekunden lang zu 100 % aus, sodass alle anderen Vorgänge blockiert werden

  • Ab 1.60 wird diese Erweiterung direkt im VS Code Core umgesetzt und dadurch 10.000-mal schneller (in einem bestimmten Beispiel)

"editor.bracketPairColorization.enabled": true

  • Gilt auch für VS Code for Web und Monaco
  • Schon diese Funktion selbst lässt sich ohne umfassende API-Änderungen in einer Erweiterung nur schwer schnell umsetzen

  • (Der Originalartikel enthält auch Details zum Algorithmus, ist aber zu lang, um sie hier zu übernehmen.)

4 Kommentare

 
joyfui 2021-10-01

Ich habe schon länger Bracket Pair Colorizer 2 verwendet, aber als ich wieder auf die Erweiterungsseite gegangen bin, habe ich gesehen, dass die Wartung eingestellt wurde.

Ich habe die Erweiterung entfernt und die Option editor.bracketPairColorization.enabled aktiviert.

 
nicewook 2021-09-30

Ich wusste zwar, dass es aktualisiert wurde,

  1. aber ich hatte keine Ahnung, dass sich die Performance in diesem Maß verbessert hat

  2. offenbar habe ich Erweiterung 1 verwendet

  3. ich habe die Erweiterung gelöscht und diese Funktion in den Einstellungen aktiviert. :)

 
xguru 2021-09-30

Auf den ersten Blick wirkt es so, als wäre das Problem dadurch entstanden, dass VSCode eine bekannte Erweiterung intern implementiert hat, aber

https://github.com/microsoft/vscode/…

Der ursprüngliche Autor von Bracket Pair Colorizer verfolgt dieses Performance-Problem ebenfalls mit,

und sagt selbst, dass diese Erweiterung inzwischen so geworden ist, dass sie für ihn kaum noch zu überblicken ist und daher schwer zu warten ist.

Mit anderen Worten: Wenn VS Code das intern schnell implementiert, ist das am Ende eher für beide Seiten besser.

 
tkwlsrl 2021-09-30

Das habe ich auch gedacht, also war es eine Win-win-Situation ^_^ ( Der ursprüngliche Entwickler muss sich jetzt schließlich nicht mehr darum kümmern, haha )