のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,481,327人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

元スレ+ JavaScript の質問用スレッド vol.118 +

JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
201 : Name_Not - 2014/08/09(土) 14:30:20.06 ID:???.net (+39,+29,-58)
>>195
全部の変数を解放しなきゃそうなるだろうが現実的じゃないだろ
関数でローカル変数使わないの?
イベントハンドラを設定したらイベントが起きるたびにガベージは溜まっていくぞ
202 : Name_Not - 2014/08/09(土) 14:30:45.70 ID:???.net (-16,-29,-40)
>>198
> スペックUPすれば大丈夫ってのは対象ユーザを狭めるだけでメリットがない気がする

スペックUPの数字を見てよって話。
2Ghz と 2.02Ghzの差は、20Mhzなんだよ?
今どき、20Mzhにどれだけの価値があるというのか。

そんなことより重要な事があるだろう。
203 : Name_Not - 2014/08/09(土) 14:32:36.05 ID:???.net (+32,+29,-19)
>>200
何が問題?

GCなしにしただけなんだから、値を書く所は
同じ場所じゃないとダメだろ。
204 : Name_Not - 2014/08/09(土) 14:34:57.61 ID:???.net (+42,+30,-85)
>>201
> イベントハンドラを設定したらイベントが起きるたびにガベージは溜まっていくぞ

もしかして、ガベージと、ガベージコレクションを勘違いしている?
ガベージ(ゴミ)がたまって、回収される時に、10msかかるって話で、
別にたまっている間は遅くないんだけど。

あんた、ガベージが1回たまるたびに10msかかるって
勘違いしてるでしょ。そうすると今までの発言の辻褄があう。
205 : Name_Not - 2014/08/09(土) 14:38:20.89 ID:???.net (-19,-29,-58)
>>197
なんだその謎コードはw
GCに優しいコードは
$a.css('top',100).css('left',100);
だよ
だからといってGCがなくなるわけじゃないから「GCなし」じゃねーし
そもそもこういう局所的チューンにはあんまり意味がない
206 : Name_Not - 2014/08/09(土) 14:39:17.72 ID:???.net (+18,+20,-21)
>>205
それはGCとは関係なくて、
連想配列を解析するコストでは?
207 : Name_Not - 2014/08/09(土) 14:40:17.95 ID:???.net (+38,+29,-10)
>>204
意味不明
ゴミがたまり続けたらいつかGCが発生する
という当たり前のことを当たり前に言っただけだが
208 : Name_Not - 2014/08/09(土) 14:41:21.77 ID:???.net (+35,+29,-28)
>>206
パラメータを渡すだけのためにオブジェクトを作るのを避けている
209 : Name_Not - 2014/08/09(土) 14:44:19.59 ID:???.net (-24,-29,-73)
>>206
だな。普通に考えて、
css関数内部でやってる連想配列からキーと値のペアを取り出して、
style.top = 100、style.left = 100 の二回実行するか
引数をそのまま、代入するかの違いあろう。
210 : Name_Not - 2014/08/09(土) 14:44:38.73 ID:???.net (+30,+30,-236)
>>202
まず、GCに視点を置くならCPUではなく、メモリが重要だと思うんだけど...
メモリのスペックはM/B依存だからスペックUPは楽じゃないよ

で、大した差異じゃないから他に目を向けるべきっていうのは基本的には同意
下記は個人的な想いなので気に入らなければ適当に流して欲しい

---
ただ、格闘ゲームだと微妙なレスポンスの違いが気になっちゃう場合があるんだよね
既に技コマンドは入力してあったのに応答速度の差で打ち負けて敗北ってなるともう目も当てられない
CRTモニタから液晶モニタに変えた時とか一般に市販されているゲームパッドの応答速度の遅さとかいろいろ難点はあるんだよ
その気持ちが分かる人なら多分、ただでさえ応答速度の遅いPCゲームだから他のネックとなる部分を全て解消した上で、たとえ1%の差でもFPSを上げる努力をするかもしれない
その気持ちは分かってくれると嬉しいな
211 : Name_Not - 2014/08/09(土) 14:45:44.84 ID:???.net (+32,+29,-59)
>>208
ん?

だからオブジェクトを渡しすのと、値を渡すので
引数の型が違うから、速度の差はその違いでしょ?

GCはどこにもでてきてない。
212 : Name_Not - 2014/08/09(土) 14:47:14.85 ID:???.net (+22,+24,-31)
GCなし(笑)ってふざけてるように見えるけど、

