X



ふらっと C#,C♯,C#(初心者用) Part160

0001デフォルトの名無しさん (オイコラミネオ MM3f-idhC)
垢版 |
2024/02/11(日) 09:17:20.44ID:8k78Qd14M
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を3行冒頭に書くこと(1行分は消えて表示されない為、もう1行は予備)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください。見かけたらNGしましょう。相手してしまったらあなたも荒らしです
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part159
http://mevius.5ch.net/test/read.cgi/tech/1691454079/
■関連スレ
C#, C♯, C#相談室 Part97
https://mevius.5ch.net/test/read.cgi/tech/1671585518/
■コードを貼る場合は↓を使いましょう。
https://ideone.com/
https://dotnetfiddle.net/
初心者はまずVisual Studioを使いましょう。なおVisual Studioの使い方などに関しては各バージョンで違うので専用スレでお願いします
http://www.visualstudio.com/downloads/
■情報源
https://learn.microsoft.com/ja-jp/dotnet/standard/class-libraries
https://learn.microsoft.com/ja-jp/dotnet/csharp/language-reference/
https://learn.microsoft.com/en-us/dotnet/standard/class-libraries
https://referencesource.microsoft.com/
https://source.dot.net/
・Insider.NET > .NET TIPS - @IT
https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html
・DOBON.NET .NET Tips
https://dobon.net/vb/dotnet/index.html
++C++; // 未確認飛行 C
https://ufcpp.net/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
0110デフォルトの名無しさん (ワッチョイ 9b7c-bwa2)
垢版 |
2024/03/09(土) 11:58:23.65ID:Iu7Z4MYl0
んでもってタプルで受け取るってか?
素直にfor使っとけよ
0112デフォルトの名無しさん (ワッチョイ 4f9b-Cl42)
垢版 |
2024/03/09(土) 12:18:23.65ID:BvGWNYiz0
foreachで順番通りにやらなきゃいけないオブジェクトではまったわ
0113デフォルトの名無しさん (ワッチョイ 0f7b-tjh4)
垢版 |
2024/03/09(土) 13:21:05.43ID:zvjNmKa50
>>100
「遅くなるような気がする」じゃなく実際に自分で測ってみたら?
「どちらが速いですか」などの質問も割とよく出るけど、処理内容によって変わるかもしれないのだから自分で測ってみるのが一番早い
https://atmarkit.itmedia.co.jp/fdotnet/dotnettips/412stopwatch/stopwatch.html
ここのSystem.Threading.Thread.Sleep(1000);を計測する処理に差し替えるだけでできる
0115デフォルトの名無しさん (ワッチョイ dfbd-zqCT)
垢版 |
2024/03/09(土) 15:49:39.64ID:6JAsN7LQ0
・記述を変更しても、コンパイラの最適化によって同じIL(中間言語)になる可能性もある。
・JITコンパイルでほとんど差がない可能性。
・AOTコンパイルで(略)
・C#を使っている時点で最速でないから、そんな速度差を気にするくらいならC/C++、Rust、アセンブラを使え。
0117デフォルトの名無しさん (ワッチョイ 5fd8-5fuq)
垢版 |
2024/03/09(土) 16:35:37.85ID:q35kPcPj0
>>100
> for (int i = 0; i < arrs.Length; i++) {......}
配列の範囲外アクセスのチェックを省略する最適化がかかるから変に凝った書き方はしない方が良い
> 変数iが無駄に思える
全てを代替出来る訳じゃないけど、可能ならforeachを使えば
0118デフォルトの名無しさん (ワッチョイ 3d78-WtKV)
垢版 |
2024/03/10(日) 10:17:52.32ID:lP5AIR460
最近の.NETはメジャーバージョンアップのたびに最適化されているから速度差はあまり気にしなくてもよくね?
どうしても高速化したいのならNativeAOT使おう
制限はあるけど使い慣れたC#で記述できるから最高だぞ
0120デフォルトの名無しさん (ワッチョイ 857c-1/rY)
垢版 |
2024/03/10(日) 12:07:18.56ID:akejiw/t0
>>119
ループの中で何を処理するかによっても違う
パラレル使う手も有るしね
0122デフォルトの名無しさん (オイコラミネオ MMe9-mSl3)
垢版 |
2024/03/10(日) 13:02:05.96ID:hwVh1yHaM
他と比べてとかそういうんじゃないんだよな
最初に作ったアプリをバグフィクスや機能追加していくと速度が落ちていくことがあると言うか大体落ちる
ひどいと今まで30秒で処理してたのが33秒になりましたとか

