プログラミング詳しい人ちょっときてえええええええええええええええええええええ

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
処理の一部だけ見て遅くなるからこっちとか分かってない状態でやっても無駄だし
全体動かしてここがクソ遅えってなってからリファクタリングが活きる

コメント

タイトルとURLをコピーしました