TabNine: High memory and CPU usage
While working on rustc, I noticed TabNine and rls regularly consuming 100% CPU each for quite a while. I usually only notice it when I switch to a different virtual desktop when I build rustc, so it’s not only while actually working in vim, but also(?) a while after I stop changing things.
Additionally, the memory usage for TabNine is huge. Currently top shows:
23316 doener 20 0 9964048 4,9g 0 S 0,0 31,2 74:41.38 TabNine
The process was started about 86 hours ago.
About this issue
- Original URL
- State: closed
- Created 6 years ago
- Reactions: 62
- Comments: 87 (5 by maintainers)
Hi! I hit an all-time record this morning:
Killed my computer 😦
I have to uninstall until this is resolved
Why is this issue closed if it’s obviously still a problem.
@zxqfl could you please re-open this issue? It still seems to be a problem for a lot of people (me included).
I love the functionality TabNine brings, but having to uninstall until this issue is somewhat resolved 😢
Using over 3GB of memory on my machine:
Can confirm, tabnine 2.1.17 with vim consumes several GB if I leave it open with a few python tabs.
Some of my python projects contains
venvdirectories with virtualenvs that contain quite a few python files, no idea if this related.@zxqfl please reopen, or should I open a new bug?
I love the VSCode extension but it is already consuming 1.5G after 100 lines of code. I hope it will be fixed at some point.
EDIT:
tabnine --versionreportsTabNine 1.0.10 (x86_64-unknown-linux-gnu).A fairly simple, though heavy, test case for both this and #24 (they seem like the same issue to me) is OpenWrt. I did a clean checkout of current master (commit
2407b1edccc2f2d426333bd7cc1743c8e4da8dbd) there and ran TabNine manually, asking it for one completion in the OpenWrt source directory, as follows (I pieced this together based on company-tabnine, is there API documentation somewhere?):I left it hanging there since I just needed to point it to the OpenWrt directory.
This gave me 100% CPU usage for eight seconds to start with, which is fair enough since it’s indexing the whole directory for the first time. Memory usage stabilizes at around 300 megabytes (looking at the “RES” column in
htop). Then I followed up with building OpenWrt in another shell, using the default configuration because that suffices to exhibit this issue, and with eight CPU cores to make it not take forever (andnice -n19because I wanted the rest of my system to not suffer too much):For some background, OpenWrt is a Linux distribution for embedded devices — routers in particular. Its build system first builds “tools”, which include basic things like
tarandsed, then the “toolchain” i.e.gccand company, before it goes on to actually build the whole system.Of TabNine, I can observe all of the following during even just the “tools” build:
straceshowing that TabNine is doing all kinds of stuff including callinginotify_add_watchin thebuild_dirdirectory, which I should note is under.gitignoreAfter the “toolchain” build completes, memory usage is at almost 2500 megabytes and user CPU time (as shown by
htop) is at about 19 minutes. Since the build has taken around 30 minutes so far, this is over 60% average CPU usage.In the end, the entire build took me just shy of 44 minutes. At that point TabNine’s CPU time stabilized at 40 minutes and memory usage at nearly 4500 megabytes. I think it’s fair to call both of these “high usage”. Normally at this point I’d
pkill TabNineuntil it bloats up again, but sometimes I’ve missed it until it’s grown to eat so many gigabytes that it’s actually causing trouble for the rest of my system.This time I also took a look at the number of inotify watches TabNine has registered:
That definitely seems incorrect. Based on this and what I saw with
strace, I’d wager that there’s a bug related to processing of.gitignoreand similar files: If an entire directory is ignored, I don’t think TabNine should be recursing into it and especially not adding inotify watches therein. That might be the sole cause of both the CPU and the memory usage.2.1.17 is consuming 3.3 GB of memory (and counting), ~35% CPU. Been running for an hour or so.
Hm… 250+ days ago I posted on this thread of now-53 participants. Sadly due to the ongoing and widespread issues I was forced to abandon TabNine. 😕
Uninstalling, it is taking 26+ GB of ram
TabNine still has huuuuuge CPU usage if I am typing a lot quickly. It consistently whirrs up my laptop’s fans in a few moments.
Same issue here re: memory. 3G for a fairly small java/groovy project.
I reproduced the high memory usage when building OpenWrt. Today I released an update to TabNine which uses 0% CPU while building OpenWrt. The new behaviour is as follows:
The update is currently available to beta testers. To try it, type
TabNine::become_beta_tester, then typeTabNine::versionto check you have the new version – the new version number is 1.0.14.If no beta testers report issues, I’ll release it to all users soon.
Thanks again for investigating!
Got some huge amount of memory consumption as well. Will uninstall until its fixed…
@talcodota thank you for your feedback, but I am not using the plugin anymore. It is even possible that the problem is solved as it is quite some time since I used it (6+ months). It was not an IDE, but vim or neovim on a Linux development server.
High memory issues occur on my machine too. Language agnostic. It’s the highest memory consuming process on my computer. Ha!
Still an issue in 2021; using 2GB ram on a python project with a couple hundred lines of code. I’m using a mac
Excessive memory usage on Windows 10 with VSCode’s extension… ~1/1.5G. I’m not experiencing any crash and BSOD but it’s too heavy to use…
This is on archlinux.
I have this issue when checking out between versions while working on Python. when the versions are very different from each other I assume TabNine is rebuilding it’s DB but the CPU usage is insane making my laptop almost unusable.
It would be very convenient to have a CPU / RAM limit configuration
I have the same Issue with Linux Debian 10, using Pycharm… Great pluggin, but kill the machine performance!
My development computer has around 8gbs, Tabnine was using around 4gbs of RAM and basically it made it crash
Sorry for the 1 year reply lol. Yes windows based one. It’s Windows Sub-System Linux. Btw, using Copilot, work like a charm
i’m with the same problem on windows
my tabnine uses too much cpu, although little ram memory, the extension is great, but it has this little great detail
@Limatucano I was struggling at ~1.5gb. I’m at ~500mb like you now. For me it’s a good improvment…
same here, it’s almost passing Google chrome with 20 open tabs.
Same problem!, Tabnine uses a lot of RAM
The memory usage is too high and I get BSOD. Please fix this because your extension is too useful for me. TabNine.exe takes up even more memory than Chromium!
auto completion that took roughly 10GB when perform is not cool. will try later 😃
You can switch to old version which doesn’t have this problem for now. For example, I’m using vim. git clone https://github.com/zxqfl/tabnine-vim ~/.vim/bundle cd ~/.vim/bundle/tabnine-vim git checkout c20d73f3e007d4b8804c344f114eb03b5c9466a3
This version doesn’t have the CPU/MEM problem for me.