目算で思っていた範囲以上に遅くなるとちょっと嫌な気分
これが地味にダメージなんだよな
そういうのが積み重なると目も当てられない

それを避けるために日常的に無駄のないコードを心がけるのが精神衛生上良い
他でもない自分のため
0123デフォルトの名無しさん (ワッチョイ 22c3-5VC5)
垢版 |
2024/03/10(日) 13:59:58.74ID:GSLv/I2s0
昔での事だけど、Cじゃないんだけどさ
テーブルの各値を1つづつズラしてシフトする処理で1番目に初期値零を放り込むプログラム合ったんだけど
テーブル毎バサッとやったら3時間掛かってたのが10分でおわってワロタ記憶あるわ

なんでそれまで誰もやらなかったんだか(笑)
0124デフォルトの名無しさん (ワッチョイ 857c-1/rY)
垢版 |
2024/03/10(日) 15:42:57.59ID:akejiw/t0
>>122
そもそも30秒掛かってる時点で無いわ
30msにしてから言え
0125デフォルトの名無しさん (ワッチョイ 857c-1/rY)
垢版 |
2024/03/10(日) 15:45:45.05ID:akejiw/t0
>>123
C#でListに1万件ループでAddするのとAddRangeで一気に追加するのでは速度が段違いだよねって話みたいなもんか?
0131デフォルトの名無しさん (ワッチョイ 857c-1/rY)
垢版 |
2024/03/11(月) 20:00:19.72ID:zXXKqwJt0
なあ365のGraphSDKだけどv5凄く使い難くね?
特にページイテレーターとか糞じゃね?

全件取れるようにGetAll全部に用意しろ

