Giter Site home page Giter Site logo

Comments (7)

manateelazycat avatar manateelazycat commented on August 23, 2024 1

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.

manateelazycat avatar manateelazycat commented on August 23, 2024

The technology of lsp-bridge is much more advanced than this. Thanks for the suggestion.

from lsp-bridge.

manateelazycat avatar manateelazycat commented on August 23, 2024

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.

manateelazycat avatar manateelazycat commented on August 23, 2024

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.

phil-s avatar phil-s commented on August 23, 2024

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.

phil-s avatar phil-s commented on August 23, 2024

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.

manateelazycat avatar manateelazycat commented on August 23, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.