diff --git a/plugins/terminal/backend/resources/intellij.terminal.backend.xml b/plugins/terminal/backend/resources/intellij.terminal.backend.xml
index a8dc10198ac1..2aa17a550144 100644
--- a/plugins/terminal/backend/resources/intellij.terminal.backend.xml
+++ b/plugins/terminal/backend/resources/intellij.terminal.backend.xml
@@ -7,8 +7,6 @@
-
diff --git a/plugins/terminal/backend/src/com/intellij/terminal/backend/BackendTerminalInput.kt b/plugins/terminal/backend/src/com/intellij/terminal/backend/BackendTerminalInput.kt
index b714e8d61922..38f190b89d43 100644
--- a/plugins/terminal/backend/src/com/intellij/terminal/backend/BackendTerminalInput.kt
+++ b/plugins/terminal/backend/src/com/intellij/terminal/backend/BackendTerminalInput.kt
@@ -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 -> {
diff --git a/plugins/terminal/backend/src/com/intellij/terminal/backend/TerminalSessionStart.kt b/plugins/terminal/backend/src/com/intellij/terminal/backend/TerminalSessionStart.kt
index bad030804f24..cdd4622c0698 100644
--- a/plugins/terminal/backend/src/com/intellij/terminal/backend/TerminalSessionStart.kt
+++ b/plugins/terminal/backend/src/com/intellij/terminal/backend/TerminalSessionStart.kt
@@ -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)
diff --git a/plugins/terminal/backend/src/com/intellij/terminal/backend/fus/BackendLatencyServiceImpl.kt b/plugins/terminal/backend/src/com/intellij/terminal/backend/fus/BackendLatencyServiceImpl.kt
deleted file mode 100644
index f1103a8a4b72..000000000000
--- a/plugins/terminal/backend/src/com/intellij/terminal/backend/fus/BackendLatencyServiceImpl.kt
+++ /dev/null
@@ -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()
-
-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)
- }
-}
\ No newline at end of file
diff --git a/plugins/terminal/src/org/jetbrains/plugins/terminal/fus/BackendLatencyService.kt b/plugins/terminal/src/org/jetbrains/plugins/terminal/fus/BackendLatencyService.kt
deleted file mode 100644
index 2114a05fb31d..000000000000
--- a/plugins/terminal/src/org/jetbrains/plugins/terminal/fus/BackendLatencyService.kt
+++ /dev/null
@@ -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()
-}