mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[terminal] IJPL-182482 Drop backend typing activity
Backend typing latency measurement will be reimplemented in the next commit. GitOrigin-RevId: 4c1178a7c02d8740183883dca5b44e2199f27612
This commit is contained in:
committed by
intellij-monorepo-bot
parent
d3c53e874a
commit
f612b74235
@@ -7,8 +7,6 @@
|
||||
<extensions defaultExtensionNs="com.intellij">
|
||||
<platform.rpc.backend.remoteApiProvider implementation="com.intellij.terminal.backend.rpc.TerminalRemoteApiProvider"/>
|
||||
|
||||
<applicationService serviceInterface="org.jetbrains.plugins.terminal.fus.BackendLatencyService"
|
||||
serviceImplementation="com.intellij.terminal.backend.fus.BackendLatencyServiceImpl"/>
|
||||
<projectService serviceInterface="com.intellij.terminal.backend.TerminalPortForwardingManager"
|
||||
serviceImplementation="com.intellij.terminal.backend.TerminalNoPortForwardingManager"/>
|
||||
</extensions>
|
||||
|
||||
@@ -9,8 +9,6 @@ import kotlinx.coroutines.channels.ReceiveChannel
|
||||
import kotlinx.coroutines.channels.SendChannel
|
||||
import kotlinx.coroutines.launch
|
||||
import org.jetbrains.plugins.terminal.block.ui.withLock
|
||||
import org.jetbrains.plugins.terminal.fus.BackendLatencyService
|
||||
import org.jetbrains.plugins.terminal.fus.ReworkedTerminalUsageCollector
|
||||
import org.jetbrains.plugins.terminal.util.STOP_EMULATOR_TIMEOUT
|
||||
import org.jetbrains.plugins.terminal.util.waitFor
|
||||
import java.util.concurrent.CancellationException
|
||||
@@ -52,7 +50,6 @@ private fun handleInputEvent(event: TerminalInputEvent, services: JediTermServic
|
||||
|
||||
when (event) {
|
||||
is TerminalWriteBytesEvent -> {
|
||||
BackendLatencyService.getInstance().tryStartBackendTypingActivity(event)
|
||||
terminalStarter.sendBytes(event.bytes, false)
|
||||
}
|
||||
is TerminalResizeEvent -> {
|
||||
|
||||
@@ -6,11 +6,9 @@ import com.intellij.openapi.project.Project
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import com.intellij.terminal.JBTerminalSystemSettingsProviderBase
|
||||
import com.intellij.terminal.TerminalExecutorServiceManagerImpl
|
||||
import com.intellij.terminal.backend.fus.installFusListener
|
||||
import com.intellij.terminal.session.TerminalSession
|
||||
import com.intellij.terminal.session.TerminalSessionTerminatedEvent
|
||||
import com.intellij.util.AwaitCancellationAndInvoke
|
||||
import com.intellij.util.asDisposable
|
||||
import com.intellij.util.awaitCancellationAndInvoke
|
||||
import com.jediterm.core.typeahead.TerminalTypeAheadManager
|
||||
import com.jediterm.core.util.TermSize
|
||||
@@ -54,7 +52,6 @@ internal fun createTerminalSession(
|
||||
coroutineScope: CoroutineScope,
|
||||
): TerminalSession {
|
||||
val observableTtyConnector = ttyConnector as? ObservableTtyConnector ?: ObservableTtyConnector(ttyConnector)
|
||||
installFusListener(observableTtyConnector, parentDisposable = coroutineScope.asDisposable())
|
||||
|
||||
val maxHistoryLinesCount = AdvancedSettings.getInt("terminal.buffer.max.lines.count")
|
||||
val services: JediTermServices = createJediTermServices(observableTtyConnector, initialSize, maxHistoryLinesCount, settings)
|
||||
|
||||
-59
@@ -1,59 +0,0 @@
|
||||
package com.intellij.terminal.backend.fus
|
||||
|
||||
import com.intellij.openapi.Disposable
|
||||
import com.intellij.terminal.backend.ObservableTtyConnector
|
||||
import com.intellij.terminal.backend.TtyConnectorListener
|
||||
import com.intellij.terminal.session.TerminalWriteBytesEvent
|
||||
import fleet.multiplatform.shims.ConcurrentHashMap
|
||||
import org.jetbrains.plugins.terminal.fus.BackendLatencyService
|
||||
import org.jetbrains.plugins.terminal.fus.BackendTypingActivity
|
||||
import org.jetbrains.plugins.terminal.fus.ReworkedTerminalUsageCollector
|
||||
import kotlin.time.TimeSource
|
||||
|
||||
internal class BackendLatencyServiceImpl : BackendLatencyService {
|
||||
override fun tryStartBackendTypingActivity(event: TerminalWriteBytesEvent) {
|
||||
val id = event.id
|
||||
val bytes = event.bytes
|
||||
val activity = BackendTypingActivityImpl(id, bytes)
|
||||
backendTypingActivityByByteArray[bytes] = activity
|
||||
}
|
||||
|
||||
override fun getBackendTypingActivityOrNull(bytes: ByteArray): BackendTypingActivity? {
|
||||
return backendTypingActivityByByteArray[bytes]
|
||||
}
|
||||
}
|
||||
|
||||
internal fun installFusListener(
|
||||
ttyConnector: ObservableTtyConnector,
|
||||
parentDisposable: Disposable,
|
||||
) {
|
||||
ttyConnector.addListener(parentDisposable, object : TtyConnectorListener {
|
||||
override fun bytesWritten(bytes: ByteArray) {
|
||||
val typingActivity = BackendLatencyService.getInstance().getBackendTypingActivityOrNull(bytes) ?: return
|
||||
try {
|
||||
typingActivity.reportDuration()
|
||||
}
|
||||
finally {
|
||||
typingActivity.finishBytesProcessing()
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
private val backendTypingActivityByByteArray = ConcurrentHashMap<ByteArray, BackendTypingActivityImpl>()
|
||||
|
||||
private class BackendTypingActivityImpl(override val id: Int, private val bytes: ByteArray) : BackendTypingActivity {
|
||||
private val start = TimeSource.Monotonic.markNow()
|
||||
|
||||
override fun reportDuration() {
|
||||
val duration = start.elapsedNow()
|
||||
ReworkedTerminalUsageCollector.logBackendLatency(
|
||||
inputEventId = id,
|
||||
duration = duration,
|
||||
)
|
||||
}
|
||||
|
||||
override fun finishBytesProcessing() {
|
||||
backendTypingActivityByByteArray.remove(bytes)
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.terminal.fus
|
||||
|
||||
import com.intellij.openapi.components.service
|
||||
import com.intellij.terminal.session.TerminalWriteBytesEvent
|
||||
import org.jetbrains.annotations.ApiStatus
|
||||
|
||||
@ApiStatus.Internal
|
||||
interface BackendLatencyService {
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun getInstance(): BackendLatencyService = service()
|
||||
}
|
||||
fun tryStartBackendTypingActivity(event: TerminalWriteBytesEvent)
|
||||
fun getBackendTypingActivityOrNull(bytes: ByteArray): BackendTypingActivity?
|
||||
}
|
||||
|
||||
@ApiStatus.Internal
|
||||
interface BackendTypingActivity {
|
||||
val id: Int
|
||||
fun reportDuration()
|
||||
fun finishBytesProcessing()
|
||||
}
|
||||
Reference in New Issue
Block a user