Hannah-Sten / TeXiFy-IDEA

LaTeX support for the IntelliJ platform by JetBrains.
https://hannah-sten.github.io/TeXiFy-IDEA
MIT License
884 stars 87 forks source link

Performance problem #2888

Closed jandermoreira closed 1 year ago

jandermoreira commented 1 year ago

Type of JetBrains IDE (IntelliJ, PyCharm, etc.) and version

IntelliJ IDEA 2022.3.1 (Community Edition) Build #IC-223.8214.52, built on December 20, 2022 Runtime version: 17.0.5+1-b653.23 amd64 VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o. Linux 5.10.0-20-amd64 GC: G1 Young Generation, G1 Old Generation Memory: 984M Cores: 4 Registry: debugger.new.tool.window.layout=true editor.distraction.free.mode=true ide.experimental.ui=true ide.balloon.shadow.size=0

Non-Bundled Plugins: com.github.lucianoratamero.hoshitheme (1.0.4) nl.rubensten.texifyidea (0.7.24) izhangzhihao.rainbow.brackets (2023.1.1)

Kotlin: 223-1.7.21-release-272-IJ8214.52 Current Desktop: GNOME

Operating System

Debian 11 Kernel 5.10.0-20-amd64 #1 SMP Debian 5.10.158-2 (2022-12-13) x86_64 GNU/Linux

TeXiFy IDEA version (both tested)

Texify 0.7.25.1 Texify 0.7.24

What I did (steps to reproduce)

Since a few days ago, I noticed a great lag from clicking to compile a document and the latex compiler starts running. For about 30 seconds or even more the IDE freezes, but during that period of time, java increases the CPU usage doing something I'm not able to find out what.

Successive compilations of the same document start almost immediately (normal behavior) after the first one.

If I change the document to be compiled, the delay returns for the first run.

I tried:

No difference thou.

This is my CPU usage during the 'freeze'. image

The memory usage is always below 60% (8GiB total).

Other perhaps relevant information

Minimal example to reproduce the problem

No minimal example

Expected behavior

The compilation to start in just a few seconds.

Actual behavior

The IDE freezes for about 30 seconds (I already waited for more than 1 minute) and then it resumes its natural behavior.

Console output (running from command line).

$ idea.sh texto
CompileCommand: exclude com/intellij/openapi/vfs/impl/FilePartNodeRoot.trieDescend bool exclude = true
2023-01-13 17:38:49,581 [    487]   WARN - #c.i.i.p.PluginManager - Problems found loading plugins:
  The Gradle DSL API (id=org.jetbrains.idea.gradle.dsl, path=/usr/local/idea/plugins/android-gradle-dsl) plugin Requires plugin 'com.intellij.gradle' to be enabled
  The Gradle-Java (id=org.jetbrains.plugins.gradle, path=/usr/local/idea/plugins/gradle-java) plugin Requires plugin 'com.intellij.gradle' to be enabled
  The Gradle Dependency Updater Implementation (id=org.jetbrains.plugins.gradle.dependency.updater, path=/usr/local/idea/plugins/gradle-dependencyUpdater) plugin Requires plugin 'com.intellij.gradle' to be enabled
  The Gradle-Maven (id=org.jetbrains.plugins.gradle.maven, path=/usr/local/idea/plugins/gradle-java-maven) plugin Requires plugin 'org.intellij.groovy' to be enabled
