[過去ログ]
ふらっと C#,C♯,C#(初心者用) Part155 (1002レス)
ふらっと C#,C♯,C#(初心者用) Part155 http://mevius.5ch.net/test/read.cgi/tech/1655422932/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
58: デフォルトの名無しさん (スッププ Sdba-oPsP) [sage] 2022/06/23(木) 00:47:12.21 ID:VlRKcYRwd あと、Bの方は頻繁に同じ値が返ってないか? Randomの引数なしコンストラクタは現在のミリ秒単位の時刻をシードに設定するから、1ms以内に生成されたRandomオブジェクトは全て同じ結果を返すはず 前述の通りTextプロパティの変更は非常に重いので、値が変わらない場合は実際の変更を省略する実装になっている可能性がある http://mevius.5ch.net/test/read.cgi/tech/1655422932/58
66: デフォルトの名無しさん (ドコグロ MM92-cRYK) [sage] 2022/06/23(木) 11:22:03.54 ID:/qnvtXmgM >>58 これだろうな http://mevius.5ch.net/test/read.cgi/tech/1655422932/66
68: デフォルトの名無しさん (ワッチョイ 5a01-UZ+b) [sage] 2022/06/23(木) 12:07:07.81 ID:3EmxumxM0 >>58, 66 なるほど納得 俺環で再現しなかったのはFrameworkのバージョン違いが原因だった .NET Core以降は1ms以内でもシードが変わるようになってる http://mevius.5ch.net/test/read.cgi/tech/1655422932/68
82: デフォルトの名無しさん (ワッチョイ a75f-cRYK) [sage] 2022/06/23(木) 18:02:24.84 ID:a115LlJm0 >>51 >>58の情報を信じて書いたけど これで大体同じような数字が出たら>>58の通りベンチの取り方の問題のせいで出た差だと思うよ MethodA,MethodB自体は>>72も検証してくれた通り変わらないはず というか今MethodBのほうをどこかで使ってるんだとしたら、性能なんかより1ms以内連続して同じ値が出るような乱数でも問題無い使い方なのかを気にするべき public partial class Form1 : Form { public Form1() { InitializeComponent(); } private int _random = 0; private void Test(Func<int> func) { var sw = Stopwatch.StartNew(); var count = 10000; for (var i = 0; i < count ; i++) { label1.Text = func().ToString(); Application.DoEvents(); } sw.Stop(); Console.WriteLine($"{sw.ElapsedMilliseconds} msec"); } private int MethodA() { return _random++; } private int MethodB() { return (int)DateTimeOffset.Now.FromUnixTimeMilliseconds; } private void button1_Click(object sender, EventArgs e) { Test(MethodA); Test(MethodB); } } http://mevius.5ch.net/test/read.cgi/tech/1655422932/82
84: デフォルトの名無しさん (ワッチョイ 5a01-UZ+b) [sage] 2022/06/23(木) 18:14:56.67 ID:3EmxumxM0 label1.Text = func().ToString();を label1.Text = $”{i}: {func().ToString()}”;にでもすれば >>58が書いてる内容が原因かどうかはっきりわかるでしょ http://mevius.5ch.net/test/read.cgi/tech/1655422932/84
97: デフォルトの名無しさん (ワッチョイ ca2d-MKW/) [sage] 2022/06/23(木) 22:05:36.69 ID:pqpGOzkV0 .NET Core 6.0 Debugビルドにすると A,Bどちらも4500〜4600msec位で若干ばらつくがほぼ同じ 結局のところ、>>58が正解で、.NET Framework4.8のRandomの挙動の違いで Textプロパティの内部で処理がスキップされるか否かってことだろうね Randomの値の検証はもう面倒臭いからやらないけど http://mevius.5ch.net/test/read.cgi/tech/1655422932/97
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.034s