LMI // Make lmCNS and lmSymbols static to save RAM.

This commit is contained in:
ShikiSuen 2022-06-21 09:26:59 +08:00
parent 3da4395e12
commit 413115cbca
1 changed files with 17 additions and 17 deletions

View File

@ -26,15 +26,6 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
import Foundation import Foundation
//
// LMInstantiator 100MB
private var lmCNS = vChewing.LMCoreNS(
reverse: true, consolidate: false, defaultScore: -11.0, forceDefaultScore: false
)
private var lmSymbols = vChewing.LMCoreNS(
reverse: true, consolidate: false, defaultScore: -13.0, forceDefaultScore: false
)
extension vChewing { extension vChewing {
/// LMInstantiatorLMI /// LMInstantiatorLMI
/// LanguageModel 使 /// LanguageModel 使
@ -79,6 +70,15 @@ extension vChewing {
reverse: true, consolidate: false, defaultScore: -1.0, forceDefaultScore: false reverse: true, consolidate: false, defaultScore: -1.0, forceDefaultScore: false
) )
//
// 100MB
static var lmCNS = vChewing.LMCoreNS(
reverse: true, consolidate: false, defaultScore: -11.0, forceDefaultScore: false
)
static var lmSymbols = vChewing.LMCoreNS(
reverse: true, consolidate: false, defaultScore: -13.0, forceDefaultScore: false
)
// 使 // 使
// 使使 // 使使
var lmUserPhrases = LMCoreEX( var lmUserPhrases = LMCoreEX(
@ -108,11 +108,11 @@ extension vChewing {
} }
} }
public var isCNSDataLoaded: Bool { lmCNS.isLoaded() } public var isCNSDataLoaded: Bool { vChewing.LMInstantiator.lmCNS.isLoaded() }
public func loadCNSData(path: String) { public func loadCNSData(path: String) {
if FileManager.default.isReadableFile(atPath: path) { if FileManager.default.isReadableFile(atPath: path) {
lmCNS.open(path) vChewing.LMInstantiator.lmCNS.open(path)
IME.prtDebugIntel("lmCNS: \(lmCNS.count) entries of data loaded from: \(path)") IME.prtDebugIntel("lmCNS: \(vChewing.LMInstantiator.lmCNS.count) entries of data loaded from: \(path)")
} else { } else {
IME.prtDebugIntel("lmCNS: File access failure: \(path)") IME.prtDebugIntel("lmCNS: File access failure: \(path)")
} }
@ -128,11 +128,11 @@ extension vChewing {
} }
} }
public var isSymbolDataLoaded: Bool { lmSymbols.isLoaded() } public var isSymbolDataLoaded: Bool { vChewing.LMInstantiator.lmSymbols.isLoaded() }
public func loadSymbolData(path: String) { public func loadSymbolData(path: String) {
if FileManager.default.isReadableFile(atPath: path) { if FileManager.default.isReadableFile(atPath: path) {
lmSymbols.open(path) vChewing.LMInstantiator.lmSymbols.open(path)
IME.prtDebugIntel("lmSymbol: \(lmSymbols.count) entries of data loaded from: \(path)") IME.prtDebugIntel("lmSymbol: \(vChewing.LMInstantiator.lmSymbols.count) entries of data loaded from: \(path)")
} else { } else {
IME.prtDebugIntel("lmSymbols: File access failure: \(path)") IME.prtDebugIntel("lmSymbols: File access failure: \(path)")
} }
@ -216,12 +216,12 @@ extension vChewing {
rawAllUnigrams += lmCore.unigramsFor(key: key) rawAllUnigrams += lmCore.unigramsFor(key: key)
if isCNSEnabled { if isCNSEnabled {
rawAllUnigrams += lmCNS.unigramsFor(key: key) rawAllUnigrams += vChewing.LMInstantiator.lmCNS.unigramsFor(key: key)
} }
if isSymbolEnabled { if isSymbolEnabled {
rawAllUnigrams += lmUserSymbols.unigramsFor(key: key) rawAllUnigrams += lmUserSymbols.unigramsFor(key: key)
rawAllUnigrams += lmSymbols.unigramsFor(key: key) rawAllUnigrams += vChewing.LMInstantiator.lmSymbols.unigramsFor(key: key)
} }
// Swift 使 NSOrderedSet // Swift 使 NSOrderedSet