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

みんなの評価 :
レスフィルター : (試験中)
arrayが参照されないから最適化されちゃってるんじゃないの?
両方とも配列渡しちゃえよ
両方とも配列渡しちゃえよ
配列を渡したらそれはそれで両者の条件が変わりますよ
というかそこが本質でないのは明らかです
この大きな速度差はどこから来ているのか?という問題が主題です
というかそこが本質でないのは明らかです
この大きな速度差はどこから来ているのか?という問題が主題です
a = [1,2,3..略..99999]
って1から99999まで入ってる配列があります
これをメモリデバッガなどで値を書き換えるってことは加納ですか?
って1から99999まで入ってる配列があります
これをメモリデバッガなどで値を書き換えるってことは加納ですか?
>>242
何言ってんだこいつは
何言ってんだこいつは
>>257
大きな速度差はfirefoxだけだから、たぶん配列に関する最適化の差だな
大きな速度差はfirefoxだけだから、たぶん配列に関する最適化の差だな
配列か否かだけでこんなに差が出るわけがないと思いますが。
関数オブジェクト自体を作り直してるんじゃないかという勢いです
bindは関数オブジェクトを作ると聞いた記憶があるので
内部でbindしてるのかもしれませんね
関数オブジェクト自体を作り直してるんじゃないかという勢いです
bindは関数オブジェクトを作ると聞いた記憶があるので
内部でbindしてるのかもしれませんね
遅いapplyを使ってるapply.pushより遅いconcatって・・プークスクス
二倍近い差は充分に大きな差ですが・・
bindは全く関係ないとか、知らないのに何で言っちゃうんですか?プークスクス
bindは全く関係ないとか、知らないのに何で言っちゃうんですか?プークスクス
>>262
本来用途の違うものを比較してプークスクスって・・プークスクス
本来用途の違うものを比較してプークスクスって・・プークスクス
>>261
applyが内部でbind使うの?callは使わないの?
applyが内部でbind使うの?callは使わないの?
firefoxで大差、chromeで2倍弱、IEで結果がひっくり返るってことは
たぶんJSの最適化関係なんだろうなw
firefoxのこれはたぶん無茶なインチキくさい最適化してるw
たぶんJSの最適化関係なんだろうなw
firefoxのこれはたぶん無茶なインチキくさい最適化してるw
http://stackoverflow.com/questions/15455009/js-call-apply-vs-bind
bindが内部でapplyを使っているようですね
bindの遅さもapplyの遅さに起因すると
bindが内部でapplyを使っているようですね
bindの遅さもapplyの遅さに起因すると
http://jsperf.com/call-apply-segu
これ見るとIEでもcallの方が速いけど?
普通に考えてcallの方が速くなる方が自然だし、それが逆になるのは実装がおかしい
そして不自然な実装に最適化することは長期的に考えて愚か
これ見るとIEでもcallの方が速いけど?
普通に考えてcallの方が速くなる方が自然だし、それが逆になるのは実装がおかしい
そして不自然な実装に最適化することは長期的に考えて愚か
>>268
> bindが内部でapplyを使っているようですね
どこにそんな記述がある?
そもそも bind は function オブジェクトを返すもので、
bind 呼び出し時は関数は実行されないから、apply の実行速度と
全く関係ないと思うけど。
> bindが内部でapplyを使っているようですね
どこにそんな記述がある?
そもそも bind は function オブジェクトを返すもので、
bind 呼び出し時は関数は実行されないから、apply の実行速度と
全く関係ないと思うけど。
apply - 関数呼び出し
bind - applyのthisの参照をクロージャで維持した関数を返す
bindの実装でのapplyの使用のされ方ってこんな感じかな?
bind - applyのthisの参照をクロージャで維持した関数を返す
bindの実装でのapplyの使用のされ方ってこんな感じかな?
>>272
そっちだとapply側だけ配列確保してるからIEもcallが早くて他のブラウザと同じ傾向になる
http://jsperf.com/call-apply-segu
こっちは両方とも配列確保してるけど、
firefoxやchromeはcall側の配列に関する処理を省いちゃうので上のと同じ傾向になる
素直はIEはまじめに両方とも配列確保しちゃうので差がなくなっちゃった(実際には差が反転)のではないかな
http://jsperf.com/call-apply-segu
そっちだとapply側だけ配列確保してるからIEもcallが早くて他のブラウザと同じ傾向になる
http://jsperf.com/call-apply-segu
こっちは両方とも配列確保してるけど、
firefoxやchromeはcall側の配列に関する処理を省いちゃうので上のと同じ傾向になる
素直はIEはまじめに両方とも配列確保しちゃうので差がなくなっちゃった(実際には差が反転)のではないかな
http://jsperf.com/call-apply-segu
ああ、ごめんURLまちがった下はこっち
http://jsperf.com/apply-vs-call3
http://jsperf.com/apply-vs-call3
普通に考えるとapplyの方が素に近い処理じゃないか?
可変長の引数の取り扱いより、配列1個受け取ったほうが処理は楽だろ?
可変長の引数の取り扱いより、配列1個受け取ったほうが処理は楽だろ?
なんでやねんw
インターフェイスが確定されないんだからパフォーマンス落ちるのが当然
インターフェイスが確定されないんだからパフォーマンス落ちるのが当然
applyよりもcallが速い理由を考えるんじゃなくて
applyは遅くない!と何故か主張しだすアホはなんなんだw
applyは遅くない!と何故か主張しだすアホはなんなんだw
>>282
画像はあきらめてCanvasで自己解決しました
画像はあきらめてCanvasで自己解決しました
チャットみたいに1行文字列を要素の下に追加していく場合
obj.innerHTML += "<div>aaaaaa</div>";
ってinnerHTMLを使うのが一番良いですか?
obj.innerHTML += "<div>aaaaaa</div>";
ってinnerHTMLを使うのが一番良いですか?
最適化のためにローカル変数に代入しまくるとか
オブジェクトのループ書くためにObject.keys書きまくるとか面倒くさくなってきました
coffee scriptか?とも思うけどcoffee scriptにした後にcoffee scriptが廃れたら・・とか不安です
どうしたらいいですか
オブジェクトのループ書くためにObject.keys書きまくるとか面倒くさくなってきました
coffee scriptか?とも思うけどcoffee scriptにした後にcoffee scriptが廃れたら・・とか不安です
どうしたらいいですか
オブジェクトのキーの列挙に最適化なんて要らん
ローコル変数のキャッシュも同じく
そういう細かい所はエンジンの責任
あとはパレードの法則に従えば限られてくる
だがその前にアルゴリズムを疑え
最適化気にする奴が書くコードは質が悪い
最適化っていうのは良いコードを書いて最後にちょこちょこっとするものだ
ローコル変数のキャッシュも同じく
そういう細かい所はエンジンの責任
あとはパレードの法則に従えば限られてくる
だがその前にアルゴリズムを疑え
最適化気にする奴が書くコードは質が悪い
最適化っていうのは良いコードを書いて最後にちょこちょこっとするものだ
if (hoge) a =1 else b=1;
だとエラーになり
if (hoge) a =1;else b=1;
だとエラーにならないのは何故ですか?
だとエラーになり
if (hoge) a =1;else b=1;
だとエラーにならないのは何故ですか?
パフォーマンスを気にしないで書けるほどJavaScriptの最適化が進んでいるとは思いませんが。
むろん理想的にはそうです。
むろん理想的にはそうです。
>>4 にあるべき各種仕様■各種仕様 (http://fiddle.jshell.net/vSqKr/33/show/#Link も参照 )
◆ Standard ECMA-262
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/ (ECMAScript 3 和訳)
http://es5.github.io/ (ECMAScript 5.1 有志HTML版)
http://people.mozilla.org/~jorendorff/es6-draft.html (ECMAScript 6 有志HTML版)
http://kangax.github.io/es5-compat-table/ (ECMAScript 5 compatibility table)
http://kangax.github.io/es5-compat-table/es6/ (ECMAScript 6 compatibility table)
◆ HTML Standard (HTML5)
http://www.whatwg.org/specs/web-apps/current-work/multipage/
http://momdo.s35.xrea.com/web-html-test/spec/WD-html51-20130528/Overview.html (HTML5.1 和訳)
http://www.hcn.zaq.ne.jp/___/WEB/WebStorage-ja.html(Web Storage 和訳)
◆ Document Object Model (DOM) / CSS Object Model (CSSOM)
http://www.hcn.zaq.ne.jp/___/WEB/DOM4-ja.html (DOM Standard (DOM4) 和訳)
http://www.w3.org/TR/DOM-Level-3-Events/ (DOM3 Events)
http://www.hcn.zaq.ne.jp/___/WEB/cssom-ja.html (CSSOM 和訳)
http://www.hcn.zaq.ne.jp/___/WEB/cssom-view-ja.html (CSSOM View Module 和訳)
◆ その他のWeb関連仕様
http://domparsing.spec.whatwg.org/ (DOM Parsing and Serialization - innerHTML等)
http://www.hcn.zaq.ne.jp/___/WEB/XHR-ja.html (XMLHttpRequest 和訳)
http://www.hcn.zaq.ne.jp/___/WEB/File_API-ja.html (File API 和訳)
http://notifications.spec.whatwg.org/ (Notifications API)
http://www.whatwg.org/specs/ (WHATWGの仕様一覧)
◆ MDN (Netscape/Mozilla)
http://developer.mozilla.org/ja/docs
◆ JavaScript Garden (ja)
http://bonsaiden.github.com/JavaScript-Garden/ja/
◆ JSON (JavaScript Object Notation)
http://www.json.org/json-ja.html
◆ MSDN Library
http://msdn.microsoft.com/ja-jp/library/yek4tbz0.aspx (JavaScript)
http://msdn.microsoft.com/ja-jp/library/cc427807.aspx (JScript)
http://msdn.microsoft.com/ja-jp/library/cc409712.aspx (DHTML)
◆ Standard ECMA-262
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/ (ECMAScript 3 和訳)
http://es5.github.io/ (ECMAScript 5.1 有志HTML版)
http://people.mozilla.org/~jorendorff/es6-draft.html (ECMAScript 6 有志HTML版)
http://kangax.github.io/es5-compat-table/ (ECMAScript 5 compatibility table)
http://kangax.github.io/es5-compat-table/es6/ (ECMAScript 6 compatibility table)
◆ HTML Standard (HTML5)
http://www.whatwg.org/specs/web-apps/current-work/multipage/
http://momdo.s35.xrea.com/web-html-test/spec/WD-html51-20130528/Overview.html (HTML5.1 和訳)
http://www.hcn.zaq.ne.jp/___/WEB/WebStorage-ja.html(Web Storage 和訳)
◆ Document Object Model (DOM) / CSS Object Model (CSSOM)
http://www.hcn.zaq.ne.jp/___/WEB/DOM4-ja.html (DOM Standard (DOM4) 和訳)
http://www.w3.org/TR/DOM-Level-3-Events/ (DOM3 Events)
http://www.hcn.zaq.ne.jp/___/WEB/cssom-ja.html (CSSOM 和訳)
http://www.hcn.zaq.ne.jp/___/WEB/cssom-view-ja.html (CSSOM View Module 和訳)
◆ その他のWeb関連仕様
http://domparsing.spec.whatwg.org/ (DOM Parsing and Serialization - innerHTML等)
http://www.hcn.zaq.ne.jp/___/WEB/XHR-ja.html (XMLHttpRequest 和訳)
http://www.hcn.zaq.ne.jp/___/WEB/File_API-ja.html (File API 和訳)
http://notifications.spec.whatwg.org/ (Notifications API)
http://www.whatwg.org/specs/ (WHATWGの仕様一覧)
◆ MDN (Netscape/Mozilla)
http://developer.mozilla.org/ja/docs
◆ JavaScript Garden (ja)
http://bonsaiden.github.com/JavaScript-Garden/ja/
◆ JSON (JavaScript Object Notation)
http://www.json.org/json-ja.html
◆ MSDN Library
http://msdn.microsoft.com/ja-jp/library/yek4tbz0.aspx (JavaScript)
http://msdn.microsoft.com/ja-jp/library/cc427807.aspx (JScript)
http://msdn.microsoft.com/ja-jp/library/cc409712.aspx (DHTML)
>>293
ここを熟読するべし。熟読しても分からないならその時は説明してもいいよ。
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/7_Lexical_Conventions.html#section-7.9
ここを熟読するべし。熟読しても分からないならその時は説明してもいいよ。
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/7_Lexical_Conventions.html#section-7.9
ありがとうございます
早速読んでみました
ifステートメントのconsequentがブロックステートメントでない時は
ステートメントの終わりが分からないということだと思います
しかしelseが出てきたならその時点でステートメントの終わりなのは明らかです
現に他の言語では;を必要としないものも多くあります
何故JSでは;を必要とするのでしょうか?
早速読んでみました
ifステートメントのconsequentがブロックステートメントでない時は
ステートメントの終わりが分からないということだと思います
しかしelseが出てきたならその時点でステートメントの終わりなのは明らかです
現に他の言語では;を必要としないものも多くあります
何故JSでは;を必要とするのでしょうか?
>>294
君が知らないだけだよ
君が知らないだけだよ
特殊なケースを覗いてわざわざ悪い書き方をしてないのに遅いんならエンジンの責任。
逆に最適化ノウハウはエンジンごとに違うから多用するものではない。
結局、「「素直」」に書くってのが一番大事。素直にね。
苦しんで書いたコードとかメンテの面でも良くない。
逆に最適化ノウハウはエンジンごとに違うから多用するものではない。
結局、「「素直」」に書くってのが一番大事。素直にね。
苦しんで書いたコードとかメンテの面でも良くない。



類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.108 + (1001) - [97%] - 2013/9/21 15:16
- + JavaScript の質問用スレッド vol.100 + (1001) - [97%] - 2012/6/13 22:46
- + JavaScript の質問用スレッド vol.101 + (1001) - [97%] - 2012/7/16 14:15
- + JavaScript の質問用スレッド vol.102 + (1001) - [97%] - 2012/9/11 17:30
- + JavaScript の質問用スレッド vol.103 + (1001) - [97%] - 2012/11/9 15:30
- + JavaScript の質問用スレッド vol.104 + (1001) - [97%] - 2013/1/28 4:00
- + JavaScript の質問用スレッド vol.105 + (1001) - [97%] - 2013/5/20 4:45
- + JavaScript の質問用スレッド vol.139 + (1001) - [97%] - 2019/5/27 15:15
- + JavaScript の質問用スレッド vol.106 + (1001) - [97%] - 2013/7/20 9:30
- + JavaScript の質問用スレッド vol.107 + (1001) - [97%] - 2013/9/7 10:16
- + JavaScript の質問用スレッド vol.119 + (1002) - [97%] - 2014/10/3 15:30
- + JavaScript の質問用スレッド vol.129 + (926) - [97%] - 2017/7/27 13:45
- + JavaScript の質問用スレッド vol.129 + (981) - [97%] - 2016/5/5 8:16
- + JavaScript の質問用スレッド vol.122 + (116) - [95%] - 2018/5/2 18:30
- + JavaScript の質問用スレッド vol.121 + (1001) - [95%] - 2015/1/1 18:30
- + JavaScript の質問用スレッド vol.122 + (1004) - [95%] - 2015/2/14 4:45
- + JavaScript の質問用スレッド vol.141 + (881) - [95%] - 2021/4/19 9:00
トップメニューへ / →のくす牧場書庫について