元スレ+ JavaScript の質問用スレッド vol.118 +
JavaScript覧 / PC版 /みんなの評価 :
102 = :
GCのタイミングは必ずしも定期的に行われる物では無く、実装による
よってGCのせいにするのは馬鹿
103 = :
>>98
そうですか
ありがとうございました
105 = :
あほかこいつw
俺がマシンを変えてもユーザーのマシンは変わらねーんだよ
何の解決にもなってない
106 = :
どうせお前しか使ってないだろ
108 = :
type属性はもうつける意味が無いものになったよ。
111 = :
http://www.html5rocks.com/ja/tutorials/memory/effectivemanagement/
新世代のガベージコレクションの実行時間は、10 ミリ秒のオーダーです。
直感的に理解できると思いますが、アプリケーションがメモリアロケートを繰り返すと、
いずれ 領域が枯渇してGCが発生します。特にゲーム開発者は注意してください。
(60 fps を実現するために) 16ミリ秒のフレーム時間を保証するには、
あなたのアプリケーションは一回たりともメモリをアロケートすることはできません。
なぜなら、一回の新世代ガベージコレクションでフレーム時間のほとんどを使ってしまうからです。
旧領域のメモリ領域でガベージコレクションが実行されると、
必ず新世代のGCも実行されます。
ひとたび処理が走ると、アプリケーションは秒のオーダーで実行が止まります。
--
速い方のGCですら10msオーダー
遅い方は1sオーダー
レスポンシビリティが重要なアプリではGCに気を遣うのは当然のようですね
113 = :
今まで処理の重さとして感じていたことの多くがGCだったんじゃないかと思えてきた
ほとんどの処理に比べてGCはでかすぎる。
10msオーダーの処理なんて滅多にないし。
となると速度的なベンチマークではなく
メモリアロケーションを基準にコードを決めなくてはいけなくてはいけないのではないだろうか
関数呼び出しはパフォーマンスが悪いと言われるが、
アロケーション基準ではどうか?
ローカル変数を使うよりも関数を呼び出す方がいいこともあるのではないでしょうか
115 = :
>>113
その通りだ
JSのゲームエンジンは如何にループ内でnewの類いをしないかが大事
117 = :
>>116
勿論ロード中とかはnewするがループ中はなるべくすべきじゃない
ちなみにネイティブアプリは自分で解放をコントロール出来るから普通にnewもしてるだろう
それでも限界までメモリを使う場合は問題になることもあるだろうが
118 = :
jQueryのプラグイン使ってドヤ顔してJavaScript使えた気になってるのも嫌なんで、
jQueryのプラグインでよさげなやつを車輪の再発明でエミュレートしたろうと思ってます。
よろしくお願いします。
119 = :
おう、こちらこそよろしく~
124 = :
何度も使うarray.lengthをローカル変数に代入するというよくある高速化テクニックも
メモリアロケートの観点からは、
体感できないほどのコストのために余計なローカル変数を作ってゴミを増やしている
と言えるかもしれませんね?
125 = :
>>123
jQueryでもオブジェクトを生成する必要はないですけど
127 = :
数値型すらオブジェクトなんだから何やったってオブジェクト生成されることになるんじゃないのか
128 = :
オブジェクトはでかくて重い
129 = :
オブジェクトの参照も使い終わるとガベージになるのでしょうか?
容量はかなり小さそうですが
131 = :
>>112
lodashを使えばなんとかなるが現状その方法しかない
132 = :
は?意味はありますが?アホ?
135 = :
ガベージを増やさないためにはいかにオブジェクトを生成しないかが鍵になる
>>109を参照せよ
136 = :
まず、ガベージコレクションが増えても
パフォーマンスに影響がないんだ。
反論は、何%と具体的にいうこと。
できなければ、深夜に裸で町を猛ダッシュすること。
138 = :
引数に関数を渡す関数言語的な方法って
ローカル変数が生成されては廃棄されていくから
ガベージがものすごい速度で溜まっていくのでは?
139 = :
>>136
まだそんなこと言ってんのかw
>>111を参照せよ
140 = :
具体的な数値がでてるのが反論だとすると
反論はまだ出てないな。
もう5分も待ったのに。
141 = :
もしくは、裸で街を猛ダッシュした証拠でもいいんだが。
約束はちゃんと守ろう。
142 = :
具体的な数値が>>111に書いてあるので参照せよ
143 = :
>>142
あんた何を作ろうとしているの?
60fpsを出す必要があるゲーム以外には全く関係ないって
言ってるようにしか見えないんだが?
もしくは、裸で街を猛ダッシュしてもよい。
145 = :
現在のCPUは速いので相当複雑な処理をさせても10msもかからない
しかしGCは10msオーダー、1sオーダーという爆弾を平気で落として行くのだ
JavaScriptプログラマーに必要なのは爪に火を灯すような高速化ではなく、
なるべく爆弾が落ちないようにすること
そいつはすべてを吹っ飛ばしていくほど強力なのだ
147 = :
ガベージコレクションが起きて10msも処理に
時間がかかるのは1時間に1回ぐらいだよ。
149 = :
16msも遅延したらどうなるかわかってるの!
その16msで生死が決まるんだよ。
1フレームのレベルで戦っているんだからな。
たとえ1フレームが1じかんに
馬鹿のフリして核の秋田w
150 = :
「今だったら」って>>111はgoogle I/O 2013なんだがw
妄想を語り出すやつなんなんだろうな
C級プログラマーの思考回路は理解できんわ
類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.113 + (1001) - [97%] - 2014/1/25 12:46
- + JavaScript の質問用スレッド vol.110 + (1001) - [97%] - 2013/10/13 14:01
- + JavaScript の質問用スレッド vol.128 + (1001) - [97%] - 2016/2/26 6:45
- + JavaScript の質問用スレッド vol.119 + (1002) - [97%] - 2014/10/3 15:30
- + JavaScript の質問用スレッド vol.117 + (1009) - [97%] - 2014/8/5 3:30
- + JavaScript の質問用スレッド vol.116 + (1002) - [97%] - 2014/7/1 0:45
- + JavaScript の質問用スレッド vol.115 + (1001) - [97%] - 2014/5/29 16:16
- + JavaScript の質問用スレッド vol.114 + (1001) - [97%] - 2014/5/3 10:45
- + JavaScript の質問用スレッド vol.112 + (1001) - [97%] - 2013/11/27 16:46
- + JavaScript の質問用スレッド vol.111 + (1001) - [97%] - 2013/11/4 6:00
- + JavaScript の質問用スレッド vol.113 + (1001) - [97%] - 2014/3/15 21:30
- + JavaScript の質問用スレッド vol.108 + (1001) - [97%] - 2013/9/21 15:16
- + JavaScript の質問用スレッド vol.138 + (1004) - [97%] - 2019/4/20 23:45
- + JavaScript の質問用スレッド vol.121 + (1001) - [95%] - 2022/11/29 16:30
- + JavaScript の質問用スレッド vol.100 + (1001) - [95%] - 2012/6/13 22:46
- + JavaScript の質問用スレッド vol.125 + (1001) - [95%] - 2015/10/7 17:45
- + JavaScript の質問用スレッド vol.124 + (1001) - [95%] - 2015/7/16 1:30
トップメニューへ / →のくす牧場書庫について