Optimize screen streaming performance and clean up debug logs

- Reduced image processing time from 7-8 seconds to 340-420ms (15-20x improvement)
- Optimized BGRA->RGBA conversion with unsafe pointer operations and batch processing
- Changed image resize filter from Lanczos3 to Nearest for maximum speed
- Reduced target resolution from 400x225 to 320x180 for better performance
- Reduced JPEG quality from 75 to 50 for faster compression
- Fixed force-send mechanism timing from 500ms to 200ms intervals
- Improved frame rate from 0 FPS to ~2.5 FPS
- Cleaned up extensive debug logging and performance instrumentation
- Removed unused imports and variables to reduce compiler warnings
This commit is contained in:
2025-07-04 14:45:50 +08:00
parent c8db28168c
commit 1944c88b55
32 changed files with 1075 additions and 19 deletions

84
src-tauri/Cargo.lock generated
View File

@ -730,6 +730,12 @@ dependencies = [
"syn 2.0.104",
]
[[package]]
name = "data-encoding"
version = "2.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476"
[[package]]
name = "ddc"
version = "0.2.2"
@ -1645,6 +1651,17 @@ dependencies = [
"match_token",
]
[[package]]
name = "http"
version = "0.2.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
dependencies = [
"bytes",
"fnv",
"itoa",
]
[[package]]
name = "http"
version = "1.3.1"
@ -1663,7 +1680,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184"
dependencies = [
"bytes",
"http",
"http 1.3.1",
]
[[package]]
@ -1674,7 +1691,7 @@ checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a"
dependencies = [
"bytes",
"futures-core",
"http",
"http 1.3.1",
"http-body",
"pin-project-lite",
]
@ -1700,7 +1717,7 @@ dependencies = [
"bytes",
"futures-channel",
"futures-util",
"http",
"http 1.3.1",
"http-body",
"httparse",
"itoa",
@ -1721,7 +1738,7 @@ dependencies = [
"futures-channel",
"futures-core",
"futures-util",
"http",
"http 1.3.1",
"http-body",
"hyper",
"ipnet",
@ -3452,7 +3469,7 @@ dependencies = [
"bytes",
"futures-core",
"futures-util",
"http",
"http 1.3.1",
"http-body",
"http-body-util",
"hyper",
@ -3777,6 +3794,17 @@ dependencies = [
"stable_deref_trait",
]
[[package]]
name = "sha1"
version = "0.10.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
dependencies = [
"cfg-if",
"cpufeatures",
"digest",
]
[[package]]
name = "sha2"
version = "0.10.9"
@ -4116,7 +4144,7 @@ dependencies = [
"glob",
"gtk",
"heck 0.5.0",
"http",
"http 1.3.1",
"jni",
"libc",
"log",
@ -4261,7 +4289,7 @@ dependencies = [
"cookie",
"dpi",
"gtk",
"http",
"http 1.3.1",
"jni",
"objc2 0.6.1",
"objc2-ui-kit",
@ -4281,7 +4309,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "902b5aa9035e16f342eb64f8bf06ccdc2808e411a2525ed1d07672fa4e780bad"
dependencies = [
"gtk",
"http",
"http 1.3.1",
"jni",
"log",
"objc2 0.6.1",
@ -4314,7 +4342,7 @@ dependencies = [
"dunce",
"glob",
"html5ever",
"http",
"http 1.3.1",
"infer",
"json-patch",
"kuchikiki",
@ -4384,6 +4412,7 @@ dependencies = [
"display-info",
"env_logger",
"futures",
"futures-util",
"hex",
"image",
"itertools 0.10.5",
@ -4395,12 +4424,14 @@ dependencies = [
"screen-capture-kit",
"serde",
"serde_json",
"sha1",
"tauri",
"tauri-build",
"tauri-plugin-shell",
"time",
"tokio",
"tokio-stream",
"tokio-tungstenite",
"toml 0.7.8",
"url-build-parse",
]
@ -4537,6 +4568,18 @@ dependencies = [
"tokio",
]
[[package]]
name = "tokio-tungstenite"
version = "0.20.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c"
dependencies = [
"futures-util",
"log",
"tokio",
"tungstenite",
]
[[package]]
name = "tokio-util"
version = "0.7.15"
@ -4651,7 +4694,7 @@ dependencies = [
"bitflags 2.9.1",
"bytes",
"futures-util",
"http",
"http 1.3.1",
"http-body",
"iri-string",
"pin-project-lite",
@ -4719,6 +4762,25 @@ version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
[[package]]
name = "tungstenite"
version = "0.20.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9"
dependencies = [
"byteorder",
"bytes",
"data-encoding",
"http 0.2.12",
"httparse",
"log",
"rand 0.8.5",
"sha1",
"thiserror 1.0.69",
"url",
"utf-8",
]
[[package]]
name = "typeid"
version = "1.0.3"
@ -5647,7 +5709,7 @@ dependencies = [
"gdkx11",
"gtk",
"html5ever",
"http",
"http 1.3.1",
"javascriptcore-rs",
"jni",
"kuchikiki",