- 1 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/01(日) 20:40:46.53 ]
- このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。 >>980を踏んだ人は新スレを建てて下さい。 >>980が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■前スレ ふらっとC#,C♯,C#(初心者用) Part88 toro.2ch.net/test/read.cgi/tech/1332305258/ ■関連スレ C#, C♯, C#相談室 Part71 toro.2ch.net/test/read.cgi/tech/1332575004/ ミスターサタンのC#相談室 toro.2ch.net/test/read.cgi/tech/1092656075/ VB.NET質問スレ(Part38) toro.2ch.net/test/read.cgi/tech/1325083428/ くだすれC++/CLI(初心者用)part2 toro.2ch.net/test/read.cgi/tech/1268613679/
- 511 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 15:50:08.92 ]
- >>509は時代に置いてけぼりになってるね
- 512 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 15:55:07.39 ]
- 失礼します。DateTimeにdouble型の秒数(msを含む)を加算させたいのですが、全て同じ結果になります。
AddMilisecondを使用しても結果は変わりませんでした。 良い方法がありましたら教えてください、よろしくお願いします。 DateTime Base = DateTime.Parse("2012/04/05 15:21"); DateTime Add1, Add2, Add3; double time1 = 0.5, time2 = 1.0, time3 = 1.5; // 秒数 Add1 = Add2 = Add3 = Base; Add1.AddSeconds(time1); Add2.AddSeconds(time2); Add3.AddSeconds(time3); Console.WriteLine("time1={0}.{1}", Add1, Add1.Millisecond); Console.WriteLine("time2={0}.{1}", Add2, Add2.Millisecond); Console.WriteLine("time3={0}.{1}", Add3, Add3.Millisecond); Console.ReadKey();
- 513 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/04/10(火) 15:57:20.70 ]
- >>511
理解できす逆ギレ乙w
- 514 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/04/10(火) 16:00:04.43 ]
- アホな戦いすんな。見苦しい
- 515 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/04/10(火) 16:01:00.89 ]
- 多分
×Add1.AddSeconds(time1); ○Add1=Add1.AddSeconds(time1);
- 516 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/04/10(火) 16:03:55.48 ]
- XMLが遅いってのはMSが言ってることだしな。
遅すぎてWinFSを開発中止にしたし。 >>509 そんなの誰でも知ってる。基本情報処理試験に出てくるレベル。 初心者スレだからって偉そうに
- 517 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/04/10(火) 16:05:14.98 ]
- XMLが遅くないって言ってる馬鹿ってそもそもいない。
しかし、XMLが遅いと言うと逆ギレする馬鹿がいる。
- 518 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 16:05:47.66 ]
- >>515
動きました、ありがとうございます
- 519 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/04/10(火) 16:08:41.00 ]
- なんでXaml作っているときに遅いと気付かなかったのか・・・
- 520 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 16:09:46.64 ]
- コンパイラとかでもそうだけど
C++みたいな変態言語でもなければ 結局ディスク読み込みがボトルネックになるからXMLでもなんでも変わらないんじゃないかね まあバイナリのほうがはるかにデータ節約できるけど
- 521 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 16:19:15.03 ]
- intのディスクサイズはたいてい4バイト、XMLならその何倍もデータ量になるから、
大量データでは使い物にならない。所詮、メールとか、WEBサイトとかしか使えない。 ボトルネックであるHDDの遅さがさらに問題なる。 だからMSはVista開発時、ずっとHDDメーカーにもっと速くしろと文句を言っていた。
- 522 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 16:29:56.80 ]
- 最大1000個のファイルを読み込んで、変換処理(1秒程度)をして、表示というプログラムを作っているんだけど
単純に並列でファイルを読み込むとHDDに負担がかかると思うのですが、どういう設計をすればいいですか? 何かヒントとなる単語を教えて下さい。あとはぐぐります。
- 523 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 16:39:37.97 ]
- ファイルを圧縮したらいいんじゃないか
- 524 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 16:59:26.47 ]
- >>520
意味不明。C++だろうとXML使えばHDD読み込みは遅くなる。
- 525 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/04/10(火) 17:03:19.63 ]
- その1000個のデータはどういうものかによるんじゃね?
- 526 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 17:06:30.87 ]
- C++のソースをコンパイルする時に
ディスク読み込みよりコンパイル作業自体がボトルネックになるでしょう 普通の言語ならディスク読み込みがボトルネックになるでしょう XMLも解析してどうこうよりディスク読み込みがボトルネックでしょう ということ
- 527 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 17:10:10.29 ]
- 普通の言語ってなんだよ?w
- 528 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 17:14:45.20 ]
- C#とか・・・
- 529 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 17:18:04.21 ]
- 別にC++と比較してそんなにコンパイルは速くないだろ。
- 530 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 17:21:22.59 ]
- ファイルは画像ファイルやhtmlのソースコードです
並列にしてしまうと、ファイル読み込み時に 001スレッドはAファイルを読み込み+エンコード 002スレッドはBファイルを読み込み+エンコード ・ ・ 100スレッド となって、HDDのヘッダが忙しく動きまわることになるんじゃないかと HDDは並列では動作しないと思うのでそこをどうするのか気になります
- 531 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 17:23:58.96 ]
- 直列にすればいいじゃん。
- 532 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/04/10(火) 17:26:23.77 ]
- SSDかRAMディスクにしろよ
ゲームなどの細かいファイルならパックしてシーケンシャル読みがしやすくなるように できるがそういうパックのしようがないのは置き場所を変えるしかない
- 533 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/04/10(火) 17:28:12.26 ]
- >>527
<丶`∀´><ハングルニダ
- 534 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 17:30:03.93 ]
- Aファイルを読み込み→エンコード→A表示
→Bファイルを読み込み→エンコード→B表示→... 未表示項目は読み込み中表示やGIFアニメ 読み込み用スレッドは1つだけ
- 535 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 17:31:34.90 ]
- >>529
そうか? 遅いだろC++
- 536 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 17:32:48.66 ]
- C#むちゃくちゃ速い
- 537 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 17:34:16.97 ]
- プリコパイル使ってるからだろ。
C++もプリコンパイル効けば変わらない。
- 538 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 17:34:34.92 ]
- >>531
直列にできればいいのですが、自分の知識だと 一旦全部読み込んでから、エンコードを並列ということしかできなくて 直列でファイルを読み込んで、随時並列でエンコードしていくというのが実現できたらいいのですが 何かヒントを教えて下さい
- 539 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 17:36:15.00 ]
- RAMDISKかSSDを使う。
- 540 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 17:43:57.82 ]
- >>522
msdn.microsoft.com/ja-jp/library/cc464185%28v=VS.71%29.aspx >たとえば、3 個のファイルをハードディスクから読み出すとしましょう。この場合、3 個のファイルの読み出し処理それぞれに、 >合計 3 個のスレッドを作成してもメリットはまったくありません。理由は簡単です。個々のスレッドは、同一のハードディスクを使用することになるからです。
- 541 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 17:55:15.92 ]
- ボトルネックを低減するには、コマンドキューイングするしか無いと思うんだけどねぇ。
- 542 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/04/10(火) 17:57:09.11 ]
- SATA HDDは世代によるけど付いてるじゃん
- 543 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 18:02:31.16 ]
- バグの9割は使用者の無知
- 544 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 18:03:57.13 ]
- ただし、OracleとJavaは除く。
- 545 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 18:04:29.74 ]
- Method(){
スレッドをたちあげる 一つ読み込む それをエンコードする } これを Method(){ スレッドをたちあげる 一つ読み込む Method(); それをエンコードする } こうしたらいいんじゃないの
- 546 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 18:21:56.30 ]
- >>542
まーそうだけど、ディスクを読むスレッドがあるならそれをちゃんと稼働させてビジーにしておくしか無いと思うのよ。
- 547 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 18:22:37.59 ]
- >>545
無限再帰。。。
- 548 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 18:28:13.68 ]
- >>538
producer-consumerっていう凄く使い古されたパターンがあるからクグれ
- 549 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 18:43:28.83 ]
- >>545
あほな… ごく簡単にやるなら一つのスレッドでループで直列に読み込みながら、 一つ読む毎に変換処理をスレッドプールにキューイング。 って感じだけど、処理終わったら表示ってのがどういうのかイメージわかない。
- 550 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 18:48:13.82 ]
- >>517
んでビルドするとバイナリに変換されますって言うと「そんなのXMLじゃねえからXML名乗んな」って来るんですね もう飽きました
- 551 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 18:50:34.48 ]
- テーブルでいいもんをXMLでわざわざ書かなきゃいけないときに冗長すぎて泣く
- 552 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 18:52:01.83 ]
- だからantは嫌いmake最高
ただしnmakeてめーは駄目だ
- 553 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 18:52:51.87 ]
- foreach(var filePath in filePathes)
{ byte[] bytes = File.ReadAllBytes(filePath); スレッドスタート(() => Encode(bytes)); } こんな感じのほうが普通か
- 554 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 18:55:57.48 ]
- ThreadPool.QueueUserWorkItemかTask.Startあたりをおススメしたいが
数によってはスレッドプールがストールするんだよなあ あれさえなければ…なんだけどいまいち薦めにくい
- 555 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 19:15:53.55 ]
- >>549
今のところはファイルの一覧がListViewに表示されていて 変換中、完了というのがListViewの各項目に表示されるというだけです 完了したらHDDに保存したいです 保存はおそらく完了イベントを受け取ってから保存という形になると思いますが これも同時に完了イベントが発生する可能性もあるし さらに読み込み中に完了イベントが発生する可能性もあるので 読み込みと書き込み部分を一つのスレッドでしか扱えないように ロックする方法が必要だと思います 今までは何も考えずに並列でやっていたので、HDDの断片化や消耗がひどかったんじゃないかと 1度の処理で1000ファイル合計約2GBぐらいです
- 556 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 19:22:08.28 ]
- コンカレントなキューあったよね確か
- 557 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 19:28:58.01 ]
- なにが目的なのかわかんね
スレッドはどうして必要なの?
- 558 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 19:31:34.36 ]
- inとoutが一つだとすると大して恩恵は無いような気がする
2GBとなると考えなしにメモリに貯めておけるデータじゃないしね
- 559 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 19:35:07.43 ]
- エロのパワーは人を進化させるよね
- 560 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 19:36:43.84 ]
- スレッドが必要な理由は、データの読み書き時間よりエンコードの時間のほうが長くかかるからです
同期的に処理をした場合、コアを1つしか使ってくれないので、もう少し処理を速くしたいなと思いまして
- 561 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 19:38:00.60 ]
- まあ1GBぐらいで抑えておかないと性能下がりそうな感じもするな
知らんけど
- 562 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 19:38:35.65 ]
- ま、途中経過はみたいからメインのスレッドとは別に1つ処理をするスレッドを立てるぐらいでいいような気がする
んでそのスレッドが1000ファイルやると同時に途中経過もステータスだか数字だかでメモリに吐き出す メインスレッドではそれは見て表示 ぐらいしかやることねぇだろマジで 他、なんか新しい要素がないとこれ以上やる理由ない気がすんだけどな
- 563 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 19:43:11.29 ]
- やりたいだけだったらどうすればいいかすでに解答が出てるし
後は努力次第
- 564 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 19:44:58.64 ]
- スレッド云々より、ハードディスクの効率のいい読込みたいなのを気にしてるように見える。
1000個のファイルがきれいに並んでいて、並んでる順に読むんならそうできるんだろうけどさ。
- 565 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 19:48:32.57 ]
- ソースがHDDの領域に無作為に記録されていたり、断片化されているということは否定できません
しかし、並列処理をして、1クラスタごとに別ファイルを参照しに針がカコカコ動いていると思うと怖くて
- 566 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 19:49:07.36 ]
- >>560
それ明示的にコア2つ使うようにしてくんない気がする スレッドが1つのHDDに対して読み書きしてるときはマルチタスクは意味がねぇ 1ファイル処理毎に A:@データ読み書き→Aエンコード B:@データ読み書き→Aエンコード ・ ・ ・ のAとBのそれぞれを2コアの処理でやってくれるかっつーと甘い気がすんだよな ぶっちゃけやってくれないと思う このへんの処理ってどうなってるか詳しくしらないんだけど 並列にしたいのは A−@とB−Aの処理とA−AとB−@の処理のタッグだよね? こんな賢く判断してくれるかなぁ・・・っつーとなんか甘い気がw
- 567 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 19:54:57.25 ]
- なんか変だぞ
- 568 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 19:57:41.11 ]
- >>566
スレッドGUI スレッド1:A@→B@→A保存→C@→B保存→D読み込み中 スレッド2:AA→CA スレッド3:BA→D読み込み待 こんな感じです
- 569 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 19:58:00.34 ]
- なにが変なんだよ
- 570 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 19:58:51.79 ]
- >>568
そんなの並列化しねぇよ マルチタスクに夢みんなよ
- 571 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 19:59:08.10 ]
- 基本は
読む→Enqueue→Dequeue→書く→読む→Enqueue→Dequeue→書く→… のスレッドが一つと Dequeue→エンコ→Enqueue→Dequeue→エンコ→… のスレッドが複数だろう うまく動くにはフラグが必要だが長くなるので省略している 効率を考えるとキューの状況に応じて読みと書きを切り替えるべきだろうけど 質問者のレベルだと難しすぎて無理だろ
- 572 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 19:59:59.82 ]
- だから最初から読み込みはシングルスレッドで
エンコードだけマルチスレッドでって話だっただろ
- 573 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 20:05:29.51 ]
- 2コアで動く条件もわからずスレッドわけたりしてるけど
そこはどうだろうか? 俺はよくわからないからいつも別exeにしちゃうけど
- 574 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 20:05:56.56 ]
- よく分からないなら首を突っ込まんほうがいいぞ
- 575 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 20:07:42.66 ]
- >>568
そこまで分かってるならその通りに書けばいいんだよ 流れとしてはそれで問題ない で、何が問題なんだ?
- 576 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 20:07:46.79 ]
- とりあえず俺以上にわかってない奴等ばっかだったから大丈夫
基本的に同じHDDや同じインスタンスにアクセスしてるようなプログラムは並列で動かん
- 577 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 20:09:27.70 ]
- >>576
お前ここ3日くらいとんでもない発言繰り返してるけど何かの病気なの?
- 578 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 20:10:31.22 ]
- >>577
違ってる部分指摘しろよ
- 579 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 20:10:31.59 ]
- 370 名前:営利利用に関するLR審議中@詳細は自治スレへ[sage] 投稿日:2012/04/08(日) 16:54:27.11
スレッドは不思議な魔法で並列動作をしてるわけじゃなくて やはり単一のCPUでやってることをそろそろ認識すべきだと思う 上のほうに勝手に並列でとかあるけど そんなこと物理的にできるわけない んでドキュメントを見る限りどうもAPIのスレッド機能はなにやら糞っぽい・・・と こいつの臭いがする
- 580 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 20:12:11.06 ]
- >>578
まず質問者の前提ではHDDにアクセスするスレッドは1つだ
- 581 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 20:17:35.99 ]
- >>575
読み込まれたファイルからスレッドプールにキューイングという部分がよくわかりません。 Thread.Start() を使って次々立てていたんですが、各所でThreadを使わないほうがいいと言われているようなので
- 582 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 20:18:09.34 ]
- どうせ名無しで書いてるんだから、間違いを指摘されたら黙ってフェードアウトすりゃいいのにな。
ちょっとかかなりか知らんけど精神病んでるよな
- 583 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 20:19:16.02 ]
- >>581
プロデューサーコンシューマーパターンでググって自力でがんばれ アホも沸いてるようだからここは今から荒れるぞ あとこの場合はThread使っていい どうせスレッドプールはつっかえる
- 584 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/04/10(火) 20:20:18.59 ]
- >>550
XMLは糞遅い。この事実はどうしようもない。
- 585 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 20:20:24.28 ]
- >>582
間違いあるなら指摘しろよ アンカーもつけずになにキタネェ対応してんだよ
- 586 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 20:21:13.82 ]
- アンカーつけてりゃ偉いって2ch初めてかよ
- 587 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 20:23:18.39 ]
- アンカーも付いてないのに自分のことだって分かるんか。
- 588 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/04/10(火) 20:24:21.35 ]
- コンテキストで分かるだろ。
- 589 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 20:24:49.09 ]
- >>583
教えていただいた、いろいろな単語をググって調べてみます ありがとうございました
- 590 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 20:32:04.12 ]
- >>583
どう考えてもプールむき出しそっちのが楽。 ストールは最初に最小スレッド数設定すりゃいいだけ。 自分でスレッド立てると、スレッド数とか気にしなきゃならないから面倒なだけだぜ。 まあTaskの方が良いけど。
- 591 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 20:33:35.44 ]
- 高負荷ってはじめから分かってるなら、
スレッド数は論理CPUの数だけに制限したほうがいいに決まってる。 ファイル読み込みは1スレッドで その後の処理は論理CPUの数だけのThread使いまわせばいいだけ。
- 592 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 20:35:14.80 ]
- それを言うならスレッドプールを使えばあとはよろしくやってくれるだろ
- 593 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 20:35:18.36 ]
- >>590
楽かどうかじゃなくて >要求が少ないときは、スレッド プールの実際のスレッド数が最小値を下回る場合があります。 こんなこと書いてるメソッドには何の意味もないんだよ。
- 594 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 20:35:26.43 ]
- XMLをビルドするとバイナリに変換されるってなんのことだ?
- 595 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 20:40:43.84 ]
- >>593
馬鹿ハッケーン
- 596 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 20:40:48.79 ]
- >>592
GetMaxThreadsの数まで増えても別に効率的になるわけじゃないし全然宜しくないよ。
- 597 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 20:41:34.53 ]
- >>593
アホなの?
- 598 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 20:41:43.76 ]
- >>596
真性馬鹿ハッケーン
- 599 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 20:44:33.81 ]
- それよりもこっちの方が
>.NET Framework 4 以降では、スループットを最適化するために、スレッド プールでスレッドの作成と破棄が行われます。 …4以前は?
- 600 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 20:45:15.86 ]
- 他にプールでやる処理が色々あるなら別だが、そうでもなきゃスレッドプールで困る事なんてそうないぜ。
使ったことないんじゃないか? 場合によっては困ることがあるのはスレッド開始に待ちが入ることくらいだが、 これは最小スレッド数を設定すりゃすむ話。
- 601 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 20:47:29.29 ]
- いくつに設定すればいいですか?
- 602 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 20:49:32.39 ]
- エラー出たときに1000ファイル分かき集めるの
やればいい話だけど
- 603 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 20:51:00.87 ]
- ファイルがでかいものもあるなら、セマフォも使って処理投入段階でブロックしとけ。
論理コア数と同じくらいがまあセオリー。
- 604 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 20:52:28.96 ]
- >>602
何を言ってるの?
- 605 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 20:53:09.36 ]
- AdvancedWindowsのどこかには論理コア数+1って書いてあった気がする
+1がよく分からなかったが
- 606 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 20:53:57.67 ]
- ウンコにさわるやつもウンコ
- 607 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/04/10(火) 21:11:18.80 ]
- >>605
判らんけどI/O待ち想定なのかな? 最低2スレッド無いと却って効率悪くなる
- 608 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 21:11:40.78 ]
- >>599
勘違いしている気がするが、「4以前ではスレッドの作成と破棄をやっていなかった」ってことじゃないぞ QueueUserWorkItemなどが実行された時にスレッド数を調整してたって話 4からはこの調整自体をスレッドプール内で定期的に動かすようになった 要は裏で自動調整するようになったんだけど、弊害として スレッドプールが埋まっている場合、調整処理自体が巣レットプールの待ち行列で待たされるようになった そのため長い処理でスレッドプールを埋めてしまった場合の一時的なパフォーマンス低下は4以前より悪くなっている MSDNはTPL使え使えばっかり書いてあるように見えるが、Thread使った方がいい場合もきちんと書いてある msdn.microsoft.com/ja-jp/library/0ka9477y.aspx
- 609 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 21:11:58.58 ]
- 何言ってんだこいつ
- 610 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 21:13:08.22 ]
- また逆ギレか。
- 611 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 21:15:42.87 ]
- 逆じゃないキレ方をどうぞ
- 612 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 21:16:28.78 ]
- ウンコにさわるやつもウンコ
- 613 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/04/10(火) 21:18:10.43 ]
- >>611
逆ギレとは「キレたいのはこっちの方だ!」と言いたくなるキレ方のことです
- 614 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 21:18:37.16 ]
- >>611
正ギレ
- 615 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 21:19:44.33 ]
- >>605
今回の場合はメインの読み込みスレッドと合わせて+1になる。
- 616 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 21:33:06.01 ]
- では次回は?
- 617 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 21:47:42.22 ]
- 切れ痔ですか?
- 618 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 22:51:20.00 ]
- スレッドプールを使うとメモリが足りないとか論理コア数を超えるとかいうときには
スレッドを起動しないでくれるわけかね
- 619 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 22:55:50.29 ]
- 最近のスレッドプールはスレッド数を指定しないのかね?
- 620 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 22:57:11.13 ]
- なんだよ
失敗しろよ>new
- 621 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 23:18:41.50 ]
- 基本、空いてるCPUがあって待機してるスレッドがなければスレッドが新たに起動されるイメージ。
論理コア数を超えていても、空いてるコアがあればスレッドは起動される(もちろん上限はあるし、一定の待機時間があったりもする)。
- 622 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 00:27:03.42 ]
- そもそもその議論とコア数は無関係じゃないかと思うんだけど....
なんかちょっと前から気になってるんだけど、マルチコアの時代になったからって プロセスがCPUを占有できるわけではない事実は何も変わってないことが分かってない 人が結構いるような気がするんだけど気のせいか?
- 623 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 00:36:09.94 ]
- IDがないと誰が何喋ってるのかも分からんしNGもできんし最悪だな
- 624 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 00:44:01.47 ]
- 質問スレでID導入してくれなんて吠えてるお前は病気だよw
- 625 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 00:48:20.26 ]
- 他に高負荷スレッドがなければ占有してるのか変わらないわけだが。
論理コア数より多くの高負荷のスレッドを乱立すれば、 無駄なコンテキストスイッチが増えて遅くなる。
- 626 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 00:48:57.37 ]
- 370 名前:営利利用に関するLR審議中@詳細は自治スレへ[sage] 投稿日:2012/04/08(日) 16:54:27.11
スレッドは不思議な魔法で並列動作をしてるわけじゃなくて やはり単一のCPUでやってることをそろそろ認識すべきだと思う 上のほうに勝手に並列でとかあるけど そんなこと物理的にできるわけない んでドキュメントを見る限りどうもAPIのスレッド機能はなにやら糞っぽい・・・と >>622 この二人同一人物でしょ どう見てもNG対象じゃん 言ってることも意味不明だし
- 627 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 00:51:37.68 ]
- 気色悪いなあ....
別に同一人物だったら何だって話だが、一応言っとくけど違うから。
- 628 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 00:53:38.54 ]
- .netはDirectComputeは取り込んでくれるの?
- 629 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 00:56:04.64 ]
- っていうか、読む気もないけど>>370の人物は単に排他的にしか使えない資源を
同時に使うことは出来ない、っていう同義語反復をやってるだけじゃなの? 言ってることが誰でも分かる同義語反復に過ぎないから叩かれてるような印象だったが。 >>622(=俺)はそんな同義語反復は言ってないし
- 630 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 00:58:16.84 ]
- >>622はスレッドプールが同時に走らせるスレッド数がコア数と無関係だって言ってるんでしょ
意味不明じゃん
- 631 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 01:00:12.94 ]
- >>630
スレの流れを把握しろって。 鳥頭に言っても無駄だと思うけど
- 632 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 01:07:27.75 ]
- じゃあどういう流れなのか言ってみろよw
- 633 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 01:31:43.34 ]
- この障害者暇なんだな
- 634 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 01:32:58.96 ]
- 匿名の掲示板に何を言っても無駄
過度な期待は禁物だな
- 635 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 01:34:06.54 ]
- そうやって人生諦めているんだね
- 636 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 01:50:25.45 ]
- コアの数に関係ないってのが何が言いたいのかわからんなあ。
今回の話でコアを全部フルで使うことになるかはまた別だが、 CPU能力が余ってたら単にコアが空いた状態になるだけ。 処理が十分に重いならコア全部フルで使うことになる。 もちろん他のプロセスの状況によるなんて言うまでもない話は置いといて。 ファイル読み込むより処理時間のが長いって前提があるんだから、 マルチコアで処理することに意味がある。
- 637 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 01:50:53.06 ]
- Clipboard.SetDataObject(変数名, true);
だと「OLE が呼び出される前に、現在のスレッドが Single Thread Apartment (STA) モードに設定されていなければなりません。Main 関数に STAThreadAttribute が設定されていることを確認してください。」と言われ Clipboard.SetText("{0}", 変数名); だと「 'string' から 'System.Windows.Forms.TextDataFormat' に変換できません」と言われます。 stringをクリップボードに貼り付けるということをしたいです。
- 638 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 01:56:05.73 ]
- あんまコア数使ってると、CPUをこあすぞ
- 639 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 01:57:16.65 ]
- STAのスレッドでやれよ。
- 640 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 02:10:45.41 ]
- ごめんなさい、C#というかプログラミング自体始めてでして。
STAがどうとかではなく、単純にstringの物をクリップボードに貼り付けられればいいのです。 なにかいい方法は無いでしょうか?
- 641 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 02:15:21.10 ]
- VisualStudio使ってないか、プログラミング自体初めてなのにスレッド使ってるか
どっち?
- 642 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 02:16:23.40 ]
- だからSTAじゃないと貼り付けられねーつってんだよ。
何のプログラムなの? WindowsFormのアプリ? Consoleアプリ? その他?
- 643 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 02:19:20.91 ]
- Clipboard.SetText("{0}", 変数名);
こっちはそもそも使い方間違っとるし。
- 644 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 02:19:29.02 ]
- Visual C# 2010 Express使ってます。
ググったらクリップボードに貼り付けるには二通りあって? Clipboard.SetText("テキスト"); か Clipboard.SetDataObject(変数名, true(またはflase)); があるっぽいことがわかりました。 Clipboard.SetTextで普通に文字を入力するとエラーを吐かない、だけど「"{0}",変数名」とかって書くとエラーを吐く。 どっちも同じ文字なんだし大丈夫なんじゃないか?とは思うんですがエラーを吐くのでコンパイルできない状態です。 これを何とかしたい、とおもいこのスレに来ました。スレッドを使いたい、とかそういうこだわりはないです。
- 645 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 02:20:06.83 ]
- >>642
Consoleアプリです。 >>643 なんと、間違いでしたか。申し訳ないです。
- 646 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 02:22:25.73 ]
- >>637
これWPFでなったことあるな
- 647 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 02:23:46.02 ]
- どういう使い方してるConsoleアプリか知らないが、
簡単なのはエラーメッセージに出てる通り、 Main 関数に STAThreadAttribute を適用すること。 [STAThread] をMainメソッドの前に入れればいい。 それができないならやや面倒だが…
- 648 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 02:27:01.09 ]
- っていうかConsoleアプリでクリップボード使うってそれほんとに問題ない?
そういう目的にアプリなら別だが、あまり使わんぜ普通。
- 649 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 02:27:52.63 ]
- >>647
解決しました、ありがとうございます。 [STAThread] static void Main(string[] args) みたいな書き方をすればよかったんですね、勉強になりました。 ID表示されないのでわからないですが他の方もありがとうございました。
- 650 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 02:28:38.58 ]
- >>648
urlつっこんで、一部置換して吐き出す って処理をするのにいちいち選択しているのがめんどくさかったのでどうにかできないかな、と思いました。
- 651 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 05:08:18.74 ]
- ToolStripMenuItem
名前長いし なんかするたびにキャストが必要で不便すぎるんだが
- 652 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 05:09:34.10 ]
- バカには無理
- 653 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 05:16:54.18 ]
- 不便なら便利なクラスを自分で作ればOK。
無理して使う必要は全くない。
- 654 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 06:07:26.28 ]
- res.Headers.AllKeys.Where((key) =>
{ Console.WriteLine(key); return true; }); 何も表示されないんですがなぜですか?
- 655 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 06:19:26.83 ]
- 遅延実行系はforeachするまで呼び出されない
- 656 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 06:50:11.39 ]
- よくわかりませんができないってことですね
- 657 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 09:22:05.20 ]
- バグの 津波が 俺を 飲み込む
- 658 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 09:28:49.07 ]
- 技術の 壁が 俺を 阻む
- 659 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 09:42:08.88 ]
- 仕様 変更が 俺を 打ちのめす
- 660 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 12:13:35.69 ]
- 納期が 迫る 俺を 錯乱させる
- 661 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 12:15:13.50 ]
- なんかワロタ
疲れてるな俺
- 662 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 12:16:55.06 ]
- 周囲の 談笑が 俺を 罵る
- 663 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 12:29:57.63 ]
- 納豆が 俺を その気に させる
- 664 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 12:39:16.94 ]
- ツマンネ
- 665 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 12:42:46.96 ]
- 束の間 惰眠が 俺を 誘う
- 666 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 12:43:44.70 ]
- こんなとこに書き込む俺はもう致命傷なのかもしれない
助けてくれ
- 667 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 17:16:30.67 ]
- SEは狂う奴が多いよなw
- 668 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 18:04:13.46 ]
- その前に過労死が多い
- 669 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 18:09:29.07 ]
- >>667
SEは狂わないよ。 SEの無能妄想設計をPGに丸投げ、強要するから、PGが発狂するんだよ。
- 670 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 18:11:25.80 ]
- 障害者ばっかり
- 671 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 18:20:09.36 ]
- 日本が好き過ぎて自腹で滞在延長!イケメン俳優エズラ・ミラー、和食のうまさに顔面緩みまくり!?
映画『少年は残酷な弓を射る』のPRのため来日していたイケメン俳優エズラ・ミラーが、 あまりに日本を好きになってしまったため、自腹を切って滞在を延期、電車で移動しながら 日本を満喫しているという。 切れ長の目と黒髪が印象的な美青年エズラは、アメリカ在住の現在19歳。昨年出演した 『少年は残酷な弓を射る』で、完ぺきな息子ながら、母親にだけ異常に反抗を示す少年を演じ、 その演技力と美しさが評判に。実写版「AKIRA」で鉄雄役の有力候補として名前が挙がったことも話題となった。 エズラ本人は、劇中と違い明るくておしゃべりが大好きな青年なのだとか。今回スーツケースではなく、 リュック一つという飾り気のないスタイルで初来日。小学生のころによく「日本人の女の子みたい」 と言われていたこともあってか(!?)滞在中にすっかり日本が気に入ってしまい、来日スケジュールが過ぎた後も、 自分でゲストハウスを見つけ、自腹で滞在を延期してしまったという。 日本では何もかもが楽しいようで、とにかくおおはしゃぎのエズラ。移動はもっぱら電車で、 屋形船に乗ったかと思えば、代々木公園と中目黒で花見、さらに原宿や浅草を探索しゲームセンターも満喫。 焼肉屋では和牛のあまりのおいしさに表情も緩みまくり。さらに初体験のクリームソーダに目を輝かせていた という。あげく上野のフリーマーケットでは、着物の下に着る肌じゅばんを試着して周囲に笑われ、 「下着みたいなものを試着していたから笑われたんだと思う」とコメントしていたとか。 ちなみにエズラは、今回本物の和食を口にしたことで、ニューヨークに帰ったら、今まで食べていた日本食は 偽物で、おいしくないと思うだろう、本当に困ったことになった! と頭を抱えているのだとか。 イケメンながら三枚目な素顔に、さらに好感度アップといったところだが、それを知った上で、 映画での冷酷な演技を見れば、一層エズラの力量と将来性を感じることができそうだ。 www.cinematoday.jp/page/N0041148
- 672 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 19:30:32.82 ]
- ネトウヨきもっ、まで読んだ。
- 673 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/04/11(水) 19:31:40.42 ]
- うんこでそうなんでづが
- 674 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 20:51:28.44 ]
- へぇ
- 675 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 21:45:14.85 ]
- >>654
Whereの使い方がまるっきり間違ってる なんにもWhereじゃない
- 676 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 22:04:56.65 ]
- >>675
わかりきっているこというなよバカ 実際こんなコードなわけないだろアホか
- 677 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 22:12:04.38 ]
- 指摘がずれてる。0点。
- 678 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 22:14:11.47 ]
- 驚いたなあ
質問したいんじゃなくて荒らしたいだけか
- 679 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 22:15:43.63 ]
- 答えられない奴は無理に答えなくて言いって言っただろ
- 680 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 22:18:04.99 ]
- LINQのラムダの中に書いたコードはforeachとかToArrayなんかを使って
実際に列挙されるまで実行されない って書いても多分わからないふりして荒らすだけなんだろうな それいぜんにWhereの使い方が間違ってるからLINQを使わないのが正しいんだが
- 681 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 22:22:57.11 ]
- LINQって人気ないの?
SQL文を文字列じゃなくてコンパイラがチェックしてくれるところなんかはよさそうじゃない? んでも移植のときにLINQ無い言語に移植するってなったときにぶっちゃけ最悪だな
- 682 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 22:23:55.23 ]
- SQLに使ったことはないけど
コレクションを使うときにLINQなしはもはや考えられない
- 683 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 22:27:49.42 ]
- >>680
> LINQのラムダの中に書いたコードはforeachとかToArrayなんかを使って > 実際に列挙されるまで実行されない まてまて、LINQってのはforeachの代用になるものじゃないのか? 何で取り出すのにまた反復処理しないとだめなのさ > って書いても多分わからないふりして荒らすだけなんだろうな 荒らしているのは俺じゃない > それいぜんにWhereの使い方が間違ってるからLINQを使わないのが正しいんだが だからー、実際こんな使い方しているわけないだろ 問題の指摘をしやすいように余計なもの削除しただけだろ 指摘する上で何か不都合あるのか?
- 684 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 22:34:00.73 ]
- 実際にとりだすまで反復処理が行われないって言ってるんだよ
とりだすのに、「また」反復処理してるんじゃない
- 685 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 22:34:04.63 ]
- そこまで言うならコピペで実行できるサンプルを作って貼ってくれよ
長いなら>>3使えばいい 普通ならこれくらい数分でできるだろ
- 686 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 22:35:36.77 ]
- >>683
LINQはforeachの代用はしていない foreachにはforeachを使う SelectやWhereやその他もろもろのコレクションに対する操作に使うのがLINQ その実行結果を取ってくるにはforeachやなんかで列挙する必要があり その列挙が行われる時までラムダは実行されない >>676 >わかりきっているこというなよバカ >実際こんなコードなわけないだろアホか このバカとかアホとかは荒らしてるうちには入らないのかお前の認識では
- 687 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 22:36:31.01 ]
- >>683
>>654の後ろにCount()とかつけてみ表示されるから。 何で(この段階で)表示されないのか?という質問については 何度も回答されてるけど遅延実行だからだよ
- 688 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 22:38:39.41 ]
- >>684
実際使われるって、LINQの戻り値であるコレクションを使うってことか 反復処理中に途中経過表示したいだけなんだがなぁ そうなるとforeachするしかないのか
- 689 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 22:41:11.46 ]
- 派遣先で無意味にLINQを使いまくってみるかw
なんでもLINQ使って俺がみないと解読不能なソースにしよう
- 690 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 22:43:36.56 ]
- >>687
Count()つけたら表示されたw どういうことだこれ
- 691 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 22:43:47.88 ]
- SelectやWhereなんてLINQ使わないと読むの大変だし
Listを作って変換してAddしていってとか今更書くのも読むのも耐えられない
- 692 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 22:47:11.09 ]
- >>688
だから途中経過なんて無いんだよ foreachしてみるまでわからん
- 693 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 22:50:44.20 ]
- でもselectやwhereでバグったor苦労した覚えなんてないんだよ
- 694 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 22:52:09.23 ]
-
>>686 > SelectやWhereやその他もろもろのコレクションに対する操作に使うのがLINQ > その実行結果を取ってくるにはforeachやなんかで列挙する必要があり > その列挙が行われる時までラムダは実行されない ってことは、例えばファイルから文字列読み込む時 実際にその文字列を画面に表示するときにファイルにアクセスするってことか それってめちゃくちゃ遅いじゃんw > このバカとかアホとかは荒らしてるうちには入らないのかお前の認識では 見当違いな指摘するのは荒らし行為だろw
- 695 名前:デフォルトの名無しさん [2012/04/11(水) 22:54:20.01 ]
- >>694
ファイルはバッファというのがあってだな・・・後はググれ
- 696 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 22:56:55.06 ]
- >>694
普通に考えてファイル全部読み込んでから文字列全示するより 一列読んだら即表示 ってやった方がレスポンスがいいだろ メモリ消費量も少なくて済む 見当違いなのはお前の質問の仕方そしてバカとかアホとか言い出す態度だからな まず恥を知ってそれから敬意を持って質問をするようにしろ
- 697 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 23:01:01.54 ]
- 質問の仕方は何も悪くない
問題点をわかりやすく簡潔に表現したつもり Whereの使い方なんて今関係ないし アホといわれても仕方が無いだろ
- 698 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 23:04:41.13 ]
- var result = res.Headers.AllKeys.Where((key) =>
{ Console.WriteLine(key); return key=="Content-Length"; }); じゃあこんな感じでかきゃよかったのか?一緒だろ
- 699 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 23:04:51.59 ]
- 問題点をわかりやすく説明したいなら
違う問題点があからさまに存在するコードを出すべきではないことぐらい分からんかね SelectやWhereの話で言うと Selectしたらそれを実行して実行後の配列を作る さらにWhereをやって全部実行して実行後の配列を作る・・・ とやっていく事自体は容易いけどもいちいち配列を作るのは大変だしメモリも消費するから非効率なので Select,Whereといった命令だけ溜めておいて列挙するときに一気に実行してるわけだな
- 700 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 23:05:30.47 ]
- あー、なるほどー
無駄が多いんだね LINQって やっぱりSQL文の代わりに使うぐらいしかないな
- 701 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 23:06:19.08 ]
- >>696
それってなんかHDDに負荷かけてる気がしない?
- 702 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 23:06:20.11 ]
- だから無駄が少なくなるようにやってるんだよLINQは
なんで無駄が多いってことになるんだよ 別に無駄はあるけども
- 703 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 23:06:42.44 ]
- 100baikakarusine-
- 704 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 23:07:09.72 ]
- そうだね気がするねー
- 705 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 23:08:46.16 ]
- >>701
HDDから読み込む時は1行だけ読むってやっても裏では一気に読み込んでるから平気だよ
- 706 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 23:10:26.78 ]
- >>705
一気に読み込んだものはどこにいったの?
- 707 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 23:10:52.79 ]
- >>706
OSがキャッシュしてまた読み込まれるときに備えてるよ
- 708 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 23:12:42.88 ]
- そうだよそなえてるよ
- 709 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 23:12:58.57 ]
- 北朝鮮 発射へ燃料の注入開始
北朝鮮は、人工衛星としている事実上のミサイルについて、 発射の最終段階である燃料の注入が始まったことを明らかにしました。 www3.nhk.or.jp/news/html/20120411/k10014367501000.html
- 710 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 23:13:11.65 ]
- 4GBの動画の場合は?
これも一気に読み込むの?
- 711 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 23:13:18.00 ]
- 僕の股間のミサイルも発射しそうです
- 712 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 23:14:50.06 ]
- なんか無駄多そうだぞ>LINQ
- 713 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 23:15:05.96 ]
- >>710
LINQ何に使うんだよ そんなもんLINQ使わなくても特別な配慮が必要に決まってる
- 714 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 23:16:46.60 ]
- >>705
表示するまで次のセクタの読み込み命令出してないのに?
- 715 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 23:17:27.89 ]
- そうだよ無駄だよー
- 716 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 23:17:42.50 ]
- そうだね出してないねー
- 717 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 23:18:16.24 ]
- 詭弁のガイドラインの実演会か
- 718 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 23:18:34.68 ]
- コンサートだよ
- 719 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 23:18:59.00 ]
- 将来の移植も考えるとLINQ手を出すべきじゃないな
- 720 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 23:19:30.39 ]
- そうです手を出すべきじゃないです
- 721 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 23:21:23.96 ]
- >>713
そういう問題じゃなくて、1行づつ読むコードなのに一気に読み込んでるんでしょ? その仕組みを教えてよ あと、キャッシュは一旦読み込んだファイルを 高速なメモリ領域に保持する仕組みであって 一気に読み出すのとはまた別の話だと思うけど そこら辺も詳しく教えてよ
- 722 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 23:23:17.03 ]
- そうだな教えてほしいな
- 723 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 23:24:10.77 ]
- 動画のヘッダだけ読み出したいときも一気に4GBも読み込むの?
しかもキャッシュされるの?どうやって?
- 724 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 23:24:38.84 ]
- >>721
普通、ストリームで最後まで読む場合でも小さいバッフアでちびちび読むと思うけど? 少なくとも.NETのライブラリの実装はそうだよ
- 725 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 23:25:21.16 ]
- どうやってだろうね
- 726 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 23:31:26.85 ]
- YES! GUTS!
- 727 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 23:36:36.16 ]
- 無敵のLINQでなんとかしてくださいよォ!
- 728 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 23:42:42.12 ]
- なにこのLINQ至上主義者
- 729 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 23:49:16.56 ]
- >>721
HDDから読み込むときの最小単位は512バイトだからその512バイト分はどうしたって読むよね 実際に一度にどのくらいのサイズを読むのかっていうのはちょっと検索してみたけどよく分かんなかったわ 512バイト分しか読まないことはないと思うけどね
- 730 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 23:56:15.96 ]
- Linqはまじ使えないって。
プログレスバーを更新できないからな。
- 731 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 00:08:58.82 ]
- マジかよLINQ
プログレスバーを更新できないんじゃ砂時計しかねーじゃねぇかよ ○●○●○● ↑こんなのトグルで表示して許してくれるお客さんばっかりじゃねーぞ!
- 732 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 00:10:44.23 ]
- 出来るだろ別に
PLINQとかで一個やるたびにプログレスバー進めりゃいいんだろ
- 733 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 00:13:07.63 ]
- ネタならネタでいいからせめて少しは笑えること書けよ。
ヲタ臭いんだよ。気色悪いっての。 モニターの前でデブヲタが引き笑いしてる気味が悪い絵しか思い浮かばん。
- 734 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 00:16:36.45 ]
- >>733
アンチグレアディスプレイおすすめ
- 735 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 00:18:01.45 ]
- つ 手鏡
- 736 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 00:18:29.15 ]
- 同属嫌悪?
- 737 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 00:18:57.56 ]
- >>732
なんだできんのかよ
- 738 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 00:22:31.93 ]
- >>737
できねーよ。
- 739 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 00:23:17.09 ]
- はっきりしろ!>LINQ
- 740 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 00:23:42.12 ]
- LINQの冒険
- 741 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 00:30:07.98 ]
- LINQタウン
- 742 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 01:17:48.73 ]
- お前は今までにSelectしたSequenceの数を覚えているのか?
- 743 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 01:47:26.42 ]
- めろLINQ
- 744 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 01:49:23.70 ]
- おっさん多すぎワロタ
- 745 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 03:15:37.57 ]
- こっそり質問させてください
ファイルが無い状態だと、usingのところで他のプロセスが使用中とエラーが出ます でも、ファイルはちゃんと作られていて、そのまま2回目実行すると正常に機能します どこが間違っているのでしょうか? if (!File.Exists("log.txt")) File.Create("log.txt"); using (StreamWriter sw = new StreamWriter("log.txt", true, Encoding.Default)) { sw.Write(log.ToString()); }
- 746 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 03:28:14.52 ]
- そのコードだとCreateのところがlog.txtを開きっぱなしで握ったままになってるので
Closeもしないと
- 747 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 03:40:05.82 ]
- if (!File.Exists("log.txt"))
{ var fs = File.Create("log.txt"); fs.Close(); } これでできました。ありがとうございました。
- 748 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 03:40:14.16 ]
- >>745
MSDNインストールした?
- 749 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 09:14:36.62 ]
- Windowsのキャッシュの仕組みも知らない奴ばかりなんだな。
マジレスすると、キャッシュマネージャが裏で勝手にある程度先読みしてる。 プログラムで読もうとしたときにセクタを読むわけじゃねーよ。
- 750 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 09:21:31.53 ]
- もちろんプログラムからの読み取りアクセスの形態をある程度考慮してて、
シーケンシャルな読み込みとかなら次にプログラムが読もうとする前に、 先読みして出来るだけ準備済みになるように制御してる。
- 751 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 09:28:37.95 ]
- まさかスーパーフェッチのこと言ってるんじゃないだろうなw
- 752 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 09:39:32.55 ]
- もし問題があるならアプリケーション側でバッファすることもできるし非同期で読んでもいいわけだし
LINQみたいにクソ抽象度高いものとそんな低レベルな話を一緒にするのが無理があるわw
- 753 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 09:43:02.87 ]
- スーパーフェッチ切ってない情弱なんてこのスレにいるの?
- 754 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 09:45:23.49 ]
- 特定の事にしか使ってないならスーパーフェッチは非常に有効
- 755 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 10:11:21.40 ]
- システムをSSDに入れてない奴なんているわけないよな
- 756 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 11:03:49.29 ]
- スーパーフェッチなんか関係ないつーの。
そんな設定とか関係なくWindowsでは勝手に自動で行われてる処理だよ。 まあFileStream内部のバッファも少しあるけどね。
- 757 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 11:06:17.84 ]
- あー無知は大人しくしとけよ恥ずかしい。
Windowsのキャッシュなんて明示的に使わない指定しない限り 当たり前に常に使われてるもんだよ。
- 758 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 11:10:37.38 ]
- Windowsのキャッシュマネージャーは確か、
前回2回分のプログラムからの読み取り要求を考慮して 次の先読み動作を自動的に行う。 プログラムから2回シーケンシャルに読み取り要求されると、 次回は読み取り要求される前にキャッシュにファイル内容が満たされるように、 自動で先読みが行われるようになる。
- 759 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 11:18:08.93 ]
- キャッシュに関する似たような話、予想と違う動作をする話としては、
FileStreamをフラッシュしてもファイルを閉じてもプロセス終了までしても、 ディスクへのデータの書き込みは完了しないなんてのもあるな。 今時のOS環境じゃ、OSが裏でやってることってのは複雑極まる。
- 760 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 12:18:20.24 ]
- アプリケーションレイヤーの事しか分からん奴がぐずぐず言ってんじゃねえってことですね
- 761 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 12:39:33.25 ]
- ファイルストリームのバッファサイズ設定とか意味あんの?
OSがキャッシュしてるものをさらにバッファリングとか
- 762 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 12:42:57.11 ]
- 素人が意味なんか考えんなよクソ生意気に
意味ないと思うなら勝手に減らしてろカス
- 763 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 13:38:27.50 ]
- 意味あるよ。
おかげでバイト単位とか、細かい粒度で読み込みしてもパフォーマンス上大きなネックにならない。 もしバッファがないと、読み込みの度にOSのカーネルモード呼び出しが発生して、 大きなパフォーマンスネックが発生する。
- 764 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 13:40:29.32 ]
- もちろんある程度のまとまりサイズで読み込む分には意味ないけどね。
- 765 名前:762 mailto:sage [2012/04/12(木) 13:42:51.96 ]
- やっぱ慇懃に煽った方が反応がいいな
あからさまなのは駄目だ
- 766 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 14:22:45.58 ]
- ワンパターン過ぎ
- 767 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 14:27:19.27 ]
- NGしてえ・・・
- 768 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 15:00:57.33 ]
- インサイドウインドウズ全部読めばキャッシュマネージャのこととかも書いてあるわけ?
- 769 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 15:36:12.74 ]
- しかし、計測してみると、
バッファを大きくしたり、一気に読み込むより、小さいバッファで回したほうが速いんだよね。 これはなんで?
- 770 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 15:40:24.17 ]
- 大きすぎてCPUキャッシュからあふれるとか
計測誤差とかじゃねえの
- 771 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 15:44:58.60 ]
- >>768
書いてあるけど、スーパーフェッチは第五版だから英語だけかな。
- 772 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 16:02:33.13 ]
- >>769
一気に読み込むサイズによるが、先読みの大きさは限られてるから、 粒度が大きくなりすぎると実質的に間欠読み込みな動きになってしまうんじゃないか? 要は先読みが一回に読み込むサイズの途中までしか利いてないみたいな。 あまり大きいと実質キャッシュなしに近くなるかもしれんしな。
- 773 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 16:05:34.32 ]
- ファイルIOやキャッシュマネージャら辺はもしかしたらVista以降では結構変わってたかもしれん。
- 774 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 16:13:20.33 ]
- スーパーフェッチだからな。
日本人はスーパーというと安いというイメージがあるが、アメリカではすげーって意味だ。
- 775 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 16:15:58.31 ]
- それってスーパーマンが流行ってた頃の話だろ
スーパーなんて死語だよ
- 776 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 16:24:43.16 ]
- スーパーファミコンだろ
- 777 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 17:24:37.52 ]
- スーパーチャイニーズだろ
- 778 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 19:11:51.70 ]
- 非同期ソケット通信でクライアント側送受信してみたいんだけれど
MSDNのサンプルだと理解できなかった。マニュアルリセットコールバックとかいきなり難易度高すぎた。 どっから始めたらいいのかなぁ。
- 779 名前:デフォルトの名無しさん [2012/04/12(木) 19:13:53.53 ]
- そんなあなたにWCF
|

|