Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

10.13下开了MacGesture过一会Safari就会很卡 #69

Open
hcpub opened this issue Sep 29, 2017 · 59 comments
Open

10.13下开了MacGesture过一会Safari就会很卡 #69

hcpub opened this issue Sep 29, 2017 · 59 comments

Comments

@hcpub
Copy link

hcpub commented Sep 29, 2017

关掉就好了,不知道有没有必然联系。
在浏览威锋的时候特别明显,CnBeta似乎也这样

@jiegec
Copy link
Member

jiegec commented Sep 29, 2017

我还没有升级到10.13 。。

@seagle0128
Copy link

资源占用太大。你可以观察下,使用一段时间内存就飙升。

@jiegec
Copy link
Member

jiegec commented Oct 1, 2017

这个也有一些人反映,但是在我这一直没有这个问题啊。

@seagle0128
Copy link

seagle0128 commented Oct 2, 2017

今天的截图,macOS 10.12.6,不一会占用就到了快600M,还没怎么用呢。
测试发现,每次执行完手势,内存都会增长并且不会释放。

screen shot 2017-10-02 at 9 49 25 pm

@jiegec
Copy link
Member

jiegec commented Oct 3, 2017

可是。。你那能出现可是我拿不到泄露的是啥对象啊。。

@seagle0128
Copy link

@jiegec 现在已经超过1G了,然后才强制回收内存。目前内存正常,占用100M左右,但又会开始慢慢上升,感觉是内存管理有问题。每次hook鼠标操作之后应该即使清理内存。有办法查询泄漏对象吗?可以告知方法和步骤。谢谢!

@ds462716
Copy link

image
在桌面上画几个圈就增加几十兆,多画几次就到400+M了

@vhvg
Copy link

vhvg commented Oct 25, 2017

在10.13下出现同样的问题,且观察发现,WindowServer 进程内存占用同时增长

@jiegec
Copy link
Member

jiegec commented Oct 26, 2017

emmmmmmm无法重现,我需要有一个10.13下的开发者

@seagle0128
Copy link

升级到10.13,也有同样的问题。目前没有发现规律,有时只占用几十兆,有时占用1G。

@ds462716
Copy link

image更新了 新版本之后用不了几次就这样了
添加一个新的规则之后 设置的 划线颜色和其他设置都重置了

@fanqi1119
Copy link

我的mac gesture 也出现同样问题,在mac high Sierra系统下Mac gesture使用一段时间后内存直接飙升到1.2G,这时系统开始变卡,左右切换全屏页面卡顿严重,手动释放内存无法解决问题,只能退出Mac gesture系统才不卡

@fanqi1119
Copy link

1509586109213

@jiegec
Copy link
Member

jiegec commented Nov 2, 2017

此问题已知,但不知道怎么解决。大家有办法的话欢迎PR

@seagle0128
Copy link

seagle0128 commented Nov 2, 2017

@jiegec 能把你的发现详细描述下吗? 其他高人也好下手

@jiegec
Copy link
Member

jiegec commented Nov 2, 2017

我啥也没发现啊,我的电脑都不会出现这个

@palxex
Copy link
Contributor

palxex commented Nov 9, 2017

中午才发现最近电脑时不时过慢是macgesture的内存占用导致的。于是试图分析,结果自己编译了一个以后(完全没动代码)发现问题完全没了,不清楚是最近的提交解决了问题还是新编译器/运行时的功劳。官方版2.2.3的内存很快就能上1G,自编版三个多小时了还是44M。
编译环境:xcode 9.1,osx 10.13.1。git commit ac2b4dc
顺便发下当时观察官方版内存涨时的几个结果:在macgesture不生效的进程,怎么划都不涨。在生效的进程(过滤器里有,比如chrome),开不开手势轨迹预览/说明,都涨,幅度也一样,说明问题不是在显示部分;右击划动开始就涨,不需要松开也会。

@jiegec
Copy link
Member

jiegec commented Nov 9, 2017

@palxex 可以试试tag 2.2.3的版本会不会内存泄露吗

@seagle0128
Copy link

seagle0128 commented Nov 9, 2017

@palxex 你的发现已经很能说明问题了。我看到这个提交跟内存有关efd0542 。所以也许与编译器无关。看来我也要自己编一个用了。

