- 1 名前:デフォルトの名無しさん(ワッチョイ 1e06-m8Mb) mailto:sageteoff [2017/04/22(土) 08:52:00.93 ID:iVvswOrb0.net]
- ■Visual Studio 2017 Community(無償の統合開発環境)等はこちら
www.visualstudio.com/downloads/ ■コードを貼る場合はこちら ideone.com/ ■前スレ C#, C♯, C#相談室 Part92 echo.2ch.net/test/read.cgi/tech/1485589613/ ■次スレは>>970が建てる事。 建てられない場合は他を指定する事。 VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
- 982 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 12:55:52.71 ID:3ZaOSZpTa.net]
- 述語の部分が、
(1) 全要素を常に == で評価 (2) 全要素を同じ演算子で評価するが、==以外の演算子も使われる場合がある (3) 要素ごとに個別の評価方法 で最適な答えが変わりそうなんでその辺ははっきりした方がよかったかもね。 質問者は (a==1) || (a==4) || (a==5) || (a==7) の代替案を聞いてるんだから普通に考えれば要素数はそんなに多くないはずで パフォーマンス云々は風呂敷広げすぎだろうw
- 983 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 13:55:56.58 ID:Nfj27eon0.net]
- 議論の途中で申し訳ないのですが
例えば独自クラスで、こんなのがある。 独自クラス{ string name {get; set;} decimal num1 {get; set;} decimal num2 {get; set;} } というのがあって、グリッドビューにList〈独自クラス〉をデータソースとして渡して表示させたいのですが numは3,4,と増える可能性があります。(型はすべて同じ) この場合にソースコードをメンテナンスすることなくnumの増減に対応するにはどのようにすれば良いでしょうか?
- 984 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 14:46:12.80 ID:NjSnZzWN0.net]
- decimal[] num {get; set;}
とか、 Dictionary<int,decimal> num { get; set; } じゃダメなの? なんか設計レベルで問題がありそうな気もするけど。
- 985 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 15:03:54.49 ID:EUJr/Yte0.net]
- >>945
配列なりListなり使えばいいだけじゃねーの?
- 986 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 16:04:38.55 ID:lbgm80aQ0.net]
- 固定値でIFするのは好きじゃないな。
ソースの冒頭で定数を定義したい。
- 987 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 16:50:33.82 ID:fEIk0m7q0.net]
- >>945
列が可変になるのならデータテーブル使うのが楽だと思う。クラスでやるとしたらexpandoで作るもなくはないと思うけど、それなら上にある通りDictionaryの方がシンプルではないかと。
- 988 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 21:37:48.24 ID:5kU0Dorz0.net]
- >>944
質問者がオーバーヘッド気になるとか発言してるので、パフォーマンスを考慮することに意味はあるんじゃね まあ、ずらずらと手書き出来る程度の要素数ならどれ使っても大差ないって言っとくべきではあるかもしれんが
- 989 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 02:59:42.60 ID:01ls3eLR0.net]
- C#はセキュリティー的に問題があるので使わないほうがいい。
- 990 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 03:03:58.87 ID:uKTTdpNO0.net]
- >>951
詳しく
- 991 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 04:19:27.01 ID:6CrjVVG40.net]
- お前何回も見てるから詳しくしなくていい
- 992 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 08:33:58.12 ID:Q/LSKwqY0.net]
- >>953
詳しく []- [ここ壊れてます]
- 994 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 12:55:11.87 ID:xG/V/FM40.net]
- 一発でソースコード復元されるからか?
それを言ったらJavaも同じだから泥アプリとか簡単に解析出来るけど
- 995 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 15:29:31.29 ID:zDemJk6G0.net]
- それはMSも認識してるしフリーの難読化ツールが何個も出てるんやで
難読化が必要な理由 | Microsoft Docs https://docs.microsoft.com/ja-jp/previous-versions/visualstudio/visual-studio-2008/ms227271(v=vs.90)
- 996 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 20:24:10.57 ID:X7v05Ly8M.net]
- うちのソースは普通に難読だけどな
- 997 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 20:50:38.72 ID:phKvM6KvM.net]
- おれのソースコードはデフォで難読だから余裕
- 998 名前:デフォルトの名無しさん mailto:sage [2019/03/07(木) 00:13:41.81 ID:30anmeL+0.net]
- 難読化しないとってほどのソースコードなんてそんなに無いような気がするけどな…
そもそもOSSが当たり前みたいなこんな時代に
- 999 名前:デフォルトの名無しさん mailto:sage [2019/03/07(木) 01:10:43.27 ID:tnYmqFtJ0.net]
- >>959
見せられない処理はAPIの向こう側だしね
- 1000 名前:デフォルトの名無しさん mailto:sage [2019/03/07(木) 19:34:45.84 ID:Kf1DGo5Q0.net]
- ゲームは改造対策に難読化したほうが良さげ
- 1001 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 13:12:26.41 ID:5Js7CVOV0.net]
- オリジナルソースがスパゲッティでも
ILSpyなんかを通すとオリジナルより見やすく逆コンパイルしてくれるからな。
- 1002 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 14:21:31.67 ID:p3uWfhXt0.net]
- そんなのあるんだ?ありがたいな。スパゲティにはほとほと手を焼いてたんだ。きれいにしてくれるなら使ってみようかなw
- 1003 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 18:09:25.36 ID:XK/LB6aKd.net]
- メソッド単位は変わらないからプライベートやグローバル使いまくりのスパゲティはどうにもならないけどね
- 1004 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 19:36:48.59 ID:W3YxLksd0.net]
- 制御フロー難読化をやるとさらに汚くしてくれるからオススメ
- 1005 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 20:13:44.24 ID:S6VEx3Fw0.net]
- メソッドのローカル変数をきれいに整頓してくれるILSpy△
そろそろここも終わるけど C#, C♯, C#相談室 Part95 https://mevius.5ch.net/test/read.cgi/tech/1508168482/ でいいよね。隔離スレをわざわざ新しく立てる必要もないし
- 1006 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 19:31:23.01 ID:uF+nNtm+0.net]
- ライブラリレベルのオーバーヘッドを気にするのは止めましょう
ガベージコレクションが前提の言語を使ってる以上無駄な努力に終わります 性能絶対重視なら最初からCやASMで書いた方が良いし よほどのスパーハカーでもない限りそんな努力が報われるほどの性能差にならないと思われます
- 1007 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 21:34:22.29 ID:DpwzO91B0.net]
- ASM?
コンパイラに勝てると思ってるのか?
- 1008 名前: mailto:sage [2019/03/14(木) 21:49:31.03 ID:NTAm4EVS0.net]
- >>968
asm の教科書を書いていますが、「そのお題、asm で書く理由がない…」という深刻な問題に直面しています asm で書くのに適したお題は何かありませんか?
- 1009 名前:デフォルトの名無しさん [2019/03/14(木) 21:52:50.86 ID:SvZaCm1k0.net]
- 最初のCコンパイラかな
- 1010 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 22:53:26.94 ID:fi3bTXEpa.net]
- x86の機械語は知らんけど、CPUを汎用計算機ではなくHWとして使いたい場合は
直接機械語で書くしかないでしょう
- 1011 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 22:56:05.33 ID:6sRnwOjo0.net]
- CPUを汎用計算機じゃなくてHWとして使いたいようなニーズなんてほとんどの人にはねえだろw
- 1012 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 22:59:30.46 ID:fi3bTXEpa.net]
- だからASMなんて(今となっては)ニッチな需要しかないのでは?
- 1013 名前: mailto:sage [2019/03/14(木) 23:12:09.22 ID:NTAm4EVS0.net]
- >>973
その需要の一例を知
- 1014 名前:りたいですね… []
- [ここ壊れてます]
- 1015 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 23:13:00.27 ID:3EvgP48J0.net]
- >>969
ブート部分とかかな I/O命令とかを発行する部分もあるけどこっちはインラインアセンブラでもいいかな
- 1016 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 23:43:27.63 ID:fi3bTXEpa.net]
- >>974
必要を無視すればBCD演算とか。 最終的にBCD演算命令に翻訳されるようなコードをC#では(Cでも)書けないはず。 まあx86ならマルチメディア系の命令とかが王道なんだろうけどね知らんけど。
- 1017 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 23:48:39.57 ID:nlDJyEEg0.net]
- ニッチな事には変わりないけど、
https://ufcpp.net/blog/2018/12/hdintrinsic/ hardware intrinsicとか入ってくるし
- 1018 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 20:54:11.25 ID:lWIPCB/k0.net]
- 20年ぐらい前の1クロックが今より数十倍以上高価だった頃なら、
ASMによる人力高速化も(コスト的に見合うという点で)意味があった Cコードで表現されてない知識も使ってちっちゃな関数でも結構簡単に数十クロック程度は高速化できた Cコードで表現されてない部分を使えば、今もやろうとすれば高速化はできると思う(コストに見合わないだけで) (変数aとbは実はいつも a<b なのでこのニーモニックが使えるとか、 ここの条件判定文は実は別の変数を計算したときのレジスタのフラグと同じ意味なので計算しなおす必要はないとか) >>977 の話題に近いけど、 今ならASMの意味があるのはJITまわりとかかな?
- 1019 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 21:48:50.55 ID:D5NVJqkY0.net]
- コンパイラはパイプラインでデータハザードが起きない様に計算して命令の組み替えしたりする。
人間がそこまでできるかな? オレは20年ぐらい前にmemcpyを高速化するためにアセンブラで組んだ。 今思うとCで組んでコンパイラに最適化させるべきだったかもね。 若気の至りだ。
- 1020 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 00:00:03.09 ID:6P+M3e6E0.net]
- asmはコンピュータの仕組みを理解するにはうってつけの題材では有るね
最新の特殊命令なんか不要だが、68Kなんか最高の素材だと思うわ
- 1021 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 00:15:39.88 ID:sQCNGdE30.net]
- ERMSBなんかを考えるとコンパイラも小手先なんかね
実行ハードでスケールするか、安定的な最適化か 汎用性を考えれば普通は後者になるだろうけど というかC#ならCILレベルに留めるべきではねか
- 1022 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 05:39:50.41 ID:lafVI2fNM.net]
- WASMを最適化してくれ
- 1023 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 14:26:07.02 ID:gcoRXnnM0.net]
- 今やIoT用でもメモリMBクラスだろ
アセンブラでハック必要な用途なんてないだろな
- 1024 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 15:56:32.11 ID:zOgp3uDK0.net]
- >>982
wasmになる前のLLVMの段階で既に最適化が出来る。 あと、詳しくは分からないが、wasmになった後の最適化も、 Emscriptein の opt.exe で一応はできるらしい。 但し、asm.jsとの「グルー」が複雑に絡んでいるので、 何をやっているかを理解するのはかなり難しく、 wasmで最適化しているのか、asm.jsで最適化しているのかは 忘れてしまった。
- 1025 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 19:51:51.79 ID:Ox1b9ZEv0.net]
- スレを間違えたかと思っただろ
- 1026 名前:デフォルトの名無しさん [2019/03/16(土) 20:27:45.17 ID:0AnVFDDg0.net]
- スレ終わりなんだから内容気にせず埋めてしまえwここ即死判定もないし
GetFilesやGetDirectoriesのようなメソッドでエクスプローラーと同じ順に格納してくれるメソッドが欲しい ソートし直すのたまに
- 1027 名前:Yれてしまう []
- [ここ壊れてます]
- 1028 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 21:07:46.17 ID:d1qKciPD0.net]
- >>986
自分でユーティリティライブラリ作っとけば
- 1029 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 21:16:16.11 ID:LVoOn4ja0.net]
- >>986
こういうことじゃなくて? var files = Directory.GetFiles(@"C:\hoge").OrderBy(name => name).ToArray();
- 1030 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 21:24:01.46 ID:m10rap++a.net]
- >>988
そんな単純な話じゃないはず https://wiki.dobon.net/index.php?.NET%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0%B8%A6%B5%E6%2F111
- 1031 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 21:28:11.62 ID:aNdxzMMr0.net]
- エクスプローラーと同じ順って今のエクスプローラーにどれだけソート項目があるか知ってんのか・・・
- 1032 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 21:28:35.53 ID:fhPcOkRld.net]
- >>989
なるほど
- 1033 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 22:01:49.01 ID:wgxWGDdm0.net]
- IEEEでまだ規格化されてない多ビット長の四則演算や、超コンパクトに処理を書く方法とか
- 1034 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 07:10:24.22 ID:WBoQCy0zM.net]
- >>990
普通の頭持ってりゃ名前のソートであることぐらいはわかりそうなもんだけどなw
- 1035 名前:デフォルトの名無しさん [2019/03/20(水) 07:42:02.03 ID:74ozQqG6a.net]
- Visual Studioって2015と2017両方いれて、2015だけ綺麗にアンスコできる?
- 1036 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 07:54:36.58 ID:LAIwbd+70.net]
- >>994
単体で入れても綺麗には削除できんぞ
- 1037 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 09:19:38.34 ID:W/HUsmxnM.net]
- ワロタ
- 1038 名前:デフォルトの名無しさん [2019/03/20(水) 12:21:41.32 ID:NDw+q9p/a.net]
- >>995
ありがとう そ、それは置いといて(笑) どちらか片方だけアンスコしたときにもう片方に必要なもんを削除されたりはしない?
- 1039 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 12:41:43.72 ID:JR1ztFlDa.net]
- VSに限らず明らかなNGは後から古いバージョンをインストールする行為だけのはず
アンインストールに関しては「意図としては」大丈夫なように作ってあるはず。 やってみたら? 最悪新しい方の修復インストールかOSの復元機能で何とかなるでしょ
- 1040 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 14:05:02.42 ID:vc7KPojzd.net]
- 試してみて欲しい
俺のPCにもVisual Studio 2010から全バージョンインストールされてるから参考にする
- 1041 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 18:48:25.28 ID:jN76oFxX0.net]
- 2015だけ削除したいって何がしたいんだろ
C#使う分には複数バージョンあって困ることないし
- 1042 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 18:53:06.53 ID:CvIVS+n40.net]
- >>1000
使わないものを入れておいてもストレージ占有するだけ無駄じゃん 普通にある要求だと思うけど
- 1043 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 18:54:52.24 ID:jJ3kq/hZ0.net]
- 2015の後に2017入れて2015アンインストールしたけど問題なかった
そのあとふと2015入れてみたら俺環だろうけど2015でビルド出来なくなった。2017の方は問題なし そして問題のあった2015を再びアンインストールしたけど2017でずっと問題なし >>997 2017だけ使う分には問題ないはず
- 1044 名前:1001 [Over 1000 Thread.net]
- このスレッドは1000を超えました。
新しいスレッドを立ててください。 life time: 697日 10時間 2分 52秒
- 1045 名前:過去ログ ★ [[過去ログ]]
- ■ このスレッドは過去ログ倉庫に格納されています
|

|