- 1 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 06:37:31.669 ID:F8YqWP1o0
- オブジェクトaとbがあって
a == b
ってするのと
a.id == b.id
ってするのどっちが速い?
- 2 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 06:38:23.073 ID:nmFbMPE+0
- 一緒くらいはええええええ
- 3 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 06:38:58.373 ID:7CxVwZY+r
- 速さなら変わらんがやってる事が違うやろ
- 4 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 06:38:58.873 ID:PBD6WWD40
- 上
- 5 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 06:39:17.214 ID:F8YqWP1o0
- 上のがいいのか
- 6 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 06:39:49.859 ID:3p9Fgs8+0
- まず何の言語が言え
実装や言語によって違う
一般的には下 - 7 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 06:40:13.601 ID:F8YqWP1o0
- >>6
C#
下のが速いのか - 8 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 06:40:52.053 ID:zMS1zHoJ0
- たぶん環境に依存する
まぁ流石に>>1がその程度の話でわざわざスレッド立てないだろう - 9 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 06:40:55.958 ID:jgWbyQfnr
- 1億回くらい試行して0.1秒差が出るかどうかだろこんなん
- 10 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 06:41:27.718 ID:F8YqWP1o0
- >>9
どっちがいいかって話 - 11 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 06:41:47.361 ID:F8YqWP1o0
- 上で書くか下で書くか
- 12 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 06:43:38.509 ID:Vb2Ft69qr
- 同じidのオブジェクトが絶対に1つしか作られないなら上でいいよ
- 16 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 06:49:06.798 ID:F8YqWP1o0
- >>12
同じidのオブジェクトが絶対に1つしか作られない - 18 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 06:49:55.254 ID:RGfwY1ss0
- >>16
ならなんで比較してんだよくそわろ - 20 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 06:51:15.250 ID:F8YqWP1o0
- >>18
>>19
比較しないと同じかわからんじゃん - 13 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 06:44:43.625 ID:tq3IW8Hr0
- オブジェクト同士の比較って==でできるか微妙な気がする
jsの場合文字列にして比較する必要があるけど - 14 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 06:46:10.197 ID:2t2aVJMFr
- オブジェクトが同一かどうかとフィールドが同一かどうかは別な話では
全く別のことしてどっちがいいも糞もないやろ - 17 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 06:49:45.415 ID:F8YqWP1o0
- >>14
>>15
オブジェクトとidは固定 - 24 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 06:56:48.328 ID:J6/JfPYF0
- >>17
一緒な訳ないだろ - 15 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 06:46:42.111 ID:CNtliThP0
- 意味不明
idを比較したいの??? - 19 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 06:50:29.680 ID:CEZGpqZb0
- 絶対に一つしかないなら比較しなくていいじゃん
- 21 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 06:51:38.562 ID:xqYGtnxNr
- じゃあ前者でええな
- 22 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 06:52:10.552 ID:F8YqWP1o0
- オブジェクトは1つでも同じクラスの別のオブジェクトは複数な
- 23 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 06:54:52.643 ID:a2F4OxHR0
- idで同一性を担保してるなら下しかないだろ
上でも期待する動作になるかもしれないけど設計思想としてはやっねはいけない
拡張性の問題でもある
演算子オーバーロードしてるなら別にいいけど - 27 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 07:00:04.226 ID:F8YqWP1o0
- >>23
下か>>24
同じidのオブジェクトは1つしか作られない>>25
厳密にはどっちが最適か - 29 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 07:06:13.908 ID:ed3ahh870
- >>27
下
aとbにid以外の要素ができた時にidは同じでも別ものとして扱われる時がある
ちゃんとしたって意味はおかしいけど、今回は良くても設計が変わったら通らないプログラムは書くべきではない - 25 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 06:57:49.133 ID:nmFbMPE+0
- ほらどっちが速いかの話してたのに論点ズレて話しはじめてるーそういうとこやぞー
- 26 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 06:59:57.628 ID:Bl0KQu7Ar
- 数msも変わらなさそうな速度の話とかどうでもいいし……
- 33 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 07:34:47.805 ID:047dXi77a
- >>26
組み込みもやってない文系プログラマー乙 - 28 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 07:06:05.675 ID:a2F4OxHR0
- 付け加えるとidで同一性を担保する仕様なら根幹のロジックは下のになるけど
外部から使う場合はIEquitable<T>インターフェースを実装してEqualsメソッドを使用しろ
そのままの記述だとidを比べてることはわかるけどそれ以上のことはコードからは知り得ない
実装が冗長になって面倒くさく思うかもしれないがそれがC#っていう言語だから - 30 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 07:08:01.187 ID:F8YqWP1o0
- なるほどねん
- 31 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 07:13:54.585 ID:Q8ucdvBm0
- どっちが速いかなんて計測すればいいだけ
- 32 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 07:28:14.593 ID:Os8KIZwfa
- aとbが同一人物かと言う検査と、aとbの持ってるidが被っている検査の速度を比べて、どうすんの?
- 34 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 07:50:22.207 ID:w7gKBqKYa
- そんなもん気にすんな
微々たるもんだたかだか素人の書いたif一個ぐらいPCは気にしねーよ
- 35 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 07:51:27.809 ID:w7gKBqKYa
- むしろ速度機にするより最初はメモリの使用量とかCPUの使用率を気にした設計の方が良い
高速化するのはリファクタリングで実施 - 36 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 07:57:25.523 ID:Os8KIZwfa
- と言うか、等価検査はこんなどっちも間違ってることで悩まずに、a.equals(b)を実装して、それだけを必ず使う
- 37 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 08:00:18.470 ID:w7gKBqKYa
- 似たようなことは思ったけど意味ないと思ったからスルーしたわ
そんなくだらないこと気にするならメモリとかCPUに気を配れって感じる - 38 名前:ひみつの名無しさん 投稿日時:2020/11/05(木) 08:03:10.427 ID:w7gKBqKYa
- 処理の一部だけ見て遅くなるからこっちとか分かってない状態でやっても無駄だし
全体動かしてここがクソ遅えってなってからリファクタリングが活きる
コメント