簡體   English   中英

JavaScript中的JavaScript凍結/崩潰

[英]JavaScript freezing/crashing in Chrome

這是小提琴: http//jsfiddle.net/36mdt/

大約10-20秒后,顯示屏開始隨機凍結,並在崩潰后不久。 我無法在Firefox中重現這一點。

分析顯示沒什么異常。

http://jsfiddle.net/3pbdQ/顯示肯定存在內存泄漏。 即使是1 FPS,內存使用量也會達到每幀5兆字節。

另一方面,這個例子真實地展示了Math.random()實際上是不是那么隨機。

我只做了2次性能改進,5分鍾后也沒有崩潰(似乎也沒有泄漏內存)。 結帳http://jsfiddle.net/3pbdQ/3/

  1. 不要計算每次迭代內的大小
  2. 使用超時而不是凍結間隔。
  3. 使用按位運算符來編號

分析顯示沒什么異常。

Chrome Profiler不適用於WebWorkers,AFAIK。 根據保羅愛爾蘭人的談話:

“檢查一下:檢查共享工作者,你也可以在工作者代碼中執行console.profile()(我認為)並捕獲這些位。”清理“是垃圾收集器:如果在清理之后仍然有增長多余的記憶,那就是泄密。“

另一方面,這個例子真實地展示了Math.random()實際上是不是那么隨機。

眾所周知,沒有完美的隨機算法,但無論如何,你看到的一組分組顏色是因為你沒有設置canvas.height和canvas.width,它與CSS值不同。

編輯 :仍然泄漏記憶,我不知道為什么,大約10秒后它'清理'。 超過我的知識,但在60 FPS( var TIME = 16 )時工作順利

根據您使用的系統和瀏覽器版本,雖然我盡力提供與大多數系統兼容的常用步驟,但某些步驟可能會有所不同。

禁用沙箱:1。右鍵單擊Google Chrome桌面圖標。 2.選擇“屬性”。 3.單擊快捷方式>目標。 4.添加“--no-sandbox”5。單擊“應用”| 好。 6.下載並安裝ZombieSoftFix。 7.檢查並解決檢測到的沖突。

禁用插件:1。在地址欄中鍵入“about:plugins”。 2.按ENTER。 3.禁用列表頁面中顯示的所有插件。

清除臨時文件:1。單擊扳手。 2.選擇更多工具| 清除瀏覽數據。 3.檢查所有框,單擊“清除瀏覽數據”按鈕確認該過程。

感謝和問候。

這是一個不幸的,已知的Chrome漏洞

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM