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

私的良スレ書庫

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

元スレ+ JavaScript & jQuery 質問用スレッド vol.5 +

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
901 : Name_Not - 2016/06/07(火) 23:28:47.76 ID:???.net (+15,-30,-166)
>>899
> 君のコードは可変引数になってないし、
eachでループしてるから、同等のコードになってるよ。

> 790はsetColSpanでは関数単体で処理したし、setRowSpanでは一つの関数(removeElements)しか呼び出さなかった
> 関数スコープで分けないコードは必然的に変数量が増える

いや、だからsetColSpanとsetRowSpanでまったく別の関数になってしまって
コードが2個文になってるのは、アルゴリズムが別になってるからでしょ。
おかげで、コードレビューする時作業量が2倍になるんだよ。
書いた本人はそれぜ満足するかもしれないけど、それを読む他人のことを考えれw
902 : Name_Not - 2016/06/07(火) 23:32:27.42 ID:???.net (+3,-29,-79)
それから何か話を勘違いしているような気がするけど、
俺が多いって言ってる変数は、

rows、cell、textContent、colSpan、cells、rowSpan、nextCellのことだからな。
いくつかはいるだろうけどさ
903 : Name_Not - 2016/06/07(火) 23:35:47.41 ID:???.net (+74,+29,-92)
>>897
アホか、cloneNodeした意味をよく考えろよ
1回目の処理でセルが結合されるんだから2回目以降の処理でセルが結合されることは絶対にない
結合の伴わない処理を何千回ループさせても有意な実測値にならないだろうが
904 : Name_Not - 2016/06/07(火) 23:41:58.93 ID:???.net (+108,-29,-73)
>>903
コード読めよw だれがcloneNodeを無くしたって言ってるんだよw

>>790のコードと俺のコードで、同じコードにしたってだけだろ。
ベンチマークをするときは関係ないコードをなるべく混ぜないようにしろ。
どちらも同じbenchmark関数を使ってるんだから問題ないだろ。
905 : Name_Not - 2016/06/07(火) 23:43:15.86 ID:???.net (+57,+29,-31)
あー、やっぱりセレクタの処理のほうが時間がかかってるかも、
ちゃんと調べないとだめだな。多分仕切り直しするわ。
っていうか腹減った。多分明日な。
906 : Name_Not - 2016/06/07(火) 23:46:27.45 ID:???.net (-1,-29,-53)
関数を同一にしない理由はその方がパフォーマンスを稼げるからだろ
--kを嘲笑してるあたり、liveとnot-liveの違いも知らんようだし、jQuery使いはホント害悪だな
907 : Name_Not - 2016/06/07(火) 23:47:16.81 ID:???.net (+79,+29,-4)
>>904
リフローコストはどうでもいいの?
908 : Name_Not - 2016/06/07(火) 23:48:10.45 ID:???.net (+91,+29,-28)
> 関数を同一にしない理由はその方がパフォーマンスを稼げるからだろ

それで1回あたり何ナノ秒稼げるの?

いちばん重要なのはここだよね。
909 : Name_Not - 2016/06/07(火) 23:49:24.60 ID:???.net (+53,-19,-42)
>>907

両方同じベンチマーク関数を使ってるのに
何か問題あるのか?

> --kを嘲笑してるあたり
そりゃするだろw これはC++じゃないんやで?
C++の話が通じるわけなかろう。
910 : Name_Not - 2016/06/07(火) 23:54:32.81 ID:???.net (+41,-22,-47)
jQuery信者がHTMLCollectionの性質を知ってるわけないじゃん
DOMでコストがかかる部分も知らんからそんなコードを書くんだよ
911 : Name_Not - 2016/06/07(火) 23:56:44.87 ID:???.net (+70,+29,-38)
>>908
790はお前のために書いているわけでもないんだからいちいち文句いうなよ
大したコード量でもない癖に押しつけがましいぞ
912 : Name_Not - 2016/06/08(水) 00:04:55.07 ID:???.net (+63,+30,-127)
5000行クラスになるとさすがに大変だが、100行にも満たないコード量で文句いう奴はレベルが低すぎるわ
自分は790のコードを元にしてる癖に自分用にカスタマイズしたコードを書くだけでは満足しない
他人への否定の声が大きく、自分に対する否定には敏感に反応する
典型的な自己中人間だろ
913 : Name_Not - 2016/06/08(水) 00:11:49.32 ID:???.net (+62,+29,-183)
> 5000行クラスになるとさすがに大変だが、100行にも満たないコード量で文句いう奴はレベルが低すぎるわ

いや・・・、それは無いわw
その認識だと、俺なんかとは住む世界が違いすぎるとしかw