cssに渡す引数が両方オブジェクトという同じものでありながら、
かつ、GCが発生しないように考えられたコードだね。
213 : Name_Not - 2014/08/09(土) 14:49:37.17 ID:???.net (+31,+29,-30)
>>201
全部やれとはいってないだろ
重要な部分だけキャッシュすれば済む話
パフォーマンス上どうでもいい部分までキャッシュするのは愚かな人がやることだ
214 : Name_Not - 2014/08/09(土) 14:50:15.49 ID:???.net (+30,+29,-61)
GCなしで、1%速度が上がってるんだから、それで満足しろよw

59.4fpsだったのが60fpsになるから、
格闘ゲームだと微妙なレスポンスの差に影響するかもしれないだろ?

まあ、俺なら処理を見なおして、根本的に改善するけどね
GC気にするよりも、もっと重要な事があるだろう。
216 : Name_Not - 2014/08/09(土) 14:53:30.13 ID:???.net (+27,+29,-13)
逆に言えば、どんなに頑張ってGCを発生しないようにしたとしても、
10msしかはやくならんのよね。

もっと他に(略)
217 : Name_Not - 2014/08/09(土) 14:54:18.41 ID:???.net (+38,+29,-44)
>>207
> ゴミがたまり続けたらいつかGCが発生する

だから「いつか」でしょ?

そのいつかはいつ来るの?
毎秒GCが発生するわけじゃない。
どんなに多くても数分に1回程度でしょ?
219 : Name_Not - 2014/08/09(土) 14:56:39.94 ID:???.net (+22,+24,-19)
ぶっちゃけ、GC気にしてる奴は、
Googleのパフォーマンス厨の
煽り宣伝にのせられただけな気がするw
220 : Name_Not - 2014/08/09(土) 14:56:59.88 ID:???.net (+32,+29,-42)
このレベルで気にするのにjQueryに拘る理由が分からん
jQuery止めればもっと速くなるだろ
221 : Name_Not - 2014/08/09(土) 14:57:54.94 ID:???.net (+34,+27,-59)
>>220
jQueryを使わなくても、関数の引数に
オブジェクトを渡せば同じことですよ!
224 : Name_Not - 2014/08/09(土) 15:00:17.54 ID:???.net (+37,+29,-27)
>>221
そういう意味じゃない
GCなしのコードにして、jQueryを使わなければ更に高速になるだろ
1%の差異を気にしてそこまで拘らないのはおかしい
225 : Name_Not - 2014/08/09(土) 15:01:11.94 ID:???.net (-1,+2,-70)
>>222
グローバルに持っていっても、
どっちみち、ローカルで数値代入しなければ
同じ意味にならないだろ?

(その他はローカルで数値代入してるのと同じ)
226 : Name_Not - 2014/08/09(土) 15:02:27.91 ID:???.net (+33,+29,-5)
>>224
GCの問題のほうが大きいに決まってるだろ!

もっと重要な事なんて無いっ!
227 : Name_Not - 2014/08/09(土) 15:05:56.11 ID:???.net (-27,-29,-34)
>>225
そんなことはない
キャッシュするのなら可能な限りキャッシュしてパフォーマンスを上げようとするもの
実際にはキャッシュする局面で var obj = {}; でキャッシュする事はないのだから
228 : Name_Not - 2014/08/09(土) 15:06:51.62 ID:???.net (+33,+30,-92)
最初っから、格闘ゲーム並みにパフォーマンスを気にするなら
jQuery使うなってだけの話じゃねーか。

そのことに誰も反論はしねーよ?

1fpsを気にするような特殊なものは、それように最適化されたものを使えばいし、
ほとんどのアプリは1fpsなんて気にしないものなんだから、
他にもっと重要なことがある。それだけだよ。
229 : Name_Not - 2014/08/09(土) 15:08:16.02 ID:???.net (-1,+0,-7)
それにしてもIE11速くなったなw
今となってはFirefoxが一番遅いのか。
230 : Name_Not - 2014/08/09(土) 15:22:08.35 ID:???.net (+46,+29,-74)
>>197のコードはおかしくないか?
GC有無に関わらず、キャッシュしているが、キャッシュしていた分はGCが発生しないのだからこれは正確じゃない

普通はこんな感じで比較すると思うのだが
http://jsperf.com/gc-test-for-2ch

