top观察cortex_A7_neon的VSZ为768M
Fisherworks opened this issue · 3 comments
Fisherworks commented
刷机Netgear EX6200v2到OpenWRT 18.06.2
整机内存256M,闪存可用于jffs的空间8M
使用您编译的 cortex_A7_neon,ver 0.31.2,再加上您另一个工程的luci界面,一次配置成功
唯一的疑问如下
Mem: 60252K used, 190640K free, 580K shrd, 3272K buff, 14096K cached
CPU: 1% usr 1% sys 0% nic 96% idle 0% io 0% irq 0% sirq
Load average: 0.03 0.10 0.09 2/90 3835
PID PPID USER STAT VSZ %VSZ %CPU COMMAND
3835 3453 py27 R 1072 0% 3% top
2225 2 root IW 0 0% 1% [kworker/1:0]
1768 1 nobody S 786m 320% 0% /usr/bin/frpc -c /var/etc/frpc/frpc.main.ini
1320 1 root S 3168 1% 0% /usr/bin/monit -I
2728 1 root S 1616 1% 0% /usr/sbin/hostapd -s -P /var/run/wifi-phy1.pid -B /var/run/
2400 1 root S 1616 1% 0% /usr/sbin/hostapd -s -P /var/run/wifi-phy0.pid -B /var/run/
649 1 root S 1532 1% 0% /sbin/netifd
513 1 root S 1396 1% 0% /sbin/rpcd -s /var/run/ubus.sock -t 30
1 0 root S 1340 1% 0% /sbin/procd
687 1 root S 1228 0% 0% /usr/sbin/odhcpd
top看运行情况,大多数进程的VSZ(虚拟内存分配)只有1.x K左右
而frpc达到了768M,也就是说极端情况下(比如代码bug造成内存泄露),所有物理内存全给了也不够用
是否某个栈的预分配空间就不小,加上多个线程乘起来就分了786M(虽然知道正常情况下不会吃这么多)
这个数字如果降到20~30M,也就是说FRPC在极端状态下吃掉30M内存,听起来合理一些吧?
Fisherworks commented
我参考了这篇做嵌入式的文章,写到了降低VSZ的问题
https://blog.csdn.net/tangdichao/article/details/52103656
kuoruan commented
这个问题可以去官方开个 issue 问问
Fisherworks commented
我也考虑是不是应该去官方开issue
可是琢磨下的不是官方的release文件,那玩意的尺寸好像根本装不进路由器,更别提跑起来了……