@jiegec 能测试下发布个新版本么?

@palxex
Copy link
Contributor

palxex commented Nov 9, 2017

@jiegec 这两个(tag 2.2.3和HEAD)表现接近。另外仔细测了下,下午我给的结论有问题。这两个版本还是随着识别的手势数量(不管是否实际识别到,只要有识别产生)内存不断上涨(不确定是不是泄漏——Instruments里完全找不到memory leak),但上涨幅度比起官方版低——官方版一个手势最低5MB,这两个版本则十几个未必有1MB。从Instruments看,每次手势识别后内存上涨的主要因素是-[NSPredicate evaluateWithObject:],每个调用会产生一个无法释放的3kb malloc,而根据代码这个是随着用户配置的app数、手势数成二次项上涨的,而且显然没法简单去掉,更关键的是看起来MacGesture对其的使用方法完全符合ARC规范。搞不好这是个系统级别的bug。

@jiegec
Copy link
Member

jiegec commented Nov 9, 2017

谢谢。。。这就很难受了啊。。。

@palxex
Copy link
Contributor

palxex commented Nov 9, 2017

@jiegec 暂时来说自己编译的还能用。只要短期内不涨太高,貌似长期下来(以分钟计)系统会回收那部分内存的,只是没有那么快。估计xcode9的clang做的就是这个优化。测时都是飞快的刷,官方版很快就刷到内存爆满了,估计可能是回收来不及。

@seagle0128
Copy link

seagle0128 commented Nov 9, 2017

这样看来就肯定是内存泄漏了呀,不知道该怎么fix。
@palxex 能看到leak处的堆栈吗?放出来让大家看看,也许有高人能解决。

@palxex
Copy link
Contributor

palxex commented Nov 9, 2017

@seagle0128 不太清楚这能不能归类为泄漏,这种地方按objc的规范应该是runtime自动回收的。。。而且Instruments一直表示Leaks Checks OK,只是我观察到随着多次刷过这部分是上升速度最快的。
2017-11-09 10 13 55
刚刚回到instruments,发现这部分完全消失了,说明系统的确回收了这部分内存,但活动监视器里macgesture的内存占用量却并没有减少。这可能说明回收的内存并没有释放给系统?具体就需要写过malloc库的来解释了。

@jiaokai
Copy link

jiaokai commented Nov 16, 2017

事实证明自己编译一下确实管事~~~

@fanqi1119
Copy link

请问怎么编译?有大神可以讲解一下吗?谢谢!

@hcpub
Copy link
Author

hcpub commented Nov 17, 2017 via email

@jiegec
Copy link
Member

jiegec commented Nov 17, 2017

懂怎么编译的早就编译出来了,不懂编译的想编译需要花很久时间学习...

@jiegec
Copy link
Member

jiegec commented Nov 17, 2017

clone一个CocoaPods的Repo下来就要花很久很久(吐操一波)

@fanqi1119
Copy link

原先在El captain下使用还没事,用的很开心,但自从升级了high Sierra系统好像就出现了这个问题,是不是系统的原因?

@jiegec
Copy link
Member

jiegec commented Nov 17, 2017

我也没有Developer账户.所以应该是没问题的

@jiegec
Copy link
Member

jiegec commented Nov 17, 2017

这个现象肯定和High Sierra有关,但是不知道哪里有关,为什么有关

@fanqi1119
Copy link

@jiaokai 谢谢!安是安上了,可是一使用就闪退了。。

@seagle0128
Copy link

@jiaokai 同样,一用就闪退了

@lunacory
Copy link

期待更新啊~~ 缺了这个小软件,上网都不舒服了😭

@seagle0128
Copy link

seagle0128 commented Nov 20, 2017

由于Firefox57废弃了FireGestures,最新的扩展在Linux/macOS上无法使用右键,不得已用MacGesture代替。用一会儿也是卡得不行,只好关了,郁闷啊!

@hcpub
Copy link
Author

hcpub commented Nov 20, 2017

@jiaokai 用了你编译的版本,很不错。用了二小时,内存占用一直保持在20M以下。

@seagle0128
Copy link