明らかにjQueryを使用しないほうが高速だ
GCなしにする前にjQueryを廃止する対策が有効といえる
勿論、どちらも対策するのが最良であることはいうまでもない
231 : Name_Not - 2014/08/09(土) 16:31:00.00 ID:???.net (+33,+29,-52)
>>217
数分に一回って、そんなわけあるかw
デバッガを見ればGCが頻繁に走ってるのが確認できる
232 : Name_Not - 2014/08/09(土) 16:38:35.39 ID:???.net (-23,-25,-4)
>>214
59.4って何だよw
常に60を維持出来なければ30fpsになるだけだぞ
233 : Name_Not - 2014/08/09(土) 16:46:00.74 ID:???.net (+38,+29,-90)
GCはいつ起きるか分からないから
jsperfのようなベンチマークではGCの影響は測定できないよ
ガベージを貯め込むアルゴリズムの場合、
たとえベンチマークでは速かったとしても
運用でユーザビリティの質を悪化させる、ということが起きる
234 : Name_Not - 2014/08/09(土) 16:53:26.83 ID:???.net (+41,+29,-88)
GCに優しいコードとは、
余計なオブジェクトを極力作らない
オブジェクトはなるべくキャッシュする
関数言語的コードはやめる
ようするに「奇をてらわないごく普通のコード」を書けばいいということ
何も難しいことはない
235 : Name_Not - 2014/08/09(土) 17:06:49.23 ID:???.net (+32,+29,-70)
個人的に一番アカンかったと思うのは
「メソッド内でjqueryオブジェクトを毎回生成」だな
実行時間は体感しない程度なのでキャッシュとかいらんやろと思っていた
GCがここまで遅いものだとは思ってなかった
236 : Name_Not - 2014/08/09(土) 19:22:57.37 ID:???.net (+32,+29,-4)
>>233
GCはともかく、参照速度の差は明確に現れてるから比較データとしては十分かと
237 : Name_Not - 2014/08/09(土) 20:32:11.43 ID:???.net (+32,+29,-17)
クイックソートとバブルソートの
速度の違いもGCが原因なんだって。
238 : Name_Not - 2014/08/09(土) 20:46:51.89 ID:???.net (+32,+29,-78)
>>237
アルゴリズムの違いをGC起因にすり替えるな
ここまで極端だと一度GCの影響と主張した手前、引っ込みがつかなくて延々と自説の正しさを主張しているように見えるな
239 : Name_Not - 2014/08/09(土) 21:12:49.49 ID:???.net (+33,+29,-37)
じゃあ、オブジェクトを使った場合に
遅くなるのはGCのせいってことでいいよね?

オブジェクトを何百個、何千個生成すると
遅くなるのはGCのせい。
240 : Name_Not - 2014/08/09(土) 21:15:20.61 ID:???.net (+32,+29,-15)
>>239
何が「じゃあ」なんだよ?
おまえのその非論理的思考を何とかしろ
241 : Name_Not - 2014/08/09(土) 21:16:14.04 ID:???.net (+32,+29,-106)
最近は基本的なアルゴリズム知らなくてもプログラマ名乗るからなぁ
BTreeとかMinMax法とか・・・
既存のアルゴリズムを知ることで、新たなロジックを組むときに最適な構造で設計・製造できるようになるんだよ。
最低でも「C言語による最新アルゴリズム事典」は全部理解している必要がある。
242 : Name_Not - 2014/08/09(土) 21:18:48.23 ID:???.net (+27,+29,-21)
GCが問題になるのはゲームだけだ
それ以外はオブジェクトを何千個作ったっていいよ
243 : Name_Not - 2014/08/09(土) 21:19:50.00 ID:???.net (+5,+2,-42)
オブジェクト使ってCG使わない事例は>>230で出てる
「jQueryもGCも使わない」でFA
244 : Name_Not - 2014/08/09(土) 21:20:46.49 ID:???.net (-5,-9,-16)
というか、オブジェクト生成とGCに関連性はないから
245 : Name_Not - 2014/08/09(土) 21:34:16.03 ID:???.net (+32,+29,-26)
オブジェクトを作るのはいいが
使い捨てにするなってこと
248 : Name_Not - 2014/08/09(土) 22:01:39.06 ID:???.net (+32,+29,-22)
>>245
オブジェクト生成がトリガーになってない事を指摘してるんだと思うが
件の人は理解してないようだから
249 : Name_Not - 2014/08/09(土) 22:06:34.56 ID:???.net (+34,+29,-173)
>>244
オブジェクトが破棄(スコープを抜けて参照が消える)されるタイミングでGCが走る可能性はGCの実装しだいだがなくはないと思う。


GC走らせたくないってってレベルの問題に粘着してるやつがjQuery使い続けるのはどうなの?
jQueryの内部全部精査した上でつかっとるのか?
そもそもそのレベルの速度要求されるならクライアント(ブラウザ)を別にするとかはできんのか?
250 : Name_Not - 2014/08/09(土) 22:13:47.74 ID:???.net (+30,+29,-32)
GCを過小評価したがる奴が意味不明過ぎる
10msオーダーのでかさ分からんのかな
しょぼいサイト作ってるんだろうな
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について