# 清除字符串内存缓存
function ReleaseString takes string str returns nothing
function ReleaseAllString takes nothing returns nothing
function GetCacheStringCount takes nothing returns integer
function DumpAllString takes string filename returns integer
1
2
3
4
5
6
2
3
4
5
6
# 描述
清除魔兽 jass 虚拟机里缓存的字符串 解决游戏后期字符串太多导致游戏卡顿的问题
ReleaseAllString 做了特殊处理 不处理 jass 全局变量 局部变量 哈希表里的字符串 能安全使用
ReleaseString 没判定 字符串是否被引用, 需要小心使用。
DumpAllString 将现存的字符串 输出到文件里
顺便修复了 对玩家发送消息太多 导致卡顿的问题
# 例子
call ReleaseString("xxx.mdx")
1
local japi = require 'jass.japi'
if japi.GetCacheStringCount() > 10000 then
japi.ReleaseAllString()
japi.DumpAllString("string.txt") --会在魔兽目录下生成当前的字符串
end
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8