イテレーターで1件ずつ取り出すのはそのままで良いから1ページ毎にAddRangeで追加出来る様に追加しろ
0132デフォルトの名無しさん (ワッチョイ 857c-1/rY)
垢版 |
2024/03/11(月) 20:01:20.76ID:zXXKqwJt0
あとGraphAPIはいつまでv1のままなんだ?
いい加減バージョン上げろよ
0134デフォルトの名無しさん (ブーイモ MM33-MuJl)
垢版 |
2024/03/21(木) 16:41:51.77ID:moGxTGPKM
ずいぶん過疎ったな
C#も終わりか
0135デフォルトの名無しさん (ワッチョイ 5972-ZAEI)
垢版 |
2024/03/21(木) 16:59:27.82ID:t4nv+V260
string.Splitはcharとstring両方受け付ける癖に
string.Joinはstringしか受け付けないの
なんでそんな一致しない仕様にしたのか
0136デフォルトの名無しさん (ワッチョイ a947-NBlB)
垢版 |
2024/03/21(木) 17:10:49.32ID:OJvp/zL30
>>135
古いバージョンを使ってるからだろ
0138デフォルトの名無しさん (ワッチョイ fb3f-y9/r)
垢版 |
2024/03/21(木) 20:00:01.06ID:ArDQta9F0
>>134
最強の言語だろーまじそう思う
0144デフォルトの名無しさん (ワッチョイ 817c-mjK0)
垢版 |
2024/03/21(木) 23:37:27.90ID:gM/gTjZ50
RxもC#が最初
0146デフォルトの名無しさん (ワッチョイ b9b6-A0KB)
垢版 |
2024/03/22(金) 00:46:25.75ID:ThNZh94P0
C#はMicrosoftが推してるってのもあって年々扱いやすくなってるし良い言語ではある
けどGUIライブラリ周辺は完全に力入れる方向性ミスってる
xamlなんかじゃなくて最初からmvcに注力してれば…
0147デフォルトの名無しさん (ブーイモ MM33-MuJl)
垢版 |
2024/03/22(金) 08:25:24.91ID:uj0DzyBTM
なんでAI用のライブラリが遅れてんだ?
結局インタプリタが正義なんじゃねーのか?
インタプリタで開発して完成したらネイティブコードに転換するような言語でいいんじゃね?
0150デフォルトの名無しさん (ワッチョイ 1398-+t/0)
垢版 |
2024/03/22(金) 13:07:30.18ID:WaRDxGiW0
そもそもGUIライブラリってそんなに作るの難しいのか?
MSほどの組織があればGUIライブラリなど数ヶ月で完成できるだろ
何が開発を阻害してるの?
Windows自体の問題なのかc#の問題なのか
0151デフォルトの名無しさん (ワッチョイ 817c-mjK0)
垢版 |
2024/03/22(金) 15:37:57.77ID:lbSknOc60
完成してるやん
自分が使いこなせないXAMLにイラついてる奴が居るだけでさ
0153デフォルトの名無しさん (ワッチョイ 817c-mjK0)
垢版 |
2024/03/22(金) 15:51:53.40ID:lbSknOc60
別にコードで書いても良いやん
0155デフォルトの名無しさん (ワッチョイ 817c-mjK0)
垢版 |
2024/03/22(金) 17:00:25.00ID:lbSknOc60
そういう事じゃ無くてコードでもXAMLと同じ事出来るじゃん
正確に言うとXAMLがコードに変換される訳だけど
0157デフォルトの名無しさん (ワッチョイ b9b6-A0KB)
垢版 |
2024/03/22(金) 17:40:59.96ID:ThNZh94P0
>>146 訂正 mvc→mvu

有名なアプリが大抵react、flutter、electron製な時点でお察し
当のMicrosoftでさえTeamsをMAUIで作ってない
0158デフォルトの名無しさん (オイコラミネオ MM55-ZAEI)
垢版 |
2024/03/22(金) 18:05:07.32ID:OqIAqLT2M
C#自体は最近はそう大きな変化はない
大体は他の言語の機能の後追いか内部のための変更が多い印象
全てを把握している人間は少ないのではないか

自分は過去のC#の言語の表現が好きだった
最近は記号の羅列や呪文に近くなっている
0162デフォルトの名無しさん (ワッチョイ 817c-mjK0)
垢版 |
2024/03/22(金) 19:30:19.70ID:lbSknOc60
>>161
何を示してるのか意味不明
0163デフォルトの名無しさん (ワッチョイ 51cf-7lhN)
垢版 |
2024/03/22(金) 19:39:52.80ID:Z4xnJ+m00
>>158
関数型言語を蛇蝎のごとく嫌ってそう
0167デフォルトの名無しさん (ワッチョイ f683-rfcW)
垢版 |
2024/03/24(日) 18:01:15.05ID:cEyTBQVH0
Add(int x int y)
{
return x+y
}

これ呼び出すのがシンプルにx+yって計算するよりも遅いです。
どうしたらいいですか?書いちゃったプログラム全部書き直しってのは絶対無理です。
ちなみに1回につき100万回くらい呼び出さないといけません。
0171デフォルトの名無しさん (オイコラミネオ MM91-Re1+)
垢版 |
2024/03/24(日) 19:33:22.45ID:MOMWvILCM
>>167
それがそのままなのかどうかは不明だけど基本的にはメソッド呼び出しは遅くなる
本当にごく限られた特定の場合だけインライン化と言う最適化が働いて速くなることがあるけど
それを過信してはいけないと思う
0174デフォルトの名無しさん (ワッチョイ f683-rfcW)
垢版 |
2024/03/24(日) 23:11:43.13ID:cEyTBQVH0
>>168>>173
ありがとうございます。

>>169
一部置き換えたのを計ったら早くなってたけど
全体では少し早くなった感じでした。

