Genshin_Impact_bot
Genshin_Impact_bot copied to clipboard
命令-刷新原神地图,导致Hoshino崩溃
调用命令 刷新原神地图时,报错 Image size (XXX pixels) exceeds limit of 178956970 pixels, could be decompression 加上Image.MAX_IMAGE_PIXELS = None之后,hoshino直接崩溃 推测是新版原神地图过大?
hoshino-env_1 | [2021-09-25 22:09:35,605 nonebot] INFO: Self: 330071, Message 1133240255 from 18673@[群:284****59]: '更新原神地图' hoshino-env_1 | [2021-09-25 22:09:35,606 原神资源查询] INFO: Message 1133240255 triggered up_map_icon by PrefixTrigger. hoshinobot_hoshino-env_1 exited with code 137
git pull到最新的版本
已经pull了。可能是服务器内存不够……?
服务器什么配置的,1G内存的估计跑不动
确实内存太小……(没想到确实是内存问题 在自己电脑上重新生成了一遍地图(最终尺寸6MB)传到服务器上,跳过生成步骤,问题解决。可以close了。 我如果不再调用“刷新原神地图”命令,他应该不会自己去再次尝试生成吧? 辛苦dalao了!
不是的,为了减小贴图的计算量,每次更新资源点列表都会重新下载地图裁切没用的边缘数据保存, 建议还是把服务器升级到2G内存吧
而且你用的是最新的版本吗,最新版本地图裁切玩应该是不到3MB的
服务器是2G内存的 感觉还是哪里不对劲。又用top看了一下。 平时没有内存开销,运行这个命令时 内存消耗会瞬间到达1G然后被kill掉…… 本地生成地图是刚clone的最新版本
原始图像读进来会先裁切一次然后后续的地图生成用的是裁切后的图像,原始图像读进来确实得1G内存占用,裁切后占用内存大概是200多MB,所以就常驻内存了 你不会自己改过代码逻辑吧,实在不行你把插件删了重新安装一下
没改过代码逻辑……
up_map生成的大地图文件,尺寸为16384x16384 但是有内容的范围只有约9000x9000
这个文件现在不会生成了啊,你用的真的是最新版吗..............
新版代码里把保存这个文件的步骤注释掉了。我把它取消了存下来看了一下…… 我再想想是哪一步内存不够。可能在处理比这个大图小的部分时就不够了……
好吧现在彻底改坏了。 新版代码每次启动的时候都会抓16k的原图下来裁切。这时候就直接内存炸了 hoshino都无法启动了 反而是用map_icon.jpg的老版本起码能够正常启动……
我明天再试试吧。
因为新版本的资源列表要和裁切后的地图匹配,所以每次更新都得重下地图, 是日志打出正在更新地图就炸了吗
是的
pillow确定是爆炸了……尝试了一下pyvips,生成裁切后的大地图只花了192MB内存 等会再试试贴图 他并没有直接支持alpha贴图……喷血
换了一个思路。直接预处理所有图片,查询时返回图片即可。 pyvips也暂时用不上了 #56
大佬,我也是1G小服务器,直接首次启动加载地图的时候就被KILL了
请问nonebot2版的可以单独把地图功能关闭吗,或者有其他解决方案