!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part153
https://mevius.5ch.net/test/read.cgi/tech/1639403601/
■関連スレ
C#, C♯, C#相談室 Part96
https://mevius.5ch.net/test/read.cgi/tech/1639965805/
■コードを貼る場合は↓を使いましょう。
https://ideone.com/
https://dotnetfiddle.net/
■情報源
https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries/
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/
https://docs.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
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
ふらっと C#,C♯,C#(初心者用) Part154
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 0fe3-wadS)
2022/02/09(水) 23:13:39.45ID:1A90hyai0274デフォルトの名無しさん (ワッチョイ 132c-P46e)
2022/03/22(火) 10:34:09.76ID:G7lfoYcY0 Disposeでマネージ/アンマネージってことは
protected virtual Dispose(bool disposing)
のdisposingの真偽で何を解放すべきかってことだよね
.NETのオブジェクトとして存在しているモノがマネージリソース
大体は自分がメンバに持ってるIDisposableなオブジェクトを意味する
これらはdisposing==trueのときだけDisposeすればいい
アンマネージリソースはWindowsのAPIとかで直接確保したデバイスコンテキストとかメモリ
大抵はIntPtr型で保持している
こういうのはそれぞれのリソースの解放方法に従った方法で直接解放する
これらはdisposingに関わらず常に解放する
protected virtual Dispose(bool disposing)
のdisposingの真偽で何を解放すべきかってことだよね
.NETのオブジェクトとして存在しているモノがマネージリソース
大体は自分がメンバに持ってるIDisposableなオブジェクトを意味する
これらはdisposing==trueのときだけDisposeすればいい
アンマネージリソースはWindowsのAPIとかで直接確保したデバイスコンテキストとかメモリ
大抵はIntPtr型で保持している
こういうのはそれぞれのリソースの解放方法に従った方法で直接解放する
これらはdisposingに関わらず常に解放する
275デフォルトの名無しさん (ワッチョイ 51d2-3X4l)
2022/03/22(火) 10:35:59.07ID:OaCGWLhd0 > いちいち継承元全部辿ってIDisposableあるか確認して手動で開放しないとリークしまーすとかいう欠陥言語
分かってるよ。話の本質は、馬鹿がヘジが開発した言語にマウンティングした、ということだろう。
だがその試みは失敗した。それだけ。
なんならwin32リソースについて言語はどう管理すべきいくらでもキミの意見を語っていいんだぜ?
だがキミからは何も出てこない。知ったか初心者だからだ。
分かってるよ。話の本質は、馬鹿がヘジが開発した言語にマウンティングした、ということだろう。
だがその試みは失敗した。それだけ。
なんならwin32リソースについて言語はどう管理すべきいくらでもキミの意見を語っていいんだぜ?
だがキミからは何も出てこない。知ったか初心者だからだ。
276デフォルトの名無しさん (ブーイモ MMeb-n2Eo)
2022/03/22(火) 11:53:43.00ID:myN/pITuM そうカッカすんなよおっさん見苦しいぞ
277デフォルトの名無しさん (ワッチョイ 8bbb-216p)
2022/03/22(火) 12:15:11.68ID:kAgwAO/L0 >>275
顔真っ赤で草
顔真っ赤で草
278デフォルトの名無しさん (ワッチョイ 51d2-3X4l)
2022/03/22(火) 12:31:50.91ID:OaCGWLhd0 初歩的なリソース管理程度で発狂して言語貶してるド初心者に
馬鹿にされてキレるわけないだろう。馬鹿かこいつ、としか思わん。
馬鹿にされてキレるわけないだろう。馬鹿かこいつ、としか思わん。
279デフォルトの名無しさん (ワッチョイ 8b63-whB1)
2022/03/22(火) 15:52:49.70ID:XhX0v2Lu0 その調子で血管切って死なねーかな
280デフォルトの名無しさん (テテンテンテン MMeb-zKmY)
2022/03/22(火) 17:16:17.21ID:pk95uqSaM あああああああああああああああああああああああああああああああ!!!!!!!!!!!(ブリブリブリブリュリュリュリュリュリュ!!!!!!ブツチチブブブチチチチブリリイリブブブブゥゥゥゥッッッ!!!!!!!)
281デフォルトの名無しさん (ワッチョイ 2979-zSlE)
2022/03/22(火) 19:17:57.13ID:kPYOUkgu0 そもそもc#のデストラクタが産廃だからあてにしてる動作だろ
282デフォルトの名無しさん (スップ Sd73-2DeC)
2022/03/22(火) 19:49:04.13ID:1zUmccnld GC(マークアンドスイープ)+FinalizeとDisposeの相性が悪いだけだろ
C#に限った話じゃない
C#に限った話じゃない
283デフォルトの名無しさん (ワッチョイ 4901-cTkz)
2022/03/22(火) 20:58:45.96ID:hNvbiY4S0 exe終了したら何もかも解放されるんでしょ?
284デフォルトの名無しさん (アウアウウー Sa5d-580B)
2022/03/22(火) 21:05:08.48ID:HvRJN3MAa 基本的には終了で開放だけど、すべてが開放されるとは限らない
よくあるのがexe内部でexcel使ったら、exe終了してもexcelのプロセス残ったままみたいなやつ
よくあるのがexe内部でexcel使ったら、exe終了してもexcelのプロセス残ったままみたいなやつ
285デフォルトの名無しさん (ワッチョイ 8bbb-216p)
2022/03/22(火) 21:09:25.23ID:kAgwAO/L0286デフォルトの名無しさん (テテンテンテン MMeb-NT4g)
2022/03/22(火) 21:19:04.18ID:Ky9cYioTM またいつもの質問者そっちのけでの罵倒合戦かよ・・・・・
アンマネージドリソースは文字通りC#の管理下にない(un-managedな)リソース
具体的にはunsafeで確保した配列・ポインタやWin32APIを呼び出して確保したIntPtrなど
Disposeのタイミングで適切な手法で(それこそWin32APIを呼ぶなどして)リソース解放しないとメモリリークする
マネージドリソースはC#の管理下にあるリソース全般
FileStreamやDbConnection、Bitmapオブジェクトなどもこれ
そういうオブジェクトをクラス内のメンバ変数で持ってるなら、Disposeメソッド内で
それらのメンバ変数のDispose()を呼ぶことでリソース解放するお約束になってる
>>263の説明はデタラメもいいとこだしそもそも「IDispose」ってなんだよ
>>263のデタラメに気付かずC#を欠陥言語呼ばわりするために乗っかった>>266の言ってることも同じくデタラメなんだけど
こいつは罵倒マウンティングすること自体が目的でわざとデタラメに乗ってるのかそれとも素で理解してないのかは分からん
アンマネージドリソースは文字通りC#の管理下にない(un-managedな)リソース
具体的にはunsafeで確保した配列・ポインタやWin32APIを呼び出して確保したIntPtrなど
Disposeのタイミングで適切な手法で(それこそWin32APIを呼ぶなどして)リソース解放しないとメモリリークする
マネージドリソースはC#の管理下にあるリソース全般
FileStreamやDbConnection、Bitmapオブジェクトなどもこれ
そういうオブジェクトをクラス内のメンバ変数で持ってるなら、Disposeメソッド内で
それらのメンバ変数のDispose()を呼ぶことでリソース解放するお約束になってる
>>263の説明はデタラメもいいとこだしそもそも「IDispose」ってなんだよ
>>263のデタラメに気付かずC#を欠陥言語呼ばわりするために乗っかった>>266の言ってることも同じくデタラメなんだけど
こいつは罵倒マウンティングすること自体が目的でわざとデタラメに乗ってるのかそれとも素で理解してないのかは分からん
287デフォルトの名無しさん (ワッチョイ 8bcf-noGs)
2022/03/22(火) 21:23:17.10ID:0A7XAa2y0 C++/CLIならデストラクタが使えるから問題ないんだよな。捨てたのはもったいない。
288デフォルトの名無しさん (ワッチョイ 8bbb-216p)
2022/03/22(火) 21:31:04.74ID:kAgwAO/L0 それな
GCとかの仕組み上どうしても無理でしたってんなら納得逝くんだけどその辺知りたい
GCとかの仕組み上どうしても無理でしたってんなら納得逝くんだけどその辺知りたい
289デフォルトの名無しさん (スップ Sd73-foG8)
2022/03/22(火) 21:39:13.30ID:6LsnJNlYd >>285
スコープ外れたってどうやって判断するの?
スコープ外れたってどうやって判断するの?
290デフォルトの名無しさん (ワッチョイ f9ac-MdQT)
2022/03/22(火) 21:39:56.93ID:3weeWjHs0 というかここら辺はサンプルというか、実際使ってるコードみないとピンとこんよな
これは意味あるIdisposable、こっちは意味ないとかで
これは意味あるIdisposable、こっちは意味ないとかで
291デフォルトの名無しさん (スップ Sd73-2DeC)
2022/03/22(火) 21:41:21.16ID:1zUmccnld >>287
ref class C{
~C(){} // Destructor
!C(){} // Finalizer
};
のコンパイル結果が
// C# DLL
class C:IDisposable{
Dispose(); //Destructor???
~C();//Finalizer
}
であることをご存知でない?
ref class C{
~C(){} // Destructor
!C(){} // Finalizer
};
のコンパイル結果が
// C# DLL
class C:IDisposable{
Dispose(); //Destructor???
~C();//Finalizer
}
であることをご存知でない?
292デフォルトの名無しさん (ワッチョイ 51d2-3X4l)
2022/03/22(火) 21:46:59.16ID:OaCGWLhd0 C#を欠陥言語呼ばわりするだけあってGCが何かすら知らないアホの子だったとさ。
ヤレヤレ ┐(´ー`)┌ マイッタネ
ヤレヤレ ┐(´ー`)┌ マイッタネ
293デフォルトの名無しさん (ワッチョイ 8bbb-216p)
2022/03/22(火) 21:51:59.68ID:kAgwAO/L0294デフォルトの名無しさん (ワッチョイ 2979-zSlE)
2022/03/22(火) 21:52:39.06ID:kPYOUkgu0 >>283
されねーんじゃねーか?
俺はあふれるまで動かないって言ってるじゃん
msdnより
ガベージ コレクションの条件
ガベージ コレクションは、次のいずれかの条件に当てはまる場合に発生します。
システムの物理メモリが少ない場合。 OS からのメモリ不足通知またはホストによって示されたメモリ不足のいずれかによって検出されます。
マネージド ヒープで割り当てられたオブジェクトによって使用されているメモリが、許容されるしきい値を超える場合。 このしきい値は、プロセスの進行に合わせて絶えず調整されます。
GC.Collect メソッドが呼び出されます。 ほとんどの場合、ガベージ コレクターは継続して実行されるため、このメソッドを呼び出す必要はありません。 このメソッドは、主に特別な状況やテストで使用されます。
されねーんじゃねーか?
俺はあふれるまで動かないって言ってるじゃん
msdnより
ガベージ コレクションの条件
ガベージ コレクションは、次のいずれかの条件に当てはまる場合に発生します。
システムの物理メモリが少ない場合。 OS からのメモリ不足通知またはホストによって示されたメモリ不足のいずれかによって検出されます。
マネージド ヒープで割り当てられたオブジェクトによって使用されているメモリが、許容されるしきい値を超える場合。 このしきい値は、プロセスの進行に合わせて絶えず調整されます。
GC.Collect メソッドが呼び出されます。 ほとんどの場合、ガベージ コレクターは継続して実行されるため、このメソッドを呼び出す必要はありません。 このメソッドは、主に特別な状況やテストで使用されます。
295デフォルトの名無しさん (ワッチョイ 8bcf-noGs)
2022/03/22(火) 21:53:03.08ID:0A7XAa2y0 >>291
スコープを外れたときに自動的にDispose()が呼ばれるから問題ないってことなんだが。
スコープを外れたときに自動的にDispose()が呼ばれるから問題ないってことなんだが。
296デフォルトの名無しさん (スップ Sd73-2DeC)
2022/03/22(火) 22:22:58.92ID:1zUmccnld >>288
お前はメモリとかリソースの管理を他の言語でどうしてるかもっと勉強するべきだ
C/C++がユーザーに全部丸投げしてるのがいい加減辛いので言語側が管理すればいいんじゃね?ってのがGC。
GCの方式で主流なのは参照カウント方式とマークアンドスイープ方式。
参照カウント方式は循環参照(this._obj=this)があると回収されないから、
C#多少大きめのコストを支払ってでもマークアンドスイープ方式にした。
リソース解放のタイミングをコントロールしたけりゃIDisposable使え
解放漏れの保険でファイナライザ使え
https://ufcpp.net/study/csharp/rm_disposable.html
C#1.0のリリースが2002/02だから当時はそれでも充分だったんだろう
お前はメモリとかリソースの管理を他の言語でどうしてるかもっと勉強するべきだ
C/C++がユーザーに全部丸投げしてるのがいい加減辛いので言語側が管理すればいいんじゃね?ってのがGC。
GCの方式で主流なのは参照カウント方式とマークアンドスイープ方式。
参照カウント方式は循環参照(this._obj=this)があると回収されないから、
C#多少大きめのコストを支払ってでもマークアンドスイープ方式にした。
リソース解放のタイミングをコントロールしたけりゃIDisposable使え
解放漏れの保険でファイナライザ使え
https://ufcpp.net/study/csharp/rm_disposable.html
C#1.0のリリースが2002/02だから当時はそれでも充分だったんだろう
297デフォルトの名無しさん (テテンテンテン MMeb-NT4g)
2022/03/22(火) 22:39:21.44ID:Ky9cYioTM そもそもC#は「デストラクタなぞ使うべきではない」っていう思想だし
それゆえにリソースの解放はデストラクタではなくDispose()で行う
(万一Dispose()を呼び忘れた場合に備えて>>291の実装でデストラクタで救済するけど、これも
パフォーマンス上好ましくないんでDispose(bool disposing)みたいなDisposeパターンの書き方で処理を最小化する)
って方針で首尾一貫してるんだけどさあ
その方針にケチつけてデストラクタがクソだのIDispose確認がメンドクサイだの言ってる人たちのほうがおかしいだけなんだよ
>>273が
「話の本質わかってなくて草生える」
とか書いてるけどまさにそのとおり
それゆえにリソースの解放はデストラクタではなくDispose()で行う
(万一Dispose()を呼び忘れた場合に備えて>>291の実装でデストラクタで救済するけど、これも
パフォーマンス上好ましくないんでDispose(bool disposing)みたいなDisposeパターンの書き方で処理を最小化する)
って方針で首尾一貫してるんだけどさあ
その方針にケチつけてデストラクタがクソだのIDispose確認がメンドクサイだの言ってる人たちのほうがおかしいだけなんだよ
>>273が
「話の本質わかってなくて草生える」
とか書いてるけどまさにそのとおり
298デフォルトの名無しさん (テテンテンテン MMeb-NT4g)
2022/03/22(火) 22:49:13.09ID:Ky9cYioTM もひとつ気になってたんだけど、Dispose()呼び出しの必要性をいちいち確認して書くのが大変っていうけどホントかよ?
マネージドリソースを扱うにしたって、ローカル変数ならusingで書けばDisposeいらないよね?
最近のC#のバージョンなら中括弧で囲う必要すらなくなったよ?
クラス内のインスタンス変数だとしてもさあ、
DIで初期化するフィールドならDIコンテナに任せればDispose()呼ばなくていい
自前で生成初期化するフィールドだとしてもその個数もたかが知れてるしDisposeの要否も明快に分かるでしょ
それとも、自分で書いてるクラスの中がごちゃごちゃでDisposeが必要な変数がどれか把握しきれないってこと?
そんなクソみたいなゴミ溜めクラスしか書いてないのだとすれば、言語仕様じゃなくてクラス設計/実装能力の問題だと思うんだよね
マネージドリソースを扱うにしたって、ローカル変数ならusingで書けばDisposeいらないよね?
最近のC#のバージョンなら中括弧で囲う必要すらなくなったよ?
クラス内のインスタンス変数だとしてもさあ、
DIで初期化するフィールドならDIコンテナに任せればDispose()呼ばなくていい
自前で生成初期化するフィールドだとしてもその個数もたかが知れてるしDisposeの要否も明快に分かるでしょ
それとも、自分で書いてるクラスの中がごちゃごちゃでDisposeが必要な変数がどれか把握しきれないってこと?
そんなクソみたいなゴミ溜めクラスしか書いてないのだとすれば、言語仕様じゃなくてクラス設計/実装能力の問題だと思うんだよね
299デフォルトの名無しさん (テテンテンテン MMeb-NT4g)
2022/03/22(火) 22:56:19.99ID:Ky9cYioTM ごめん嘘書いた
>>291の実装はC++/CLIの話だったのか(ごめんC++/CLIはやったことがないので判らない)
Disposeパターンのデストラクタと似たようなものだと思い込んで混同しちゃってた
>>291の実装はC++/CLIの話だったのか(ごめんC++/CLIはやったことがないので判らない)
Disposeパターンのデストラクタと似たようなものだと思い込んで混同しちゃってた
300デフォルトの名無しさん (ワッチョイ 51d2-3X4l)
2022/03/22(火) 22:56:39.59ID:OaCGWLhd0 > そもそもC#は「デストラクタなぞ使うべきではない」っていう思想だし
聞いたことねーなw
デストラクタは非同期ですってだけだ。同期したいならdispose使えという単純な話でしかない。
聞いたことねーなw
デストラクタは非同期ですってだけだ。同期したいならdispose使えという単純な話でしかない。
301デフォルトの名無しさん (テテンテンテン MMeb-NT4g)
2022/03/22(火) 23:25:36.30ID:Ky9cYioTM あれどっかに書かれてたと思ったんだが・・・と思って調べたら
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/finalizers#explicit-release-of-resources
「高額な外部リソースを使用している場合」という限定で「明示的に解放する手段を用意することが推奨されます」
とはあったけど、デストラクタなど使うべきではないとまでは書かれてなかった
たしかにちょっと踏み込みすぎたか
てか「デストラクター」じゃなくて「ファイナライザー」って呼ぶように変わったのね・・・いつから?
そのわりに
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/language-specification/classes#destructors
では「デストラクター」のままだったりしてるけど
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/finalizers#explicit-release-of-resources
「高額な外部リソースを使用している場合」という限定で「明示的に解放する手段を用意することが推奨されます」
とはあったけど、デストラクタなど使うべきではないとまでは書かれてなかった
たしかにちょっと踏み込みすぎたか
てか「デストラクター」じゃなくて「ファイナライザー」って呼ぶように変わったのね・・・いつから?
そのわりに
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/language-specification/classes#destructors
では「デストラクター」のままだったりしてるけど
302デフォルトの名無しさん (ワッチョイ 51d2-3X4l)
2022/03/22(火) 23:40:08.97ID:OaCGWLhd0 元々finalizeはCLR側の用語でデストラクタはC#側の用語。
MSのゆとり化が進んで馬鹿すぎて区別できなくなったんだよ。
MSのゆとり化が進んで馬鹿すぎて区別できなくなったんだよ。
303デフォルトの名無しさん (ワッチョイ 112f-kNuw)
2022/03/22(火) 23:47:20.01ID:3UvLvdTM0 デストラクタを実装したクラスはガベコレの効率が落ちる(世代があがる)からなるべく使うなって話だったはず
304デフォルトの名無しさん (テテンテンテン MMeb-NT4g)
2022/03/23(水) 00:14:26.29ID:fh4EIdzSM >>302 >>303 の書き込みをヒントに検索したら
https://ufcpp.net/study/csharp/rm_gc.html?sec=cost-to-finalize#finalize
このページにたどり着いて
デストラクタ→ファイナライザに呼び名が変わる理由もデストラクタのコストが極大なことも分かった
GC.SuppressFinalize()っていままで意味が分からないまま機械的に書いてたけど大事だったのね
いろいろ賢くなれた、ありがとう
https://ufcpp.net/study/csharp/rm_gc.html?sec=cost-to-finalize#finalize
このページにたどり着いて
デストラクタ→ファイナライザに呼び名が変わる理由もデストラクタのコストが極大なことも分かった
GC.SuppressFinalize()っていままで意味が分からないまま機械的に書いてたけど大事だったのね
いろいろ賢くなれた、ありがとう
305デフォルトの名無しさん (ワッチョイ 8b63-whB1)
2022/03/23(水) 06:24:39.80ID:XsByKBbP0 ならなくていいから直近50レス以内で俺以外に書き込んでるやつは直ちに全員頭かち割って中央線の始発に飛び込んで死ね
306デフォルトの名無しさん (ブーイモ MMeb-n2Eo)
2022/03/23(水) 06:36:55.59ID:Br4OtuZoM 長文ゲェジ共空気読めよ
(ユーザーが)欠陥言語
確かに間違ってねーな
(ユーザーが)欠陥言語
確かに間違ってねーな
307デフォルトの名無しさん (ブーイモ MM4d-NnL5)
2022/03/23(水) 23:47:04.44ID:blfYR8q/M デストラーデがどうしたって?
308デフォルトの名無しさん (ワッチョイ 1302-dhUW)
2022/03/24(木) 04:45:47.25ID:AIr8SSYM0 ゼントラーディがキュンキュン☆
309デフォルトの名無しさん (ワッチョイ 9e68-VQaK)
2022/03/27(日) 19:21:45.49ID:ThH+K+970 float,double型について質問です。基本的に精度のたかいdouble型オンリーで良いと思います。
double型だけじゃなくfloat型が混ざっているソースをみるのですがそれは何故でしょうか?
double型だけじゃなくfloat型が混ざっているソースをみるのですがそれは何故でしょうか?
310デフォルトの名無しさん (ワッチョイ 5e7b-+Ivz)
2022/03/27(日) 19:25:09.32ID:p42Vgj/c0 >>309
C#に限った話じゃないがdoubleの方がメモリを多く使って計算速度も遅くなるから
C#に限った話じゃないがdoubleの方がメモリを多く使って計算速度も遅くなるから
311デフォルトの名無しさん (ワッチョイ 9e68-VQaK)
2022/03/27(日) 19:30:11.97ID:ThH+K+970312デフォルトの名無しさん (ワッチョイ 5ecf-+Ivz)
2022/03/27(日) 20:53:18.65ID:rqiHHq3k0 floatとdoubleの混用なんてそんな傾向が見いだせるほど頻繁に使われているとは思えんが。
たまたま見たそのコードではそういう使い方をしていたに過ぎないんでは。
たまたま見たそのコードではそういう使い方をしていたに過ぎないんでは。
313デフォルトの名無しさん (ワッチョイ 3179-yByv)
2022/03/27(日) 22:06:23.31ID:XoV4gFeA0 昔のコードをまだ使っててfloatのとこがあるって理由じゃねーかな?
314デフォルトの名無しさん (ワッチョイ b1d2-JyYd)
2022/03/27(日) 22:32:37.28ID:K7MWSPEs0 C++では機械学習と3Dレンダリングでの並列化を目的にfloat16_tとかいう概念が生産されたりしてるからfloat自体は過去の遺物ってほどでもない
C#だと実行速度を気にするよりも開発を楽にすることを重視することが多いからdoubleオンリーでいいのは確か
C#だと実行速度を気にするよりも開発を楽にすることを重視することが多いからdoubleオンリーでいいのは確か
315デフォルトの名無しさん (ワッチョイ 6502-QEpm)
2022/03/27(日) 23:11:31.46ID:HQutMm3I0 専用命令とかでベクトル演算するなら、floatの方が同時に演算出来る数が多いから単純に速くなる
316デフォルトの名無しさん (ワッチョイ a901-oYu3)
2022/03/28(月) 01:08:53.91ID:TOp/Y7AF0 まぁ精度や速度がクリティカルでなければ悩む時間が無駄だしdoubleでいいでしょ
317デフォルトの名無しさん (オッペケ Sr79-qy3V)
2022/03/28(月) 09:26:10.00ID:1rap9yocr318デフォルトの名無しさん (ワッチョイ 92ad-Xzp3)
2022/03/28(月) 09:29:45.95ID:MxvDEKd20 いまだにダウトとか言う香具師っているんだな
ダウトとか今日日聞かねえわ
ダウトとか今日日聞かねえわ
319デフォルトの名無しさん (ワッチョイ ad49-+/qe)
2022/03/28(月) 11:03:16.37ID:9Kb03WZY0 というかそれぞれの場合過ぎるやろ
「基本doubleでいい」には自分は同意するけど、
別にfloat使ってたからって誤差が問題ないなら何も言わない
わざわざ変換を何度もして計算してたら気にするけども、そこまで求められる現場もそう多くないのでは
「基本doubleでいい」には自分は同意するけど、
別にfloat使ってたからって誤差が問題ないなら何も言わない
わざわざ変換を何度もして計算してたら気にするけども、そこまで求められる現場もそう多くないのでは
320デフォルトの名無しさん (ワッチョイ debb-a3iW)
2022/03/28(月) 11:19:15.17ID:8MPYL/o90 >>318
∧_∧ / ̄ ̄ ̄ ̄ ̄
( ´∀`)< オマエモナー
( ) \_____
| | |
(__)_)
∧_∧ / ̄ ̄ ̄ ̄ ̄
( ´∀`)< オマエモナー
( ) \_____
| | |
(__)_)
321デフォルトの名無しさん (アウアウウー Sacd-j7M0)
2022/03/28(月) 11:25:55.09ID:28On/6D6a 整数でも他との型を合わせる以外 int を使うし、実数も基本 double でいいのでは
322デフォルトの名無しさん (テテンテンテン MM96-LqrM)
2022/03/28(月) 11:39:56.75ID:TN58deSDM 遅くても小数以下の精度が重要ならdecimal使え
323デフォルトの名無しさん (ブーイモ MMd5-nQMq)
2022/03/28(月) 11:48:23.50ID:VjMRJ3XsM floatは結構簡単に精度の低さが問題として表面化するよ
longとintの比ではない
longとintの比ではない
324デフォルトの名無しさん (テテンテンテン MM96-LqrM)
2022/03/28(月) 12:15:41.21ID:TN58deSDM 結局のところ、用途次第では
325デフォルトの名無しさん (アウアウクー MM39-121j)
2022/03/28(月) 14:04:59.59ID:iWC4w4vVM 実際のビジネスシステム構築ではDecimal型使う場合が多い
326デフォルトの名無しさん (ワッチョイ ad49-+/qe)
2022/03/28(月) 14:21:08.92ID:9Kb03WZY0 そうかなあ。。
327デフォルトの名無しさん (ワッチョイ debb-a3iW)
2022/03/28(月) 14:25:47.66ID:8MPYL/o90 精度云々言ってるやつはせめて具体な影響の例も書こうぜ
328デフォルトの名無しさん (ラクッペペ MM96-gZpx)
2022/03/28(月) 14:27:32.27ID:3kQaQ/3DM sqlサーバーのnumeric(4,0)とかをEFでモデル作るとdecimalになるけど
お前らそのまま使ってる?
お前らそのまま使ってる?
329デフォルトの名無しさん (ワッチョイ b1d2-JyYd)
2022/03/28(月) 14:37:28.69ID:TgL79h+20 >>317
float演算もdouble演算もハードウェアがサポートしてるけどdoubleの方がクロック数消費が多い
float演算もdouble演算もハードウェアがサポートしてるけどdoubleの方がクロック数消費が多い
330デフォルトの名無しさん (ワッチョイ f5d2-0aOS)
2022/03/28(月) 14:41:13.92ID:DkKihmtS0 参考にどうぞ
MOVSS xmm, [m32] L: [memory dep.] T:0.50c
MOVSD xmm, [m64] L: [memory dep.] T:0.50c
MULSS xmm, xmm L:4.0c T:0.50c
MULSD xmm, xmm L:4.0c T:0.50c
MOVSS xmm, [m32] L: [memory dep.] T:0.50c
MOVSD xmm, [m64] L: [memory dep.] T:0.50c
MULSS xmm, xmm L:4.0c T:0.50c
MULSD xmm, xmm L:4.0c T:0.50c
331デフォルトの名無しさん (ワッチョイ b1d2-JyYd)
2022/03/28(月) 14:45:52.84ID:TgL79h+20 Ryzenのdatasheet過去に見たけど今検索しても見つからなくて困ってる
SIMD含め命令の消費クロック数とか全部書いてたのに...
SIMD含め命令の消費クロック数とか全部書いてたのに...
332デフォルトの名無しさん (アウアウウー Sacd-JpNp)
2022/03/28(月) 14:47:28.95ID:TuD9lj1za >>327
floatだと日本の人口(1億2550万2290人)すら代入できない
floatだと日本の人口(1億2550万2290人)すら代入できない
333デフォルトの名無しさん (ワッチョイ f5d2-0aOS)
2022/03/28(月) 14:59:00.88ID:DkKihmtS0 Ryzen 5
MULSS xmm, xmm L:3.0c T:0.50c
MULSD xmm, xmm L:4.0c T:0.50c
Intelより速いですな。
MULSS xmm, xmm L:3.0c T:0.50c
MULSD xmm, xmm L:4.0c T:0.50c
Intelより速いですな。
334デフォルトの名無しさん (ワッチョイ debb-a3iW)
2022/03/28(月) 15:06:53.09ID:8MPYL/o90 はえー
335デフォルトの名無しさん (スッップ Sdb2-FX9+)
2022/03/28(月) 15:46:24.33ID:PX19Xk7jd C#でNTFSのMFTデータ取得とHDDにセクタ(?)単位で読み書きしたいです。
出来るなら関数とかを教えて欲しいですよろしくお願いします。
出来るなら関数とかを教えて欲しいですよろしくお願いします。
336デフォルトの名無しさん (ワッチョイ b12c-XwpL)
2022/03/28(月) 16:10:41.34ID:bggr0gZp0 YouTube でよく見るけど、
Ryzen は高いけど、Intel 12世代に負けているでしょ?
Ryzen は高いけど、Intel 12世代に負けているでしょ?
337デフォルトの名無しさん (ワッチョイ f5d2-0aOS)
2022/03/28(月) 16:15:23.65ID:DkKihmtS0 NVIDIA GeForce RTX 3060
FP32 (float) performance 12.74 TFLOPS
FP64 (double) performance 199.0 GFLOPS (1:64)
FP32 (float) performance 12.74 TFLOPS
FP64 (double) performance 199.0 GFLOPS (1:64)
338デフォルトの名無しさん (ワッチョイ 5ee3-q+eG)
2022/03/28(月) 19:15:33.23ID:yX/3nbFs0 Intel12世代コアで雑にマルチスレッドプログラム動かしても大丈夫だよね?
下手にEコア引くみたいなことは無いと思うけどさ
下手にEコア引くみたいなことは無いと思うけどさ
339デフォルトの名無しさん (ワッチョイ 9202-q+eG)
2022/03/28(月) 21:00:15.79ID:dJWBHkZn0 AVX-512を有効化して使うことができる石を使っている…だと!?
340デフォルトの名無しさん (アウアウウー Sacd-c/bJ)
2022/03/29(火) 08:08:07.07ID:D1mnE0bGa プログレスバーを継承したコントロールのOnPaintの中で
base.OnPaint();呼んでもバーの部分は描かれないの?
base.OnPaint();呼んでもバーの部分は描かれないの?
341デフォルトの名無しさん (ワッチョイ debb-a3iW)
2022/03/29(火) 08:48:22.02ID:xQkhmjZ40 試せばいいじゃん
342デフォルトの名無しさん (ワッチョイ f57c-YDa2)
2022/03/29(火) 10:21:34.64ID:ET94Xefu0 >>340
そもそも OnPaint は呼ばれない
そもそも OnPaint は呼ばれない
343デフォルトの名無しさん (テテンテンテン MM96-LqrM)
2022/03/29(火) 10:43:15.31ID:2DY4nmItM344デフォルトの名無しさん (ワッチョイ b124-GurK)
2022/03/29(火) 10:52:49.33ID:MRVYy1310345デフォルトの名無しさん (ワッチョイ 552f-XwpL)
2022/03/29(火) 22:37:57.81ID:YOHlvasK0 >>328
むしろdecimal以外をつかうなら、それDB側の型が妥当か疑わしいが
むしろdecimal以外をつかうなら、それDB側の型が妥当か疑わしいが
346デフォルトの名無しさん (ワッチョイ 655f-FX9+)
2022/03/30(水) 10:44:05.86ID:u/rQAHi50 >>344
WIN32API 含めて検索したら出てきたKernel32.dllのreadfile/writefileの引数にPHYSICALDRIVE指定したらできそう頑張ってみる、ありがとう。
WIN32API 含めて検索したら出てきたKernel32.dllのreadfile/writefileの引数にPHYSICALDRIVE指定したらできそう頑張ってみる、ありがとう。
347デフォルトの名無しさん (ワッチョイ 655f-FX9+)
2022/03/30(水) 10:44:38.10ID:u/rQAHi50 したらできそうじゃ無くてできるらしいだった
348デフォルトの名無しさん (ワッチョイ d980-DSQx)
2022/03/30(水) 12:07:06.02ID:7T4t4X1P0 外部のdll関数にintptr渡して実行する処理(HBitmapにポインタ合わせて投げる)
が複数の上記とは関係ない処理をまたいで有効になっている処理を2,3回繰り返すんですが
メモリリークしてます。
どのようにしたらメモリリーク防げるかおわかりでしたらお教えください。
渡すBitmapとポインタを常に同じメモリ使う様にすれば良い?のかなとは
思うのですがそこらへんのやり方等なにかご存知でしたらご教授くださいm(_ _)m
が複数の上記とは関係ない処理をまたいで有効になっている処理を2,3回繰り返すんですが
メモリリークしてます。
どのようにしたらメモリリーク防げるかおわかりでしたらお教えください。
渡すBitmapとポインタを常に同じメモリ使う様にすれば良い?のかなとは
思うのですがそこらへんのやり方等なにかご存知でしたらご教授くださいm(_ _)m
349デフォルトの名無しさん (テテンテンテン MM96-LqrM)
2022/03/30(水) 12:17:11.87ID:3gh732H7M ハンドルの解放わすれてるとかでは?
ループでぶん回すとメモリがリニアに増えてく箇所が無いかとか、まず場所を特定しなさい
ループでぶん回すとメモリがリニアに増えてく箇所が無いかとか、まず場所を特定しなさい
350デフォルトの名無しさん (ワッチョイ f5d2-0aOS)
2022/03/30(水) 14:56:51.43ID:oMfCMBWB0 newしたらdelete
getしたらrelease
mallocしたらfree
openしたらclose
すべてチェックするしかないですな。
むしろなぜ対にしてコードを書かないのか謎。あっC#だからか。
getしたらrelease
mallocしたらfree
openしたらclose
すべてチェックするしかないですな。
むしろなぜ対にしてコードを書かないのか謎。あっC#だからか。
351デフォルトの名無しさん (アウアウウー Sacd-j7M0)
2022/03/30(水) 17:56:20.90ID:nffiieLqa アンマネージなリソースはガベコレの対象外
352デフォルトの名無しさん (アウアウウー Sacd-1WDX)
2022/03/30(水) 20:34:58.75ID:hQhM7AVja アンマネージなリソース使うならIDisposableにしてusing内で使う
>>350みたいなのはやってられん
>>350みたいなのはやってられん
353デフォルトの名無しさん (ワッチョイ f5d2-0aOS)
2022/03/30(水) 21:44:16.77ID:oMfCMBWB0 さすがgdbでVSを超える男!!
354デフォルトの名無しさん (ワッチョイ b124-GurK)
2022/03/31(木) 10:19:23.23ID:mHRscCZz0 せめてref structだけはデストラクタ書いたらスコープ抜ける所で自動でデストラクタ呼び出ししてもらいたいわ
C++みたいに
まぁC++みたいにコピームーブ禁止にできないから複数回呼ばれちゃうことを考えたらそういう風にはづらいってことなんだろうけど
C++みたいに
まぁC++みたいにコピームーブ禁止にできないから複数回呼ばれちゃうことを考えたらそういう風にはづらいってことなんだろうけど
355348 (ワッチョイ d980-DSQx)
2022/03/31(木) 10:54:55.91ID:58En6M9E0 ご指摘ありがとうございます。
IntPtrを割り当てたBitmap分のメモリがやはり解放されてないのは特定しました。
gdi32.dllにあるDeleteObjectじゃなきゃ消せないみたいなページ見つけて試してみたら解放されました。お騒がせしましたm(_ _)m
IntPtrを割り当てたBitmap分のメモリがやはり解放されてないのは特定しました。
gdi32.dllにあるDeleteObjectじゃなきゃ消せないみたいなページ見つけて試してみたら解放されました。お騒がせしましたm(_ _)m
356デフォルトの名無しさん (ワッチョイ 851a-pZZ2)
2022/03/31(木) 11:08:50.02ID:evWCXRMT0 >>354
using使えば良いのでは
using使えば良いのでは
357デフォルトの名無しさん (ワッチョイ b124-GurK)
2022/03/31(木) 11:59:17.51ID:mHRscCZz0358デフォルトの名無しさん (アウアウウー Sacd-JpNp)
2022/03/31(木) 12:09:50.08ID:nbMZolC5a たまにusingはwin32リソース用だってかたくなにその用途以外を否定する奴いるけど別にそんなことないからな
意味ないusingはアホだけど
意味あるusingは恥ずかしくないぞ
意味ないusingはアホだけど
意味あるusingは恥ずかしくないぞ
359デフォルトの名無しさん (テテンテンテン MM96-LqrM)
2022/03/31(木) 12:24:28.89ID:hS7dFlrlM SafeHandle使え
360デフォルトの名無しさん (ブーイモ MMad-QNkB)
2022/03/31(木) 12:43:51.28ID:/3uX6C5lM Disposeはデストラクタとは違うんだけどな
361デフォルトの名無しさん (アウアウウー Sacd-JpNp)
2022/03/31(木) 12:57:14.51ID:nbMZolC5a だったらc#のデストラクタ使えばいいw
それだと望み通りの挙動しないからusing使えばって話だろ・・・
それだと望み通りの挙動しないからusing使えばって話だろ・・・
362デフォルトの名無しさん (ワッチョイ b124-GurK)
2022/03/31(木) 13:22:42.01ID:mHRscCZz0363デフォルトの名無しさん (アウアウウー Sacd-JpNp)
2022/03/31(木) 13:32:55.92ID:nbMZolC5a using使ってデストラクタって意味じゃないぞ
using使ったらdisposeが必ず動くって意味だろ。dispose持ってるクラス本体の開放は仕方ないがそれ以外ならなんとかなるってこと
using使ったらdisposeが必ず動くって意味だろ。dispose持ってるクラス本体の開放は仕方ないがそれ以外ならなんとかなるってこと
364デフォルトの名無しさん (ブーイモ MM96-nQMq)
2022/03/31(木) 14:26:29.77ID:6RpIJweLM そもそもref structはいわゆる「所有権の借用」を扱う仕組みだろ
通常、ref structは自身のフィールドに持つref型の値を解放する責任を持たない
リソースの解放をしやすくすることを目的にref structを使うのは本来の目的から逆行しており、明らかに誤用だ
通常、ref structは自身のフィールドに持つref型の値を解放する責任を持たない
リソースの解放をしやすくすることを目的にref structを使うのは本来の目的から逆行しており、明らかに誤用だ
365デフォルトの名無しさん (ワッチョイ 851a-pZZ2)
2022/03/31(木) 14:30:13.37ID:evWCXRMT0 使い終わったら解放してね(はぁと
↑この前提がドキュメントに書かれていれば必ず呼ばれるはず
でなきゃバグるだけなのに「必ず呼ばれる訳ではない」というのは辻褄が合わなくない?
↑この前提がドキュメントに書かれていれば必ず呼ばれるはず
でなきゃバグるだけなのに「必ず呼ばれる訳ではない」というのは辻褄が合わなくない?
366デフォルトの名無しさん (ワッチョイ b124-GurK)
2022/03/31(木) 14:44:13.32ID:mHRscCZz0 >>363
C#ってstructにデストラクタ書けないから当たり前やん
C#ってstructにデストラクタ書けないから当たり前やん
367デフォルトの名無しさん (ワッチョイ b124-GurK)
2022/03/31(木) 15:02:10.43ID:mHRscCZz0368デフォルトの名無しさん (ブーイモ MMd5-QNkB)
2022/03/31(木) 15:07:59.31ID:vlNZ1mGnM >他人には公開できない
このキーワードで時間の無駄だと気付くべきだったわ
このキーワードで時間の無駄だと気付くべきだったわ
369デフォルトの名無しさん (スップ Sdb2-JyYd)
2022/03/31(木) 15:16:52.15ID:tugEDnGHd スコープアウト時点で解決されないのにデストラクタなんて用語使うからおかしくなるんだよ
Finalizeと呼べ
Finalizeと呼べ
370デフォルトの名無しさん (ワッチョイ 851a-pZZ2)
2022/03/31(木) 15:17:20.68ID:evWCXRMT0 >>367
そだねー、バイバイ!
そだねー、バイバイ!
371デフォルトの名無しさん (ワッチョイ debb-a3iW)
2022/03/31(木) 15:21:05.77ID:f+hSFW0H0 要約するとC#のデストラクタはゴミってことや
実際ゴミだし
実際ゴミだし
372デフォルトの名無しさん (ワッチョイ 6ea7-OgJM)
2022/03/31(木) 15:58:52.05ID:6NE6xHU80 基本的にC#のデストラクタはよっぽどの理由なない限り触らないかな
Javaみたいに割り切ってメソッドとして呼び出した方が早い気がする
Javaみたいに割り切ってメソッドとして呼び出した方が早い気がする
373デフォルトの名無しさん (ワッチョイ 5ecf-+Ivz)
2022/03/31(木) 21:12:01.42ID:EY1WgKK40■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 ★4 [蚤の市★]
- 元プロ野球選手・堂上隼人(43)を20代女性2人へのわいせつ未遂容疑で8回目の逮捕…これまでの被害者は10代・20代の女性11人に [Anonymous★]
- 【速報】 米トランプ政権声明 「中国が台湾を奪おうとする、いかなる試みも阻止する」 中国「レッドラインだ」 ★2 [お断り★]
- 【高校野球】なぜ『7回制』は反対多数でも止まらないか… 高野連が「全員の命」守るために貫く伝統より改革の姿勢 [冬月記者★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★5 [七波羅探題★]
- JAが"政府の備蓄米買い上げ"見越して価格下げず!?「古いコメは食用向きでないなどと理由をつけ...」専門家解説 ★2 [煮卵★]
- 戦後中国「賠償金は不要。悪いのは日本軍で日本人民は無辜、戦犯が裁かれればそれでよい」 [237216734]
- 【高市悲報】自衛隊「実は事前に現場海域で中国軍から空母での発着訓練をすると通告がありました」え…?😨 [931948549]
- 【高市悲報】自衛隊「実は事前に現場海域で中国軍から空母での発着訓練をすると通告がありました」え…?😨😨 [931948549]
- 【高市画像】ビッグマック、200円🍔 [683137174]
- もう疲れたよパトラッシュ......をVIPで発言して役6年
- 【悲報】山里亮太(南海キャンディーズ)さん [329329848]
