给sunpinyin加速

Posted BBBob

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了给sunpinyin加速相关的知识,希望对你有一定的参考价值。

因为sunpinyin词库一大就会卡,因此需要自己添加一个脚本给sunpinyin加速。

加速的原理就是把词库添加到内存,现在内存都这么大,根本不在乎这么几兆,当然输入体验更重要啦~

首先先建一个脚本实现把词库放到内存中的功能,脚本就取名为sunpinyin_speed_up吧。

技术分享
#!/bin/sh

# Capture the exit signal, make sure it is the FIRST uncommented line.
trap "do_exit" SIGHUP SIGINT SIGQUIT SIGTERM

SUN_DIR="/home/xuzhenan/.sunpinyin"
SHM_USERDICT="/dev/shm/sunpinyin_userdict.sh0"

# Backup the userdict and restore all changes made by this script on exit.
do_exit() {
  cp -f "${SHM_USERDICT}" "${SUN_DIR}/userdict.real"
  rm -f "${SHM_USERDICT}"
  mv -f "${SUN_DIR}/userdict.real" "${SUN_DIR}/userdict"
  #notify-send Pinyin dict done
  exit 0
}

# Work around for abnormal quit.
if [ -e "${SUN_DIR}/userdict.real" ]
then
  rm -f "${SHM_USERDICT}"
  mv -f "${SUN_DIR}/userdict.real" "${SUN_DIR}/userdict"
fi

# Rename the real userdict, copy it to RAM and make a symblic link back.
# From now on the modification and query on userdict takes place in RAM.
mv -f "${SUN_DIR}/userdict" "${SUN_DIR}/userdict.real"
cp -f "${SUN_DIR}/userdict.real" "${SHM_USERDICT}"
ln -sf "${SHM_USERDICT}" "${SUN_DIR}/userdict"

# Automatically backup the userdict, make sure not losing the modification.
p_count=0
while [ true ]
do
  p_count=$(($p_count+1))
  sleep 1800
  
  if [ $p_count == 4 ]
  then
     p_count=0
     cp -f "${SHM_USERDICT}" "${SUN_DIR}/userdict.real"
  fi
  
  p_size_shm=$(ls -l "${SHM_USERDICT}" | awk {print $5})
  p_size_real_t=$(ls -l "${SUN_DIR}/userdict.real" | awk {print $5})
  p_size_real=$(($p_size_real_t+512))
  
  if [ $p_size_shm -ge $p_size_real ]
  then
     cp -f "${SHM_USERDICT}" "${SUN_DIR}/userdict.real"
  fi
done
sunpinyin_speed_up

 

之后将其设置为开机启动就好了。

因为我们用systemd的方式,所以需要再写一个开机启动的服务放到/etc/systemd/system/中。

技术分享
[Unit]
Description=Sunpinyin dict cache

[Service]
ExecStart=/home/xuzhenan/mysh/sunpinyin_speed_up

[Install]
WantedBy=multi-user.target 
sunpinyin_speed_up.service

之后运行

sudo systemctl enable sunpinyin_speed_up.service 

将其设置为开机自启动就好了。

以上是关于给sunpinyin加速的主要内容,如果未能解决你的问题,请参考以下文章

ubuntu16.04 安装ibus-sunpinyin

创建一个叫做机动车的类: 属性:车牌号(String),车速(int),载重量(double) 功能:加速(车速自增)减速(车速自减)修改车牌号,查询车的载重量。 编写两个构造方法:一个没有(代码片段

11.按要求编写Java应用程序。 创建一个叫做机动车的类: 属性:车牌号(String),车速(int),载重量(double) 功能:加速(车速自增)减速(车速自减)修改车牌号,查询车的(代码片段

按要求编写Java应用程序。 创建一个叫做机动车的类: 属性:车牌号(String),车速(int),载重量(double) 功能:加速(车速自增)减速(车速自减)修改车牌号,查询车的载重量(代码片段

ubuntu下如何安装fcitx-configtool和fcitx-sunpinyin?

Python - 循环加速 - 大型数据集