Closed EdwardElric01 closed 5 years ago
如果是 leveldb 的問題就比較麻煩了。從線索上看還真有可能。
我去看了一下 google/leveldb
,他的 windows
分支好像2016年以來都沒更新。
如果總出現這個問題,可能得暫時改用文本格式的用戶詞典。
我这儿只在两年前比较密集地出现过两三次,后来都很正常。感觉这个问题出现的概率很小。不晓得其他人是什么情况。
這個問題我昨天遇到了,Win10 0.12 版的用戶資料夾luna_pinyin.userdb 裡面突然暴增到12G,產生非常多sst檔案,把系統磁碟灌滿了。解安裝 小狼毫,再刪除目錄,重新安裝 0.13 版,目前還在觀察。
找到了上游的BUG: https://github.com/google/leveldb/issues/498
研究一下能否通过升级到最新版leveldb解决问题,还要保证用户词典里的.sst文件自动升级到新的格式。
相关事项:thirdparty改用submodule组织是否更方便升级?可能得修改自动构建脚本,以及下游项目的构建脚本。
👍! Great! Good to know this bug was identified! Looking forward to the fix!
@Prcuvu 講過leveldb最新代碼要用VS2017編譯。 藉此機會把第三方庫整理、更新一遍,改爲submodule,根據情況引用上游代碼庫或建立鏡像、暫存我方未合併到上游的修改。印象裏opencc可能需要一些改動才能用VS2017編譯。 最後修改librime的appveyor工程配置,切換到新的工具鏈。 工作不少啊。
不知道,Trime项目里面是不是已经做了一些这样的工作,是否可以复用部分构建脚本。 里面已经是submodule了,并且很多已经是最新代码了。 https://github.com/osfans/trime/tree/develop/app/src/main/jni
我试着使用最新的 leveldb 编译了 librime: rime-dll-leveldb-fix.zip 请遵循以下步骤替换 librime,并在使用前重新生成用户文件夹中的二进制文件:
build
文件夹及其中所有内容rime-dll-leveldb-fix.zip
压缩包中的 rime.dll
解压,替换程序文件夹中的同名文件WeaselDeployer.exe
运行结束@Prcuvu 講過leveldb最新代碼要用VS2017編譯。 藉此機會把第三方庫整理、更新一遍,改爲submodule,根據情況引用上游代碼庫或建立鏡像、暫存我方未合併到上游的修改。印象裏opencc可能需要一些改動才能用VS2017編譯。 最後修改librime的appveyor工程配置,切換到新的工具鏈。 工作不少啊。
貌似是我这边的 Visual C++ Build Tools 出了问题,AppVeyor 上的 VS2015 是可以编译 leveldb 的。转换 submodule 的工作会持续进行,依然会在最后迁移到 VS2017。
研究一下能否通过升级到最新版leveldb解决问题,还要保证用户词典里的.sst文件自动升级到新的格式。
根据我的测试,最新版 leveldb 可以自动读取已有的 .sst
文件中的内容并写入新生成的 .ldb
文件中。
win 10系统, 具体触发原因不清楚,但是五笔模式会的userdb文件夹中产生很多.sst文件,导致磁盘爆满