shadowsocks / shadowsocks-chromeapp

Chrome client for shadowsocks
696 stars 541 forks source link

Chrome OS 43版本上工作不正常 #10

Open zohead opened 9 years ago

zohead commented 9 years ago

之前在Chrome OS 41和42版本上配合Proxy Switchysharp使用非常顺利, 今天把三星ARM Chromebook升级到Chrome OS 43版本之后发现Shadowsocks App存在问题:

刚开始可以使用socks代理正常,但在任务管理器里可以看到CPU占用接近100%, Shadowsocks内存占用也一直在不断升高,多刷几次Gmail之后Shadowsocks就不起作用了, 浏览器一直在连接但打不开。

谢谢

nekolab commented 9 years ago

抱歉没有Chromebook测试环境,在Chrome 43下测试并没有发现这个问题 看起来好象是由于加密造成的系统资源大量消耗 如果有其他Chromebook用户也遇到了这个问题,欢迎在这个问题下回报

Talent30 commented 9 years ago

如果解决这个问题需要开发机的帮助的话我愿意提供一部分资金去Chromebook淘二手

nekolab commented 9 years ago

@Talent30 谢谢,Chrome提供了一个与平台无关的运行环境,所以没有配置Chromebook的必要。

如果你也遇到了相似的问题,请在这个issue下确认并提供一下具体的细节,以帮助确定问题是否是由ChromeOS升级引起的

braveguywallce commented 9 years ago

Acer ChromeBook, 已经更新到Chrome OS 44, shadowsocks-chromeapp 工作一切正常,没有问题!

nekolab commented 9 years ago

@braveguywallce 感谢反馈!

PS: 预告一下,Native Client版的Shadowsocks已经在开发中,将会有更多的加密方法支持和更少的内存占用,敬请期待~

zohead commented 9 years ago

@meowlab Shadowsocks-NaCl 现在可以正式使用了么?非常期待这个准备测试看看

nekolab commented 9 years ago

@zohead Repo在这里:https://github.com/meowlab/shadowsocks-nacl 目前状态还是在开发中,您可以尝试编译一下,基本已经稳定了,还剩一个UDP支持没做 等到完全稳定了以后,会合并进这个项目里来,作为默认实现替换掉现在的JS实现

librehat commented 9 years ago

@meowlab 有没有计划用Dart替换掉目前的纯JS?感觉可以在合并shadowsocks-nacl的时候一起完成

nekolab commented 9 years ago

@librehat 您指的是Dart吗?用来替换掉哪部分的JS呢?

librehat commented 9 years ago

@meowlab 是Dart……神经病我写成这边租房网站的名字。就是感觉可以另起一个全新的项目使用shadowsocks-nacl和Dart,不手写JS或coffeescript,只是有点兴趣想上手Dart所以问问。手头也有Chromebook可以做测试

nekolab commented 9 years ago

@librehat 很抱歉没有任何关于Dart的计划,因为我也不会。。。 个人感觉核心实现应该用不到Dart的任何特性,编译生成的JS代码也许没有手写的实现有效率,或许ES6是更好的选择? UI部分的话。。好像也不是特别大的应用,没有用Dart的动力啊。。。

PS: 我对Dart几乎没任何研究,如果觉得我说的不对欢迎与我邮件交流。 PPS:欢迎大家review shadowsocks-nacl的代码,有任何建议都可以开issue反馈,谢谢~

librehat commented 9 years ago

@meowlab Dart is faster than handwritten JavaScript,就是这么一说,如果喵君有兴趣跳坑的话……UI部分也可以使用Dart的,Chrome App可以完全使用Dart开发的。

更短的代码,更简洁,而且不会像coffeescript那样可能还要考虑不同版本的问题。

zohead commented 9 years ago

Chrome OS升级到44.0.2403.90版本,CPU占用的问题还是存在, 特别在下载大文件和Chrome OS自动更新的时候,CPU占用60%-90%, 会严重影响Chromebook的使用流畅性,看来必须测试nacl版本了。。。

nekolab commented 9 years ago

@librehat 最近已经挖了一个nacl的坑了,要好好填上估计得好久好久,短期内跳坑无望啊~ 话说回来,具体到这个项目上,我觉得dart2js可能真的无法发挥出特别大的功效,因为在核心实现上就完全没有用到那些“手写肯定写不好但代码生成器能好好处理”的东西,整个流程就是一个很基本的状态机,操作chrome的API收发些数据而已。如果要把加密部分的第三方库forge用dart改写以提高性能,呃那就是一个特别特别特别大的坑了。不管怎么说,如果 @librehat 君有兴趣跳dart坑的话,我一定会来围观学习的~

@zohead 是的,现在这个版本加密解密收发数据所有事情都是在单线程JS里跑的,主要的性能瓶颈也是在forge这个加密库上,它卡死了整个APP就全完了,这也是我为什么要跳nacl这个坑的原因。 其实如果不算udp实现和消息通讯的话,nacl版本现在已经可以使用了,编译步骤也不算复杂,提供了测试用的APP,只要不在使用中关掉devtools就不会有任何的问题。

librehat commented 9 years ago

@meowlab 我……自己的Qt版本坑还么填完。好吧,都散了吧,不要再说Dart了……哈哈

zohead commented 9 years ago

@meowlab JS的加解密必须坑的,nacl版本完成后我看看有没有兴趣在这个基础上基于Chrome OS新加入的VPN API实现一个Chrome OS上的ShadowVPN ^_^

himulawang commented 9 years ago

nacl挺蛋疼的 有想过用web workers代替多线程吗?

On Fri, Aug 7, 2015, 12:02 Uranus Zhou notifications@github.com wrote:

@meowlab https://github.com/meowlab JS的加解密必须坑的,nacl版本完成后我看看有没有兴趣在这个基础上基于Chrome OS新加入的VPN API实现一个Chrome OS上的ShadowVPN ^_^

— Reply to this email directly or view it on GitHub https://github.com/shadowsocks/shadowsocks-chromeapp/issues/10#issuecomment-128587536 .

nekolab commented 9 years ago

@himulawang 初期就考虑过,但是发现一个postMessage就要差不多200ms以后就不考虑了。。。

clowwindy commented 9 years ago

可以换一种加密方法如 RC4-MD5 看看是有没有改善。

whatwewant commented 9 years ago

@clowwindy 您好, 我想请教下shadowvpn的wiki, 您可不可以给我一份? 关于multiusers 和 concurrency不会配置。RC4-MD5不是被抛弃了?

librehat commented 8 years ago

回归原题,我刚在Chromebook(Chrome OS 48)测试了一下master分支的代码,工作还算正常,不过CPU占用确实比较高(这一点要等NaCl完成,或者迁移到asmcrypto.js)。

nekolab commented 8 years ago

其实目前NaCl的CPU占用率还是很高,但内存不会再有问题了,一般在30-40M左右,这个还需要调查到底是openssl的锅还是其他什么原因

librehat commented 8 years ago

呃,为何NaCl的CPU占用率也高? 迁移到asmcrypto.js的计划我自我否决了吧,forge 0.7会引入ByteArray,这样一来就解决拷贝string的资源浪费了。见 https://github.com/digitalbazaar/forge/issues/146 作者后面有说目前进展不错(80%~90%了),估计今年能看到新版发布吧。