ちなMath.Powは何故か遅くMath.Sqrtはそうでもないのは
私の勘違いでしょうか。
0179デフォルトの名無しさん (オイコラミネオ MM91-Re1+)
垢版 |
2024/03/26(火) 22:28:12.39ID:1Bd4/Fy+M
「Spectre」と「Meltdown」みたいな重度のセキュリティーホール対策で実行速度は大幅に落ちた
セキュリティーホールをふさいで極端に言えば挙動が変わってるけど最初の挙動は本来期待しない動作

オプション指定しないと最適化されないのは想定している動作であり期待しない動作ではないのでバグではない
0180デフォルトの名無しさん (ブーイモ MMb2-wr8K)
垢版 |
2024/03/27(水) 11:23:20.06ID:Wk+cp7GVM
コンパイラの設定次第で究極的に速度重視とか、メモリ削減重視とかやれるんじゃねーの?
0183デフォルトの名無しさん (ワッチョイ 764a-zn4i)
垢版 |
2024/03/29(金) 23:10:39.70ID:KSJZSeRg0
C#に限ったことじゃないけど
BigInteger型があるのにBigFloat型が無いのは何でなのか?
どちらかというと後者のほうが科学技術計算とかで使い道あると思うんだが
0188デフォルトの名無しさん (ワッチョイ b501-7myW)
垢版 |
2024/04/01(月) 20:43:32.19ID:I0404dx50
>>183
科学技術計算でdouble精度を上回る有効数字桁数が必要とされることはほとんどない。
BigFloat型でと同様な計算は10の整数乗倍することによりBigInteger型でも可能。
0191デフォルトの名無しさん (スップ Sd03-Lkgf)
垢版 |
2024/04/02(火) 15:45:19.84ID:w+YAhrNed
巨大な行列の固有値が正確に必要な問題とかで4倍精度必要なケースあるけどな
0193デフォルトの名無しさん (ワッチョイ 4bb9-Lkgf)
垢版 |
2024/04/02(火) 21:23:57.28ID:zUNlFHMd0
>>192
使うぞ
逆に何を使うっていうんだ
0196デフォルトの名無しさん (ワッチョイ 4bb9-Lkgf)
垢版 |
2024/04/02(火) 21:31:32.43ID:zUNlFHMd0
有理数で巨大な行列の固有値計算とか冗談だろ
0199デフォルトの名無しさん (ワッチョイ 4bb9-Lkgf)
垢版 |
2024/04/03(水) 23:35:28.04ID:I9qDTX4l0
そもそも固有値計算は反復法で数値的に解く以外のアルゴリズムが絶望的に遅い
反復法で有理数を使うメリットは皆無
0201デフォルトの名無しさん (ワッチョイ e359-EsXa)
垢版 |
2024/04/05(金) 08:23:11.07ID:1tjV+Dtg0
MAUIで会員制のデータ計算、集計アプリ作ってて外部サーバーのMysqlに直撃繋いてSQL書いてるけど、問題ない?
(デスクトップアプリみたいな感じで)

PHPでWebAPI作るのが面倒だし、認証トークンがよく分からん。
0202デフォルトの名無しさん (ワッチョイ 1d7c-AIK3)
垢版 |
2024/04/05(金) 08:44:51.05ID:5kaK3dCP0
>>201
それってDBへの接続文字列が書かれたものがコンパイル済みとはいえクライアントにあるって事だろ

逆アセンブルは簡単にできるからDBに直接アクセスされてデータ消したりテーブル消したり出来るぞ

当然ながら会員データも他人の読めるので個人情報入ってたらアウト
損害賠償で乙
0203デフォルトの名無しさん (ワッチョイ 1d7c-AIK3)
垢版 |
2024/04/05(金) 08:47:55.10ID:5kaK3dCP0
MAUIで書いてるならWebAPIもC#で書けば良いじゃん
swaggerから簡単に生成出来るし

色々考えるとWebアプリの方が楽だぞ
レスを投稿する


ニューススポーツなんでも実況