有开发文档吗?我自己build,但一直报错,找不到一些lib。 pod install又没有任何error

@zap0xfce2
Copy link

bildschirmfoto 2017-11-28 um 12 05 06

Hey, i don't speak your language but it seems MacGesture eats up my memory to. Using 10.13.1 here. Are there any solutions?

@jiegec
Copy link
Member

jiegec commented Nov 28, 2017

@zap0xfce2 Yep this phenomenon is observed in many machines with macOS 10.13. Most conversations up here are about this too. Yet we haven't figured out a solution while some reported that if they compiled MacGesture on their macOS 10.13 system, the memory leak does not appear, which is not useful for users who do not have the environment for building MacGesture.

@byrain
Copy link

byrain commented Nov 29, 2017

今天刚发现这个amazing的软件, 非常感谢开发者!

同样10.13.1, 内存占用率没几分钟就上G了。

还有个点儿说下,在创建了规则后,修改手势或者说明的时候,如果双击,条目就会变成灰色。 只有单击后,再次单击,才可以进入编辑状态。

qq20171129-185902 2x

@jiegec
Copy link
Member

jiegec commented Nov 29, 2017

@byrain 这个就是enable/disable rule的功能。然而苹果的双击检测做得不咋地,所以。。。体验很奇怪。

@xphwv
Copy link

xphwv commented Nov 30, 2017

升级到10.13,也有同样的问题。有时候卡的只能强制关机

@jiegec
Copy link
Member

jiegec commented Nov 30, 2017

知道拉知道拉,不用说了,我觉得我应该lock这个issue了

@skynet0000
Copy link

自从10.13之后经常卡,每次遇到卡的时候,只要有耐性尝试退出重新打开macgesture可以解决,不需要强制关机。

@establown
Copy link

我也有同样的问题。但老版本(2.2.1)可以正常使用。现在一直在用老版本。

@fanqi1119
Copy link

@establown 哇,你真是我的救星啊,果然用2.2.1就很好,内存一直保持在100M左右!!太棒了,以后又可以用MacGestures了~

@skynet0000
Copy link

我也在尝试2.2.1,试了大半天暂时没问题,内存也跑到1G+了,不过有时候会自己降下来,暂时没卡过,感谢@establown 分享。

@YoungIOS
Copy link

暂时放弃了,用xgestures了. xgestures内存一直稳定在15m以内,唯一缺点就是Mac版chrome下手势无效,用chrome时只好在chrome内再装个手势扩展。

@intret
Copy link

intret commented Dec 20, 2017

感谢 @establown ,2.2.1 版本简直就是就是沮丧的救星,以为不能好好耍手势了,曾经想放弃这个软件了,今天突然想起来看看 issue ,惊喜啊。

wx20171220-140319 2x

@xinshangshangxin
Copy link

xinshangshangxin commented Dec 24, 2017

2.2.3版本 只要一直划, 不管程序数量, 内存就会超过1G
2.2.1版本, 只要在2个程序中切换, 就会恢复到初始内存
比如在chrome中使用手势后, 内存涨到了600M, 去其他应用程序使用后, 就会回落到60M

gif图片, 没有https, 请点击查看: 操作详情

希望有所帮助

@zeroleo12345
Copy link

@jiaokai 求大哥再发一次编译好的, 网盘失效了

@Char-CN
Copy link

Char-CN commented Feb 24, 2018

image

@jiegec 我发现如果一直点右键,可以使内存飙升,会不会是这里的原因?

@jiegec
Copy link
Member

jiegec commented Feb 24, 2018

不明原因,未能解决。

@Char-CN
Copy link

Char-CN commented Feb 24, 2018

但是2.2.1版本确实没问题。。。是不是该考虑回溯到2.2.1啦。。。

@jiegec
Copy link
Member

jiegec commented Jan 10, 2019

在 Mojave 下还有这个问题吗?

@establown
Copy link

在 Mojave 下还有这个问题吗?

早就不用这个东西了,不清楚

@s0nny7
Copy link

s0nny7 commented Sep 27, 2019

问题在 mojave 下依然存在,集显问题似乎比较严重,同是 Mojave,我用有独立显卡的笔记本就没遇到过这个问题,在 iMac 垃圾集显下用一段时间就卡了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests