33 lines
1.5 KiB
Markdown
33 lines
1.5 KiB
Markdown
|
### node 开箱器内存泄漏修复
|
|||
|
|
|||
|
首先,把这个目录里的那个 opener.js 下下来,存到 node 开箱器的文件夹里。
|
|||
|
|
|||
|
opener.js 的效果是 筛选 2% cqd 39 以上的号,你可以在代码里修改精度、阈值、甚至是靶子,来适配你自己的需求。
|
|||
|
|
|||
|
然后在开箱器目录里新建一个 ps1 脚本(比如叫做 `start.ps1`),粘贴以下内容:
|
|||
|
|
|||
|
```powershell
|
|||
|
[string]$filein = Read-Host "Input file name"
|
|||
|
if ( Test-Path -Path $filein -PathType Leaf ) {
|
|||
|
[string]$fileout = Read-Host "Output file name"
|
|||
|
$msr = Get-Content $filein | Measure-Object -Line
|
|||
|
[int]$lim = $msr.Lines + 25
|
|||
|
[int]$cur = 1
|
|||
|
while ( $cur -lt $lim ) {
|
|||
|
./node.exe opener.js $filein $cur 20 $fileout
|
|||
|
$cur += 20
|
|||
|
}
|
|||
|
Write-Host "Done! Exiting..."
|
|||
|
$null = [System.Console]::Readkey()
|
|||
|
} else {
|
|||
|
Write-Host "No such file! Exiting..."
|
|||
|
$null = [System.Console]::Readkey()
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
这个脚本的作用是每开 20 个号重启一次开箱器,开完为止。把总行数 +25 是为了留一定的容错,(其实没什么必要,但是有一点心理安慰的作用)。
|
|||
|
|
|||
|
每次开的号数也可以自己改。频繁的重启可以减少内存占用(实测 20 个 2% cqd 大约占用 150MB RAM),但由于开箱器每次重启都要从头重新读一遍输入文件,过小的 batch size 会影响重启速度,请自己权衡。
|
|||
|
|
|||
|
脚本保存完之后用 powershell 运行(一般是直接双击,不行的话自行搜索解决办法),然后按提示使用即可。可以多开。
|