From a1a1c1ab06b61350c05f256d44d52f4ec92109a2 Mon Sep 17 00:00:00 2001 From: mii443 Date: Tue, 6 May 2025 22:43:35 +0900 Subject: [PATCH] performance improvement --- src-tauri/src/azookey/client.rs | 14 +------------- src-tauri/src/azookey/mod.rs | 2 +- src-tauri/src/azookey/server.rs | 25 ++++++++++++++++++------- src-tauri/src/main.rs | 5 ++--- 4 files changed, 22 insertions(+), 24 deletions(-) diff --git a/src-tauri/src/azookey/client.rs b/src-tauri/src/azookey/client.rs index fa963e9..e561ea4 100644 --- a/src-tauri/src/azookey/client.rs +++ b/src-tauri/src/azookey/client.rs @@ -1,12 +1,8 @@ -use std::path::PathBuf; - use azookey_binding::Candidate; use ipc_channel::ipc::{IpcReceiver, IpcSender}; use tracing::info; -use crate::SELF_EXE_PATH; - use super::IpcMessage; pub struct AzookeyConversionClient { @@ -41,16 +37,8 @@ impl AzookeyConversionClient { pub fn request_candidates(&mut self, context: &str) -> Vec { info!("Requesting candidates for context: {}", context); - let self_exe_path = PathBuf::from(SELF_EXE_PATH.read().unwrap().as_str()); - let weight_path = self_exe_path - .parent() - .unwrap() - .join("ggml-model-Q5_K_M.gguf"); self.sender - .send(IpcMessage::RequestCandidates( - context.to_string(), - weight_path.to_string_lossy().to_string(), - )) + .send(IpcMessage::RequestCandidates(context.to_string())) .unwrap(); loop { match self.receiver.recv() { diff --git a/src-tauri/src/azookey/mod.rs b/src-tauri/src/azookey/mod.rs index e15ba68..c04c6be 100644 --- a/src-tauri/src/azookey/mod.rs +++ b/src-tauri/src/azookey/mod.rs @@ -12,7 +12,7 @@ pub enum IpcMessage { Sender(IpcSender), ResetComposingText, InsertAtCursorPosition(String), - RequestCandidates(String, String), + RequestCandidates(String), Candidates(Vec), End, } diff --git a/src-tauri/src/azookey/server.rs b/src-tauri/src/azookey/server.rs index 0a5effc..fcf5867 100644 --- a/src-tauri/src/azookey/server.rs +++ b/src-tauri/src/azookey/server.rs @@ -1,10 +1,12 @@ -use std::{collections::HashMap, sync::LazyLock}; +use std::{collections::HashMap, path::PathBuf, sync::LazyLock}; use azookey_binding::{Candidate, ComposingText, KanaKanjiConverter}; use ipc_channel::ipc::IpcOneShotServer; use itertools::Itertools; use platform_dirs::AppDirs; +use crate::SELF_EXE_PATH; + use super::IpcMessage; static SIGNMAP: LazyLock> = LazyLock::new(|| { @@ -116,6 +118,20 @@ impl AzookeyConversionServer { let (a, _) = self.server.accept().unwrap(); let mut sender = None; + let app_dirs = AppDirs::new(Some("vrclipboard-ime"), false).unwrap(); + let path = app_dirs + .config_dir + .join("AzooKeyDictionary\\AzooKeyDictionary\\Dictionary"); + let extract_path = path.to_str().unwrap(); + + let self_exe_path = PathBuf::from(SELF_EXE_PATH.read().unwrap().as_str()); + let weight_path = self_exe_path + .parent() + .unwrap() + .join("ggml-model-Q5_K_M.gguf") + .to_string_lossy() + .to_string(); + loop { match a.recv() { Ok(IpcMessage::Sender(s)) => { @@ -128,12 +144,7 @@ impl AzookeyConversionServer { let text = Self::pre_process_text(&text); self.composing_text.insert_at_cursor_position(&text); } - Ok(IpcMessage::RequestCandidates(context, weight_path)) => { - let app_dirs = AppDirs::new(Some("vrclipboard-ime"), false).unwrap(); - let path = app_dirs - .config_dir - .join("AzooKeyDictionary\\AzooKeyDictionary\\Dictionary"); - let extract_path = path.to_str().unwrap(); + Ok(IpcMessage::RequestCandidates(context)) => { let candidates = self.azookey_converter.request_candidates( &self.composing_text, &context, diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 2a3aa9c..5860c42 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -186,15 +186,14 @@ pub static SELF_EXE_PATH: Lazy> = Lazy::new(|| RwLock::new(String async fn main() { let args = std::env::args().collect::>(); + SELF_EXE_PATH.write().unwrap().push_str(&args[0]); + if args.contains(&"server".to_string()) { let server = AzookeyConversionServer::new(); let server_name = &server.server_name; println!("${}$", server_name); server.server_loop(); return; - } else { - println!("Args: {:?}", args); - SELF_EXE_PATH.write().unwrap().push_str(&args[0]); } let server_name = start_server_process();