以下のコードは少なくともChrome 47とFirefox 43でメモリリークを起こすようだ。
var RTCPeerConnection = window.RTCPeerConnection
|| window.mozRTCPeerConnection
|| window.webkitRTCPeerConnection;
while (true) {
var pc = new RTCPeerConnection({});
pc.close();
}
JSFiddleによる実行例(注意: リンク先に飛ぶとブラウザがクラッシュする)
自分の最新のIPアドレスを取得するためにwebrtc-ipsをポーリングしようとしたのだが、メモリ使用量がどんどん増えていくので気付いた。
対処法
- そもそも
new RTCPeerConnection()
を大量に呼ぶコードを書かない - 大量に呼ぶ必要がある場合は、適当なときに
location.reload()
する