2023-01-13 17:38:51,453 [   2359]   WARN - #c.i.o.a.i.ActionManagerImpl - keymap "Visual Studio" not found PluginDescriptor(name=IDEA CORE, id=com.intellij, descriptorPath=plugin.xml, path=/usr/local/idea/lib, version=223.8214.52, package=com.intellij.structuralsearch, isBundled=true)
2023-01-13 17:38:51,460 [   2366]   WARN - #c.i.o.a.i.ActionManagerImpl - keymap "Eclipse" not found PluginDescriptor(name=IDEA CORE, id=com.intellij, descriptorPath=plugin.xml, path=/usr/local/idea/lib, version=223.8214.52, package=com.intellij.structuralsearch, isBundled=true)
2023-01-13 17:38:51,473 [   2379]   WARN - #c.i.o.a.i.ActionManagerImpl - keymap "NetBeans 6.5" not found PluginDescriptor(name=IDEA CORE, id=com.intellij, descriptorPath=plugin.xml, path=/usr/local/idea/lib, version=223.8214.52, package=com.intellij.structuralsearch, isBundled=true)
2023-01-13 17:38:51,474 [   2380]   WARN - #c.i.o.a.i.ActionManagerImpl - keymap "Visual Studio" not found PluginDescriptor(name=IDEA CORE, id=com.intellij, descriptorPath=plugin.xml, path=/usr/local/idea/lib, version=223.8214.52, package=com.intellij.structuralsearch, isBundled=true)
2023-01-13 17:38:51,554 [   2460]   WARN - #c.i.o.a.i.ActionManagerImpl - keymap "Eclipse" not found PluginDescriptor(name=GitHub, id=org.jetbrains.plugins.github, descriptorPath=plugin.xml, path=/usr/local/idea/plugins/vcs-github, version=223.8214.52, package=org.jetbrains.plugins.github, isBundled=true)
2023-01-13 17:38:54,260 [   5166]   WARN - #c.i.e.RunManager - Must be not called before project components initialized
2023-01-13 17:38:57,405 [   8311]   WARN - #c.i.o.w.i.c.h.t.MainMenuButton - rootPane is not set, MainMenu button listeners are not installed
2023-01-13 17:38:57,716 [   8622]   WARN - #c.i.o.a.i.ActionUpdater - 715 ms to grab EDT for ToolWindowHeader$2#update@ToolwindowTitle (com.intellij.toolWindow.ToolWindowHeader$2)
2023-01-13 17:38:57,773 [   8679]   WARN - #c.i.o.a.i.ActionUpdater - 323 ms to grab EDT for ProjectToolbarWidgetAction#update@MainToolbar (com.intellij.openapi.wm.impl.headertoolbar.ProjectToolbarWidgetAction)
2023-01-13 17:39:06,438 [  17344] SEVERE - #c.i.u.i.PersistentEnumeratorBase - null
java.io.EOFException
    at java.base/java.io.DataInputStream.readUnsignedByte(DataInputStream.java:296)
    at com.intellij.openapi.util.io.DataInputOutputUtilRt.readINT(DataInputOutputUtilRt.java:16)
    at com.intellij.util.io.DataInputOutputUtil.readINT(DataInputOutputUtil.java:23)
    at com.intellij.vcs.log.impl.HashImpl.read(HashImpl.java:33)
    at com.intellij.vcs.log.data.VcsLogStorageImpl$MyCommitIdKeyDescriptor.read(VcsLogStorageImpl.java:236)
    at com.intellij.vcs.log.data.VcsLogStorageImpl$MyCommitIdKeyDescriptor.read(VcsLogStorageImpl.java:215)
    at com.intellij.util.io.keyStorage.AppendableStorageBackedByResizableMappedFile.read(AppendableStorageBackedByResizableMappedFile.java:91)
    at com.intellij.util.io.PersistentEnumeratorBase.findValueFor(PersistentEnumeratorBase.java:451)
    at com.intellij.util.io.PersistentEnumeratorBase.lambda$valueOf$2(PersistentEnumeratorBase.java:440)
    at com.intellij.util.io.PersistentEnumeratorBase.catchCorruption(PersistentEnumeratorBase.java:634)
    at com.intellij.util.io.PersistentEnumeratorBase.valueOf(PersistentEnumeratorBase.java:439)
    at com.intellij.util.io.PersistentBTreeEnumerator.valueOf(PersistentBTreeEnumerator.java:714)
    at com.intellij.util.io.PersistentEnumeratorBase.isKeyAtIndex(PersistentEnumeratorBase.java:379)
    at com.intellij.util.io.PersistentBTreeEnumerator.enumerateImpl(PersistentBTreeEnumerator.java:537)
    at com.intellij.util.io.PersistentEnumeratorBase.lambda$doEnumerate$0(PersistentEnumeratorBase.java:273)
    at com.intellij.util.io.PersistentEnumeratorBase.catchCorruption(PersistentEnumeratorBase.java:634)
    at com.intellij.util.io.PersistentEnumeratorBase.doEnumerate(PersistentEnumeratorBase.java:272)
    at com.intellij.util.io.PersistentEnumeratorBase.enumerate(PersistentEnumeratorBase.java:285)
    at com.intellij.vcs.log.data.VcsLogStorageImpl.getOrPut(VcsLogStorageImpl.java:99)
    at com.intellij.vcs.log.data.VcsLogStorageImpl.getCommitIndex(VcsLogStorageImpl.java:106)
    at com.intellij.vcs.log.data.VcsLogRefresherImpl.compactCommit(VcsLogRefresherImpl.java:178)
    at com.intellij.vcs.log.data.VcsLogRefresherImpl.lambda$compactCommits$3(VcsLogRefresherImpl.java:168)
    at com.intellij.util.containers.ContainerUtil.map(ContainerUtil.java:1798)
    at com.intellij.vcs.log.data.VcsLogRefresherImpl.lambda$compactCommits$4(VcsLogRefresherImpl.java:168)
    at com.intellij.diagnostic.telemetry.TraceKt.computeWithSpan(trace.kt:123)
    at com.intellij.vcs.log.data.VcsLogRefresherImpl.compactCommits(VcsLogRefresherImpl.java:167)
    at com.intellij.vcs.log.data.VcsLogRefresherImpl$2.lambda$each$0(VcsLogRefresherImpl.java:133)
    at com.intellij.diagnostic.telemetry.TraceKt.runWithSpanIgnoreThrows(trace.kt:70)
    at com.intellij.diagnostic.telemetry.TraceUtil.runWithSpanThrows(TraceUtil.java:24)
    at com.intellij.vcs.log.data.VcsLogRefresherImpl$2.each(VcsLogRefresherImpl.java:130)
    at com.intellij.vcs.log.data.VcsLogRefresherImpl$ProviderIterator.iterate(VcsLogRefresherImpl.java:415)
    at com.intellij.vcs.log.data.VcsLogRefresherImpl.lambda$loadRecentData$1(VcsLogRefresherImpl.java:138)
    at com.intellij.diagnostic.telemetry.TraceKt.computeWithSpanIgnoreThrows(trace.kt:66)
    at com.intellij.diagnostic.telemetry.TraceUtil.computeWithSpanThrows(TraceUtil.java:18)
    at com.intellij.vcs.log.data.VcsLogRefresherImpl.loadRecentData(VcsLogRefresherImpl.java:125)
    at com.intellij.vcs.log.data.VcsLogRefresherImpl.readFirstBlock(VcsLogRefresherImpl.java:108)
    at com.intellij.vcs.log.data.VcsLogData$1.lambda$run$0(VcsLogData.java:170)
    at com.intellij.diagnostic.telemetry.TraceKt.runSpanWithScope(trace.kt:89)
    at com.intellij.vcs.log.data.VcsLogData$1.run(VcsLogData.java:166)
    at com.intellij.openapi.progress.impl.CoreProgressManager.startTask(CoreProgressManager.java:423)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.startTask(ProgressManagerImpl.java:114)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcessWithProgressAsynchronously$6(CoreProgressManager.java:474)
    at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$3(ProgressRunner.java:252)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:188)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:589)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:664)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:620)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:588)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:175)
    at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$4(ProgressRunner.java:252)
    at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:702)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:699)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699)
    at java.base/java.lang.Thread.run(Thread.java:833)
2023-01-13 17:39:06,448 [  17354] SEVERE - #c.i.u.i.PersistentEnumeratorBase - IntelliJ IDEA 2022.3.1  Build #IC-223.8214.52
2023-01-13 17:39:06,449 [  17355] SEVERE - #c.i.u.i.PersistentEnumeratorBase - JDK: 17.0.5; VM: OpenJDK 64-Bit Server VM; Vendor: JetBrains s.r.o.
2023-01-13 17:39:06,457 [  17363] SEVERE - #c.i.u.i.PersistentEnumeratorBase - OS: Linux
PHPirates commented 1 year ago

Thanks for reporting, this is very likely a duplicate of #2797. If you happen to have a thread dump (intellij would notify you if it generated one) you could upload it to be sure, but I think I know how to fix it.