[過去ログ] 【node.js】サーバサイドjavascript 2【Rhino】 (983レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
56: 2013/02/03(日)18:18:50.45 AAS
この板はjavascript嫌いな人多いよね
384
(1): 2013/10/29(火)01:38:10.45 AAS
まさかと思うが今時コンパイル環境もない共有サーバ使ってますとか言わないよな?まさかとは思うけど
490: 2013/12/15(日)18:04:26.45 AAS
>なぜHandleScopeの宣言がないとメモリリークするのか? V8のデザインに起因します。
>V8では変数を扱うには、直接オブジェクトのポインターを扱わず、Handleを経由して利用します。
>Handleには PersistentとLocalの2種類があり、Persistent Handleは明示的に解放させないといけません。
>一方 Local Handleは、 HandleScope の変数を宣言しておくとそのスタック領域に格納され、
>デストラクターとともに自動的に LocalHandle が解放される仕組みになっています
>(パッと見るとHandleScopeの宣言がおまじないのように思えます)。
>
>Nodeコアで非同期コールバックを呼び出す関数 MakeCallback 中に LocalHandle を使用していますが、
>今回それを実行する HandleWrap::OnClose 関数で HandleScope が宣言されていませんでした
>(おそらく node-v0.9.xの時代から)。これが原因で、例えば socketオブジェクトをクローズするような場合、
>libuv からこのOnClose が呼ばれてコールバックが実行されますが、その際 LocalHandle が解放されず
>Undefined オブジェクトが親(メインループ)の HandleScope スタックに溜まってしまっていたということです。
>
>よってHTTPクライアントの接続切断毎に4バイトずつメモリリークしていた換算です。
>溜まっていたJSオブジェクトは全て同一の Undefined オブジェクトだったため、
>V8のHeap領域の方は増加しなかったわけです。通常の利用ではそれほど目立たない状況でしょうが、
>Walmartのサービス負荷のレベルだと無視できないレベルになり致命的な状況を発生させるものでした。
>
>実は今回のバグ発見のきっかけとなった setImmediate の関数は、私が node-v0.10で改変したところでした。
>自分が書いたところにメモリリークが見つかったと指摘された時は本当に肝を冷やしましたが、
>node-v0.11のマルチコンテキスト対応時に間違えて HandleScope を削除したことによるものでした。ホント焦りました。

なるほど。
漏れのモジュールも見直そう。
587: 2014/01/22(水)10:52:41.45 AAS
nodejsに限らず、rootで動かす必要が無ければユーザーフォルダが無難じゃないかなーと思う
まぁ、面倒な部分をどこにするかって話
912: 2014/12/08(月)08:40:35.45 ID:5xVLQkK/(2/2)調 AAS
>>894-899
http://stackoverflow.com/questions/27309412/what-is-the-difference-between-node-js-and-io-js
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.033s