http://thinkit.co.jp/free/tech/15/2/1.html
>
> 1つのメソッドの中でいろんな処理を行っているため、
> メソッドが長くなっています。きちんと役割分割されたプログラムのメソッドは、
> 10行程になるといわれています。
>
> 1メソッドの行数はコメントを含めて20行以下にするのが望ましいです。
> 1メソッドの行数が20行を超えるようであれば、他に分割すべき点がないか、
> もう一度コードを読み直してみて下さい。
914 : Name_Not - 2016/06/08(水) 00:14:04.52 ID:???.net (+72,+29,-98)
>>910
> jQuery信者がHTMLCollectionの性質を知ってるわけないじゃん
> DOMでコストがかかる部分も知らんからそんなコードを書くんだよ

だから1回あたりの差は、15msだって書いたよね?
それよりも、コードを読み書きする時間は、何分か考えたことある?

これはプロとしての考え方ができるかどうかの問題だよ。
915 : Name_Not - 2016/06/08(水) 00:15:09.78 ID:???.net (+121,+29,-47)
>>896で画面が固まらないようにしてくれたのに何で固まるコードを未だに使ってるんだろ
画面が動き出すまでコードを読めないからすげーいらいらする
916 : Name_Not - 2016/06/08(水) 00:19:18.27 ID:???.net (+6,-29,-52)
そもそも、今更colspan=2,rowspan=2に対応してないコードを出されても読む気がしないがな
明らかに劣ったコードを改良されてもねえ
917 : Name_Not - 2016/06/08(水) 00:20:38.11 ID:???.net (+51,+12,-19)
>>915
仕様が変わっている上に、俺のコードが削除されてるからだよw
918 : Name_Not - 2016/06/08(水) 00:22:56.92 ID:???.net (+108,+29,-38)
>>915
ほらよ。ループ回数を100回に減らした。
http://jsfiddle.net/eoxzjqwu/46/

っていうか10000万回で保存したやつに言えよw
919 : Name_Not - 2016/06/08(水) 00:24:27.13 ID:???.net (+101,+29,-3)
>>909
そこでC++を持ち出すところに失笑を禁じ得ない
920 : Name_Not - 2016/06/08(水) 00:24:33.95 ID:???.net (+74,-26,-73)
>>916
> そもそも、今更colspan=2,rowspan=2に対応してないコードを出されても読む気がしないがな
どういう意味?

可読性が悪いコードを読む気にはならないし、
修正する気にもならない。

仕様を書いてくれれば、それに合わせるよ。
>>790の修正はする気にならないので、他の人よろしく)
921 : Name_Not - 2016/06/08(水) 00:26:52.64 ID:???.net (+161,+29,-56)
>>919
知らないの? C++では++を前に書くことで
速くなるという都市伝説があった。
今はその逆の説まで出てきてるようだけどw

で、これは当然JavaScriptには当てはまらない。

あ、当たり前だけど、式の途中で書くと動きが違うのは知ってるよ。
だから俺の修正でも機械的に++を後ろに持ってくるだけじゃなくて
処理自体に修正入れてるでしょw
922 : Name_Not - 2016/06/08(水) 00:28:29.36 ID:???.net (+57,+29,-9)
そうそう余談だけど、JavaScriptでは++ではなくて+=1の方が早いらしい。
ぶっちゃけそこで大きな差が生まれることはないと思ってるので興味ないけど。
923 : Name_Not - 2016/06/08(水) 00:28:32.83 ID:???.net (+75,-29,-54)
>>914
いや一応言っておくけど、>>892のとおりなら
・DOM 約 0.31ms
× ・jQuery 約 15.11ms
○ ・jQuery 約 1.511ms
つまり差は1.2msだと思うぞ。
924 : Name_Not - 2016/06/08(水) 00:29:42.41 ID:???.net (+108,+29,-35)
>>918
求めたのはその修正じゃなかったんだけど、もういいや
低機能版の焼き直しみたいだし
925 : Name_Not - 2016/06/08(水) 00:31:00.77 ID:???.net (+122,+29,-55)
>>921
> で、これは当然JavaScriptには当てはまらない。
いやそれは違うぞ。
あれは最適化がかかるという話であって、どの言語でも同じだよ。
ただまあ、お前らそんなところを気にするレベルじゃないよ。
926 : Name_Not - 2016/06/08(水) 00:31:07.73 ID:???.net (+104,+29,-26)
>>923
あ、間違えたw
っていうかお前も間違ってるだろwww

>>924
だから何の機能がほしいんだよw
仕様を言えば修正するって。
927 : Name_Not - 2016/06/08(水) 00:33:17.14 ID:???.net (+52,+29,-2)
飽きずによくやるよ
928 : Name_Not - 2016/06/08(水) 00:33:34.14 ID:???.net (+22,+29,-45)
>>925
> あれは最適化がかかるという話であって、どの言語でも同じだよ。

