当我访问特定网站时,我的 CPU 的整个核心都耗尽了,我该怎么办?

当我访问特定网站时,我的 CPU 的整个核心都耗尽了,我该怎么办?

我是一个 Markdown 粉丝,有一个非常有用的工具叫泰波拉(它是免费的,但是不是开源)。

当我去它的官方网站下载时,没有动画,也没有复杂的服务。然而,当我访问这个网站时,我电脑上的冷却风扇全速运转。当我打开任务管理器时,我看到整个核心都被吃掉了。这个网站是做什么的?源代码中包含 JavaScript 中的比特币矿工吗?

另外Typora本身是否也存在同样的问题?

有没有什么有用的工具可以分析某个网站或软件的行为?

答案1

我尝试在我的虚拟机中访问此网站,发现了同样的问题。Typora 网站正在运行以下脚本:

<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-54f423356e25706b" async="async"></script>

Typora 还使用以下不带缓存的脚本,以便可以利用最新的资源:

https://m.addthisedge.com/live/boost/ra-54f423356e25706b/_ate.track.config_resp
https://s7.addthis.com/js/300/addthis_widget.js

我阻止addthis.comaddthisedge.com使用hosts中的文件C:\Windows\System32\drivers\etc。它是用于将域名映射到 IP 的文件。我将这些域指向我的本地随机 IP。之后,站点无法找到脚本并无法执行。

addthis.com 是什么?根据守护者它是一个社交分享跟踪器。我发现它试图从我当时正在使用的其他网站读取数据。

屏蔽这些网站之后,CPU 使用率就正常了。

答案2

大多数网络浏览器都带有一个内置开发工具,称为“Profiler”。此工具可用于识别网站上的哪些 javascript 功能消耗了多少处理时间。开发工具通常通过 F12 访问。

在该网站上使用它可以确认答案再次https://s7.addthis.com/js/300/addthis_widget.js。大部分处理时间都由脚本(具体来说,由函数)使用i._handleScroll。脚本被最小化了,所以我不太想进一步研究它到底在做什么。要么是那个脚本太糟糕了,要么是网站开发人员在将该脚本集成到他们的网站时犯了一个错误。无论如何,这不是你能解决的。你可以使用 noscript 或在 hosts 中将整个域列入黑名单来阻止该脚本,但如果你这样做,网站可能就无法正常工作了。

顺便说一句:网站利用访问者的处理能力来挖掘比特币或其他加密货币确实是存在的。我自己也见过这样的网站。但它们通常不会使用 CPU。它们会通过WebGL 接口。这意味着您的 GPU 风扇将开始旋转,但任务管理器中的 CPU 使用率将保持相当适中。如果您想检查 GPU 的当前负载,请查看供应商的网站。他们通常会为其驱动程序提供显示此类信息的配套程序。

答案3

取决于你的浏览器。在 Firefox 上,你可以安装无脚本并有选择地将该网站的 JS 列入白名单,也许它是查看 Typora 本身并不严格需要的特定 JS 资源。

Ghostery 也许也可以在 Chrome 上做到这一点,尽管我对它的功能了解不多,但它比 Noscript 自动化得多。

警告:我喜欢 NoScript,但它可能会有点偏执,你需要做很多事情才能将其列入白名单。最好使用没有它的其他浏览器。

更新:是的,它占用了大量内存。Firefox 在我的 Mac 活动监视器上显示 FirefoxCPWebContent 占用了 170%。而且这是在禁用了所有网站 JS 的情况下。看起来他们把代码搞砸了——该子进程中有很多打开的字体句柄。

底线:即使 NoScript 也无法解决这个问题。

相关内容