Unify cache size for script dependencies

This commit is contained in:
Natalia Selezneva
2019-02-07 12:43:47 +03:00
parent abc2dbba39
commit 8918a83fb4
3 changed files with 9 additions and 4 deletions
@@ -14,6 +14,7 @@ import com.intellij.psi.search.DelegatingGlobalSearchScope
import com.intellij.psi.search.GlobalSearchScope
import com.intellij.psi.search.NonClasspathDirectoriesScope
import com.intellij.util.containers.SLRUCache
import org.jetbrains.kotlin.idea.core.script.ScriptDependenciesCache.Companion.MAX_SCRIPTS_CACHED
import org.jetbrains.kotlin.idea.core.script.ScriptDependenciesManager
import org.jetbrains.kotlin.idea.core.script.dependencies.ScriptRelatedModulesProvider
import org.jetbrains.kotlin.idea.stubindex.KotlinSourceFilterScope
@@ -137,7 +138,7 @@ sealed class ScriptDependenciesSourceInfo(val project: Project) : IdeaModuleInfo
class ForProject(project: Project) : ScriptDependenciesSourceInfo(project)
}
private class ScriptBinariesScopeCache(private val project: Project) : SLRUCache<ScriptDependencies, GlobalSearchScope>(6, 6) {
private class ScriptBinariesScopeCache(private val project: Project) : SLRUCache<ScriptDependencies, GlobalSearchScope>(MAX_SCRIPTS_CACHED, MAX_SCRIPTS_CACHED) {
override fun createValue(key: ScriptDependencies?): GlobalSearchScope {
val roots = key?.classpath ?: emptyList()
val classpath = ScriptDependenciesManager.toVfsRoots(roots)
@@ -38,9 +38,12 @@ import kotlin.reflect.KProperty0
import kotlin.reflect.jvm.isAccessible
import kotlin.script.experimental.dependencies.ScriptDependencies
private const val MAX_SCRIPTS_CACHED = 10
class ScriptDependenciesCache(private val project: Project) {
companion object {
const val MAX_SCRIPTS_CACHED = 50
}
private val cacheLock = ReentrantReadWriteLock()
private val cache = SLRUMap<VirtualFile, ScriptDependencies>(MAX_SCRIPTS_CACHED, MAX_SCRIPTS_CACHED)
@@ -14,6 +14,7 @@ import com.intellij.openapi.util.EmptyRunnable
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.util.containers.SLRUMap
import org.jetbrains.kotlin.idea.core.script.*
import org.jetbrains.kotlin.idea.core.script.ScriptDependenciesCache.Companion.MAX_SCRIPTS_CACHED
import org.jetbrains.kotlin.idea.util.application.runWriteAction
import org.jetbrains.kotlin.script.KotlinScriptDefinition
import org.jetbrains.kotlin.script.ScriptContentLoader
@@ -31,7 +32,7 @@ abstract class ScriptDependenciesLoader(protected val project: Project) {
}
}
private val fileModificationStamps: SLRUMap<String, Long> = SLRUMap(10, 10)
private val fileModificationStamps: SLRUMap<String, Long> = SLRUMap(MAX_SCRIPTS_CACHED, MAX_SCRIPTS_CACHED)
protected abstract fun loadDependencies(file: VirtualFile, scriptDef: KotlinScriptDefinition)
protected abstract fun shouldShowNotification(): Boolean