ちゃんと調べてくれ。
http://cpp.aquariuscode.com/preincriment-vs-postincriment

これはC++特有の問題なのがわかるだろ。
929 : Name_Not - 2016/06/08(水) 00:33:45.29 ID:???.net (+33,-17,-39)
>>921
(評価値として使わない限り)k++と++kが同じだからこそ、++kを嘲笑するお前が滑稽なんだよ
どちらでも好きな方を使えばいいだろ
930 : Name_Not - 2016/06/08(水) 00:34:32.53 ID:???.net (+108,+29,-36)
>>926
いや俺は横だよ。
お前らの意地の張り合いは、悪くはないけど、良くはないよ。
そんなことより、もっと実用的な大きなコードを書くことを練習した方がいい。
931 : Name_Not - 2016/06/08(水) 00:34:37.81 ID:???.net (+63,+25,-7)
>>923
ごめん、俺が間違ってた。

1万は
0、3つじゃねーな。
0、4つだわなorz
932 : Name_Not - 2016/06/08(水) 00:35:29.26 ID:???.net (+111,+29,-30)
>>930
> そんなことより、もっと実用的な大きなコードを書くことを練習した方がいい。

全くだよw
だから一回あたり1.2msしか差がないようなものに対して
速度重視なんだーって言ってるんだよ。こいつらw
933 : Name_Not - 2016/06/08(水) 00:37:39.78 ID:???.net (+109,+29,-6)
>>932
おまえが他人のコードにかみつくのも同じぐらいに無駄だわ
934 : Name_Not - 2016/06/08(水) 00:42:07.39 ID:???.net (+83,-30,-99)
>>929
どこの組のものだい?w

JavaScriptのスタイルガイドまとめ(おすすめ4選)
http://qiita.com/takeharu/items/dee0972e5f39bfd4d7c8

Googleコーディング規約
http://www38.atwiki.jp/aias-jsstyleguide2/pages/13.html
i++ を使ってる

jQueryコーディング規約
http://contribute.jquery.org/style-guide/js/
i++ を使ってる

Airbnb
http://mitsuruog.github.io/javascript-style-guide/
i++ を使ってる
935 : Name_Not - 2016/06/08(水) 00:43:32.31 ID:???.net (+111,+29,-49)
>>933
> おまえが他人のコードにかみつくのも同じぐらいに無駄だわ
俺は趣味でシンプルなコードの修正している。
仕事ではもちろん最初からシンプルなコードを書く。

複雑で冗長な書くのは、趣味?仕事?
936 : Name_Not - 2016/06/08(水) 00:50:41.60 ID:???.net (+57,+29,-18)
シンプルとか言い出すやつに限ってシンプルじゃない法則
937 : Name_Not - 2016/06/08(水) 00:50:51.10 ID:???.net (+78,+30,-89)
自己顕示欲が強すぎていい加減、うざい
どうしても書きたいなら>>896と同等なコードを「1回だけ」書け
>>791-827でやったみたいに無駄にスレを消費するな(35回も更新をかけるとかアホか、ちゃんとローカルテストしてからお前自身が満足するコードを貼り付けろ)
コードさえ書けばおまえのいいたい事は伝わるからぐだぐだと余計な事はいわなくていい
938 : Name_Not - 2016/06/08(水) 00:52:57.71 ID:???.net (+63,+29,-29)
>>934
おまえは他の人が使っているコードを使わないと落ち着かないタイプなの?
何が問題なのかぐらい自分で少しは考えろよ
939 : Name_Not - 2016/06/08(水) 01:00:34.23 ID:???.net (+95,+30,+0)
>>928
読んだよ。記事の内容はまあその通りだけど、問題点はそこじゃないだろ。

お前らの問題は、「どっちが速くてどっちが遅いか」の「固定的」正解を求めようとしていること。
そんな物はないんだよ。
Cはほぼアセンブラにそのまま落ちるから、ちゃんとしたCのプログラマならその時々に応じてどっちが速そうか分かるんだよ。
(といっても大体どうでもいいんだが)
お前らはそれが分からずに「固定的」に考えてるから駄目なんだ。

だけど君達はそんなところに気を使うレベルじゃない。
はっきり言えば、x86ならインクリメント如きではストールしない。あれは本当に糞なコードでも爆速で動くんだ。
実際の計測もおかしな事になってるだろ。
> また、普通にforをまわすだけだと最適化で消え去ってしまうし、ある程度最適化を妨げようとすると今度はforが誤差になるぐらい処理速度を持って行かれてしまいます。
> なので、インラインアセンブラでNOPを突っ込むことで対応。
> それでもintのインクリメントをデクリメントに置換されたりいろいろしていますが、それは通常利用でも起きうるものとして許容しています。
>http://resemblances.click3.org/?p=1828
そもそもx86でNOPは効くのか?も疑問だし。

