>>951
そうだけど、そんなので速度は稼げない
素直なメンテしやすいコードにしておかないと結局バグってて遅いゴミシステムが出来上がるぞ 0953デフォルトの名無しさん2018/10/02(火) 15:13:05.30ID:lpR7dPFU
そうですか〜読みやすさ重視ですか〜
読みやすさとかそういう問題ではない
断言するが、お前のプログラムのボトルネックはそんなところにはない
そういうくだらないことに時間を無駄に使ってると、バグ潰しをしたり本当のボトルネックを見つけて改善したりする暇がなくなり、
結果的にバグだらけでゲロ遅く使い物にならない糞が出来上がる
0955デフォルトの名無しさん2018/10/02(火) 15:33:51.14ID:77rOVAHm
>>951
もちろんそうだよ
ついでに言えば、else ifは使わずifとreturnをうまく組み合わせて使うと更に早いんじゃないかな >>951
判定する条件式の中にすごく重い関数の戻り値があるなら極力避けた方が速くはなるが。。。
ここの諸兄たちが言うようにあんまり気にしない方がよかとね 50分岐なのか単に一か所に50ifが並ぶのか分からないけど、
どっちにしろまず設計がおかしいことを疑うレベルだねw
それが必要になるケースは絶対にありえないとまでは断定できないけど、
普通に考えれば何か間違ってる
0958デフォルトの名無しさん2018/10/02(火) 19:15:29.75ID:77rOVAHm
文字の判定やらデコードやら色々あるから別におかしくはないんじゃない
>>951
switchでcaseがすべて数値か文字列の定数ならif〜else if相当ではなくてジャンプテーブルに変換されて最適化される >>958
そんなん一気にif文で判別するのおかしいよ
個々の判定を別メソッドに切り出すべき >>960
んで呼んだら50行並ぶんですね
わかります >>957
コンパイラ作った時にあったよ
普通に素で解析するときはそうなる リッチ―の作ったCコンパイラもずらっとswitchの下にcaseが並んでる
しかもgotoだらけ
ふと思ったが、ifやswitchよりデリゲートの配列で組んだ場合、可読性は別としてどんなもん?
ん、951は通信電文の解析処理を組もうとしてるのかな?
>>964
単純な数値による分岐なら50くらいだとif並べたほうが速いだろうな いやいや、ビルドした時点で単なる条件分岐文の羅列に変換されるんだから
早いも遅いも無い
0970デフォルトの名無しさん2018/10/03(水) 10:25:12.89ID:53fMVr1s
今試してみたけど条件の羅列にはならなかったよ
ただ実験は同じ関数を大量に登録するだけだけど、実際に使うにはデリゲート配列に関数を登録する所がめちゃくちゃになりそうだ
ライブラリ制作でもなきゃ
ILコードの速度より可読性優先でしょ
最近は性能がトレンドだけだも
0974デフォルトの名無しさん2018/10/04(木) 11:35:52.27ID:z7XJZMIb
VisualStudio2017とC#でDLLとEXEのプロジェクトを含んだソリューションを構成しているのですが、
EXEのプロジェクトはブレイクポイントで止まるのにDLL側のプロジェクトはブレイクポイントを設定しても止まりません。
どうすれば止まるように設定することができるのでしょうか?
>>974
事故解決。
DDLの参照設定に誤りがありました。
無事ブレイクポイントで止まりました。 >>975
質問したならせめてどう設定したのか書いてくれると助かる プロジェクトじゃなくてアセンブリを直接参照したんだと思うよ
正規表現で、特定の変数に格納された文字列が行頭に含まれるときにマッチさせたいのですが
変数にメタ文字が含まれているとそのままメタ文字として機能してしまいます。
\Q〜\Eを使おうとすると認識されないエスケープシーケンスと出てしまうのですが
呼び出した変数をエスケープする方法はありませんか?
string tag = "."; //この変数はユーザー入力により可変させたい
Regex r = new Regex("^"+ tag, RegexOptions.Multiline);
MatchCollection mc = r.Matches(text, 0);
何を言ってるのjかさっぱりわからないけど
\のエスケープは\\だよ
>>979
「.」が代入された変数をマッチ条件として呼び出したときに
「\.」として読ませたいんです…… 説明下手ですみません やっぱり意味がわからないよ
string.Replace
行頭マッチならstring.StartWith()
0983デフォルトの名無しさん2018/10/04(木) 18:09:57.35ID:58olDMZF
Regex.Escape
>>983
これでした! ありがとうございます!
Regex r = new Regex("^"+ Regex.Escape(tag), RegexOptions.Multiline);
でいけました >>980
次スレ立てて
立てられないならそう書いて あっ980踏んだの気付いてませんでした
立ててきます
0989デフォルトの名無しさん2018/10/04(木) 18:57:34.68ID:JnxMNCXd
>>986
恥ずかしい奴ってことで晒されてるんだぞ 0992デフォルトの名無しさん2018/10/04(木) 19:30:48.59ID:NR8ALYp6
アプリで使用する最大スレッド数ってどう決めるのがいいですか?
>>992
動作環境に配慮する
動作スレッド占有したら迷惑かもと思ったら少なくする 0994デフォルトの名無しさん2018/10/04(木) 19:32:31.16ID:NR8ALYp6
単純にCPUのスレッド数を最大に設定しておけばいいですか?
それともCPUのスレッド数-1とかの方がいいのでしょうか?
なんか決め方に基準とか規則とかって考え方あったら教えてください
0995デフォルトの名無しさん2018/10/04(木) 19:33:24.53ID:NR8ALYp6
>>993
そうそう今まではこのように
少し曖昧な形で決めてたのでなんか明確なやり方あったらなあと思って
書き込んでみました >>994
無いよそんなもの
仕事でやっているのなら会社の先輩なりクライアントに聞いて 0997デフォルトの名無しさん2018/10/04(木) 19:36:48.58ID:NR8ALYp6
>>996
無いっていうのはどんな設定しても
結局スレッドのコントロールはOSレベルでされるし
アプリケーションの処理内容次第で占有率とかが違うからってことですか? tiffのヘッダ情報を参照する方法ってどのようにすれば良いのでしょうか
画像読み込みは見つかるのだけどヘッダ情報参照方法が見つからず
System.Drawing.Bitmapに読み込んでPropertyItemsから取得する 全部取れるわけではない
System.Windows.Media.Imaging.BitmapMetadataを使う 大体取れるはず
ヘッダだけ読んで画像データは読み込みたくない!ってなら標準ライブラリには存在しないな
10011001Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 60日 1時間 12分 0秒
10021002Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php