Comments (7)
lsp-bridge return sexp result to Emacs, lsp-bridge use Python or Rust parse JSON data.
I don't think byte-code will improve Emacs performance, because some lsp server will return 50,000 lines JSON to emacs per key click, data is too big that Elisp haven't enough performance to handle it, because Elisp is single-thread, it will block Emacs if too much data need to parse.
lsp-bridge is first project to make Emacs LSP performance fast as VSCode, I belive author of lsp-mode or emacs-lsp-booster steal idea from lsp-bridge. Note, I think other project steal idea from lsp-bridge is good thing, it's why Open Source is great thing. ;)
from lsp-bridge.
The technology of lsp-bridge is much more advanced than this. Thanks for the suggestion.
from lsp-bridge.
I belive emacs-lsp-booster use same tech as lsp-bridge, lsp-bridge is build middle-server between emacs and lsp server.
from lsp-bridge.
But lsp-bridge build-in multi-thread tech for backend, lsp-bridge not just improvement lsp performance, all acm backend is rebuild with multi-thread tech.
from lsp-bridge.
I was just wondering whether the specific technique of providing Emacs with readable byte-code data instead of JSON might be something that lsp-bridge could also do for a similar benefit. (If lsp-bridge never asks Emacs to parse JSON then my question isn't relevant.)
I have very little understanding of lsp-bridge, sorry. I don't use it myself*, and I do understand that lsp-bridge and emacs-lsp-booster are very different projects, but I thought it was possible that this particular trick used by emacs-lsp-booster might be of interest here as well.
* I've never had much success with the language servers I've tried in the past, so I don't use LSP.
from lsp-bridge.
In that case the only point of interest for you might be this:
By using bytecode to construct objects, we can eliminate duplicated objects
-- quoted from https://github.com/blahgeek/emacs-lsp-booster#how-this-project-works
If that's a common situation, then using byte code for the sexp forms rather than the original lisp forms may provide an additional benefit to what you're already doing.
Either way, I'll leave it in your capable hands. Thanks for the quick responses!
from lsp-bridge.
The key to the problem is that LSP has a large amount of data. If external threads are not used for filtering, no matter what format, too much data will cause performance problems and GC startup. The reason is that a large amount of data exceeds the processing capacity of Emacs. The lack of multi-threading in Emacs is the root cause. .
No matter what format is used, even if the performance is improved, as long as the amount of data reaches a certain level, freezing problems will still occur.
from lsp-bridge.
Related Issues (20)
- java 多个工程代码跳转的问题 HOT 5
- markdown default lang sever is incorrect HOT 1
- [Feature-Request]/Question: Tree-like view of symbols from lsp-bridge HOT 3
- vscode-html-language-server日志返回candidates为0 HOT 8
- diagnostic功能无法显示整个project的异常 HOT 3
- 一个小问题 HOT 2
- How can I detect if ACM menu is active when hitting Tab? HOT 2
- python 缩进问题 HOT 1
- volar [LSP-Bridge] Current server not support code action. HOT 1
- lsp-bridge-open-remote-file not working and all problems HOT 3
- lsp-bridge-peek-mode with errors HOT 3
- jdtls code action error, it cannot pop candidates. HOT 1
- Build a multi-thread backend for CAPF
- completion not working on windows with doomemacs HOT 2
- Submit to GNU ELPA HOT 1
- Rust mode does not show expected diagnostic info HOT 1
- Win10行安装后报错: No compression program defined HOT 1
- completion word from a file HOT 4
- basedpyright_ruff issue HOT 1
- dart中import无法补全库名称 HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lsp-bridge.