コードにこだわることはいいことだし、こういう風に色々やってみること自体もいいことだ。
ただ、こんな「宿題」レベルを相手にしていてもあまり実りはないから、
やるのならもっと大きなコードを相手にした方がいい。
940 : Name_Not - 2016/06/08(水) 01:01:19.66 ID:???.net (+72,+29,-26)
>>935
君は「レスの回数」もシンプルにするべきだね
とっても読みづらいよ
941 : Name_Not - 2016/06/08(水) 01:21:03.93 ID:???.net (+31,+29,-76)
>>939
「問題点はそこじゃない」には同意するが、++iと速い/遅いは論点が別だろ
彼は>>921で速度の問題を否定してる
>>934で「右に倣え」的な考えを打ち出してきたのは失笑ものだが
問題がないところに問題があるかのように指摘したのが問題(>>807)
942 : 925 - 2016/06/08(水) 02:22:04.27 ID:???.net (+91,+30,-252)
>>941
俺は、「JavaScriptでも前置/後置での速度差は発生する」と言っているんだが、これはいいか?

ただそれは機械的なものではなくて、JIT後のコードがどうなるか予想できる奴じゃないと見積もれない。
そしてJIT後のコードが確定したとしても、その程度の差ならx86だとどれでもほぼ同じ速度で動いてしまう。
だから、気にすること自体はいいことだし、それがレベルアップにも繋がるのも確かだけど、
ここについては気にせずにさっさと次のステップに行け、と言っているんだ。

この点については、俺は右にならえでいいと思うぞ。
googleとかはお前らよりももっと詳しい連中が色々調べた結果、「こっちの方がいいです」という結論を出したんだ。
俺らが自分のPCしか使わずにベンチした結果よりだいぶマシだ。

てかお前ら無駄に他人を馬鹿にしすぎ。
ただ俺はお上品にやれと言っているわけではなくて、糞なコードに対しては糞だと言った方がいいと思う。
だって、糞なコードを「素晴らしいですね」って褒められて上達しない方が問題だろ?
ただそれにしても無駄に煽りすぎだ。元気なのはいいとは思うけども。
943 : Name_Not - 2016/06/08(水) 02:34:03.31 ID:???.net (+52,+29,-14)
おまいうってやつですね、わかります
944 : Name_Not - 2016/06/08(水) 05:00:56.45 ID:???.net (+3,-29,-70)
Rubyでも、JRubyだと、10万回~100万回のループ時間が、0.3秒ぐらいで同じ。
1千万回(1秒)以上では、CRubyよりも速くなる

つまりJRubyでは、この回数分ループすると、機械語に置き換えたり、
分岐予測を使ったり、さらなる最適化をする
945 : Name_Not - 2016/06/08(水) 05:22:04.47 ID:???.net (+57,+29,-3)
ところで巻き上げってなんのためにあるの?
946 : Name_Not - 2016/06/08(水) 08:46:55.41 ID:???.net (+7,-30,-91)
$.ajax() で
var ary = new Array();
var obj = new Object();
でobjの配列を作って
dataType:"json" で送信しようとしたらそこで停止してしまいます。
Object型の配列は送れないのでしょうか?
947 : Name_Not - 2016/06/08(水) 10:42:12.95 ID:???.net (+75,+29,-44)
>>942
> そしてJIT後のコードが確定したとしても、その程度の差ならx86だとどれでもほぼ同じ速度で動いてしまう。
結局、「ほぼ同じ」じゃないか

> googleとかはお前らよりももっと詳しい連中が色々調べた結果、「こっちの方がいいです」という結論を出したんだ。
そんな結論は出てないが、ソースはどこに?
948 : Name_Not - 2016/06/08(水) 11:45:49.31 ID:???.net (-1,-29,-27)
>>946
Object型の配列ってnew Arrayの事なんだけど、new Objectはどこから出てきた?
とりあえず、JSON.stringify
949 : Name_Not - 2016/06/08(水) 21:14:05.40 ID:???.net (+14,+29,-26)
なんかごめん。
速度はそこそこでもいいんで、シンプルで汎用的で読みやすいのはどのリンクのソースを見ればいいの?
そのまま使うって訳ではなく、勉強のためにしっかり読み込みたいので。
950 : Name_Not - 2016/06/08(水) 21:20:36.08 ID:???.net (+70,+29,-35)
なんかよく見たら、左上の「1」とその下行左端の「1」が結合されてないけど、いいの?
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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