Tag Archives: v8

Cloudflare 也能在各端點跑 JavaScript 了

類似於 AWS 先前推出的 Using CloudFront with Lambda@Edge (參考「在 CloudFront 的 edge 上跑 Lambda」以及「Lambda@Edge 的 GA」),Cloudflare 也推出了類似的功能:「Introducing Cloudflare Workers: Run Javascript Service Workers at the Edge」、「Code Everywhere: Why We Built Cloudflare Workers」。 整個系統是架構在 Chrome V8 上,尤其是安全性的部分是 Cloudflare 的人頗讚賞的重點: Security: The V8 … Continue reading

Posted in CDN, Cloud, Computer, Murmuring, Network, Programming, Service|Tagged , , , , , , , , , , , , |Leave a comment

V8 對 Hash Flooding 的防禦措施

Hash Flooding 問題是指 Hash 這個資料結構是可以被預測 collision 所造成的問題,在隨機的情況下會是 的操作,在特定挑選故意讓他 collision 而變成 ,當有 個元素時,乘起來就會變成 。這算是一種阻斷攻擊 (DoS attack)。 在「About that hash flooding vulnerability in Node.js...」這邊提到了 V8 之前為了避免 Hash Flooding 的問題,關掉了 Startup snapshot 而造成的效能問題,以及後續的很多故事,最後找了長期的解法。 這個解法已經併入 Node.js 裡,預定下個包括的版本是 8.3.0: The patch to re-enable startup snapshot … Continue reading

Posted in Computer, Murmuring, Programming, Security|Tagged , , , , , , , , , , , , |1 Comment

V8 對 for-in 的最佳化

V8 引擎的人對 for-in 的最佳化寫了一篇解釋「Fast For-In in V8」,比較直接的結果就是維基百科與 Facebook 都變快了: For example, in early 2016 Facebook spent roughly 7% of its total JavaScript time during startup in the implementation of for-in itself. On Wikipedia this number was even higher at around … Continue reading

Posted in Browser, Computer, GoogleChrome, Murmuring, Network, Programming, Software, WWW|Tagged , , , , , , , , , |Leave a comment

Google Chrome 55 的記憶體改善

前陣子 Google Chrome 55 出了,其中最讓人期待的是對記憶體的改善,有人整理了數據:「Chrome 55 uses ~30% less memory than Chrome 54」。 依照作者拿 weather.com 與 reddit.com 測試,前者的記憶體省了 26%,後者省了 30%,都相當明顯。我自己在升到 55 後有明顯感覺到改善,尤其是重開 Chrome 時重新讀取頁面的速度也快了不少... 這些改善主要是出自於「Fall cleaning: Optimizing V8 memory consumption」這邊提到對 V8 engine 的改寫,我感覺到速度變快應該是記憶體用量降低使得 CPU cache rate 提高的關係吧...

Posted in Browser, Computer, GoogleChrome, Murmuring, Network, Software, WWW|Tagged , , , , , , , , , , |Leave a comment

V8 JavaScript 引擎將支援 WebAssembly

V8 JavaScript 引擎宣佈支援 WebAssembly:「Experimental support for WebAssembly in V8」。 依照說明,看起來在 Google Chrome 51 之後的版本 (目前是在 Chrome Canary) 可以打開 chrome://flags#enable-webassembly 啟用 WebAssembly 測試。 目前還是只有想到電玩遊戲之類的用途...

Posted in Browser, Computer, Game, GoogleChrome, Murmuring, Network, Programming, Recreation, Software, WWW|Tagged , , , , , |2 Comments

V8 Engine 的 Math.random() 在新版被重寫了...

先前在「V8 的 Math.random() 亂度不足的問題」提到 Math.random() 因為使用 MWC1616 (Fast random number generation using 128 bit multimedia extension registers on Pentium class machines) 而不夠亂的問題。 這個問題在新版 V8 Engine 提出改善了:「There's Math.random(), and then there's Math.random()」。 新實作的方法是 xorshift128+,擁有極長的 period length: This has been pointed out … Continue reading

Posted in Browser, Computer, GoogleChrome, Murmuring, Programming, Security, Software|Tagged , , , , , , , , , , , |Leave a comment

V8 的 Math.random() 亂度不足的問題

在「TIFU by using Math.random()」這篇看到作者踩到地雷,於是在討論 V8 Engine 的 Math.random() 的亂度不足。 其實這個問提早在 2012 年就有人在 StackOverflow 上詢問:「Why is Google Chrome's Math.random number generator not *that* random?」,而且也回答得很清楚。 而 Mozilla 這邊在 2006 年也被提出了類似的問題:「Bug 322529 - Upgrade Math.random() to a better algorithm, such as Mersenne Twister」。 … Continue reading

Posted in Browser, Computer, Firefox, GoogleChrome, Murmuring, Network, Programming, Security, Software|Tagged , , , , , , , , , , , , , , , , , , , |2 Comments