ふらっとC#,C♯,C#(初心者用) Part89at TECH
ふらっとC#,C♯,C#(初心者用) Part89 - 暇つぶし2ch404:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 19:19:58.18
>>401
どう考えても㍉秒単位になってるところだろ

405:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 19:22:00.34
新OSでμ対応やってみたらあっさり出来ちゃったレベルでいけると思うけどね
そんなに対応が難しい問題とは思えない

406:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 19:30:39.53
>>403
WinFormは自分に合っててかなり基本は良設計だと思ってるからだな。
たまに変な設計のコントロールあったりするけど・・・。

407:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 19:46:47.98
>>406
新しい設計がすべていいとは思わないが場合によっては変わるのは仕方ない

というかColor構造体なんか一度作ったら早々いじらないから
コンストラクタで指定でもいいと思うけどw

408:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 19:58:56.77
>>404-405
自分の無知を棚に上げてよくそういうこといえるよな....

よく言われるように(と言ってもこの無知連中は知らんと思うけど)低レイテンシと
高スループットはトレードオフなわけだが、何でスループットを犠牲にして
uSecオーダーのレイテンシなんかを実現しなきゃいかんのか。

そんな低レイテンシが求められる分野なんてほとんどないつーのw

409:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 20:04:11.80
>>407
マーそうなんだけどね。
そういえば最初C#始めた時に、何でコンストラクタにないんだよムキー!って言ってたの思い出した。(汗
俺の思考の設計がかなり不味いね!Orz

410:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 20:07:25.59
>>408
>そんな低レイテンシが求められる分野なんてほとんどないつーのw

まれにあるから、そういうことが出来るようにしとけ

と、言うだけのことだろ、馬鹿じゃねーのか?

411:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 20:09:27.23
まれにもないって。
>>410はそれが必用になるケースがあると思ってるんだろうが、
まず間違いなくそれは>>410が何か勘違いしてるだけ。

412:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 20:12:39.56
最近のアプリの激重具合はわけもわからずスレッドたてまくるからだろ?

413:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 20:17:41.53
>>411
お前がそういう状況を知らんだけ。

まあ、必用とか言うアホにありがちのことだが。(w

414:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 21:09:36.78
ReportViewerのデータソースにはTableAdapterに登録したものしか使えないのでしょうか?

xsdに登録したTableAdapterにクエリを追加しようとすると
[Microsoft][HY104][ODBC Microsoft Access Driver]有効桁数の値が無効です。 
と、エラーが出ます。SQL文で文字列に対しLIKE ? を使うとそのエラーが出ます。
数列に対して同じ文を入力すると問題無く出来ます。

URLリンク(www.atmarkit.co.jp)
このサイトの図11では文字列でも実行できるのですが図14で先ほどのエラーが出てしまいます。

OleDbConnectionを使ってmdbと接続し、Commandで文字列を探した場合は問題なく動作します。
現在はそれを使いDataGridViewに表示させているのでそのままReportに出力できるのが一番いいのですが・・・
宜しくお願いします。

415:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 21:14:42.34
>>382
いったいどういう意味でそういっているんだ?よくわからないから説明してくれないか?
>>377
>コンテキストスイッチは昔は概ね数マイクロ秒くらいな感じだったが、
>今はもう少し速いんじゃないかな、まあ目安は1マイクロ秒かそれ以下ってとこだろう。
マイクロだぜ?まいくろ。みりの千分の一だ。


416:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 21:16:13.35
まれに1msの精度を要求するメトロノームを作りたくなるかもしれないだろ!

417:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 21:17:21.27
>>415
わからないレベルに話しても無駄

418:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 21:19:56.63
まれにじゃないし
今作りたいし

419:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 21:24:32.67
>>415
エスパーしてみると、タスクスイッチまで1ms掛かるんだから(この段階でも色々無視しているがw)、1ms経たないと他のスレッドが実行できない
だからスレッドを乱立するプログラムが実行速度を損なっているじゃないかぁぁぁぁあって事じゃないかな?

俺には彼の説得は無理そうだから、お任せします

420:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 21:24:34.22
Sleep(1)が1msで戻らないからスレッド切り替えに1ms掛かってるとか抜かしてる人だもんねえ
Sleep(1)はタイムスライス破棄してないんだよ
スイッチ自体起こってない

421:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 21:44:33.99
>>415の話もトンデモだけどね。
何でGHz台で動いてるCPUでたかがコンテキストの保存と復元ごときにuSecオーダーの
時間がかかるんだよw

どんなにかかっても100PSecのオーダーにしかならんと思うけどw


422:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 21:46:33.16
単なるタイムスライス・ラウンドロビンではなくて、1ms 経たなくともシステムコールのタイミング等やI/Oウェイトでもスレッドのコンテキストスイッチは発生しうるというのに。

423:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 21:48:00.03
>>421
へえ。それはしらなかった。基本、SPとPCその他以外にもいろいろとセーブしまくっているかとおもっていたんだ。

424:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 21:56:52.96
>>420
え?それは意味わかんない
やってみると明らかに1ms以上返ってこないじゃん
何がいいたいの?

425:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 21:59:48.01
>>423
全てのレジスタのPush POPってマシン語で1命令だぜ
どのスレッドを次に実行するかなんかのプログラムの方はもう少し掛かるが

426:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 22:09:32.49
これのどこが初心者スレだ

427:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 22:15:23.69
今どきのCPUのコンテキストって数キロバイトに達するものもあるんだぜ?
カーネルモードへの切り替え、キャッシュフラッシュ、コンテキストの保存、ロード、ユーザモードへの切り替え
これくらいの処理が走るんだ、マイクロ秒レベルの時間がかかることは別に不思議ではない。
コンテキストスイッチの差異は、数千から1万CPUサイクルを消費するってのが一般的な目安。


428:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 22:15:35.13
マルチスレッドに魔法を感じてる人間がいるところさ

429:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 22:25:06.04
>>420
じゃあ、優先度を上げて、Sleep(10000)ってやればCPU張り付くんですねwww

430:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 22:31:24.16
この辺の仕組みってゲーム屋ぐらいしかまともに考えたことある奴いないよな
ゲーム屋でも間違ってるのいるし
ビジネスアプリ組んでる奴はほぼ壊滅状態

431:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 22:32:09.66
>>427
数キロバイトもレジスタないぞ?

432:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 22:41:44.97
おっと数キロは言い過ぎた。
でも例えばIA64なんかは1キロバイトは余裕で超えてたはずだ。



433:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 22:42:52.14
おやじはWin32時代に経験済み。

434:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 22:45:05.82
>>358
ParallelOptions.MaxDegreeOfParallelismプロパティ

435:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 22:50:28.10
>>434
あんがと

436:423 ◆QZaw55cn4c
12/04/08 23:00:26.28
>>428
うん。マルチコアに接続するひとつの方法だからね。
F# のアプローチが(今はそうでないにせよ)将来的にマルチコア対応ソフトウェアをシームレスに記述する方法に成長すればいいのだが

437:営利利用に関するLR審議中@詳細は自治スレへ
12/04/08 23:04:01.72
LinqもParallelも一番の問題は
どうやってプログレスバーを更新すかるだよな。

438:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 00:19:47.04
WindowsFormのボタンの枠を消す方法教えろ

439:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 00:26:06.28
えろ、まで読んだ。

440:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 00:30:48.93
>>435 オレも勉強したい。参考にソース見せて?!

441:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 00:32:27.96
>>438 まずボタンを消しまして、ラベルを上に配置します。

442:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 00:36:27.85
どんだけ物分りが悪いんだよ
しかも質問する方は態度でけえ奴が定期的に湧くし同一人物か

443:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 00:39:09.06
低姿勢で質問して答えが返ってきたことがない

444:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 00:40:50.21
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。

なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。

C#, C♯, C#相談室 Part71
スレリンク(tech板)

445:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 00:40:59.08
おい、C#だとWindowsFormのボタンの枠消せネーよ

446:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 00:42:05.45
いや、自分で煽っておいてなんだけどボタンの枠ってどこだよw

447:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 00:44:10.26
ボタン使わなきゃいいだろ もしくは自分で描画しろ

448:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 01:18:17.19
プログラミング自体始めたばかりで入門サイト見て回っているんだけど
どこも文法の解説ばかりでピンと来ない

初心者がよくやる間違ったコーディング例を提示してから
こうやると簡潔に書けますという正解例が書かれているようなサイトがあればうれしいんだけど
書籍にもそういうのがないんだよな

449:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 01:37:07.32
DataGridViewの一行一行に隠しデータを持たせる
(MFCでいう CListCtrlとかのGetItemData SetItemData)
には、どうすればいいでしょうか?

450:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 01:42:27.76
そういう数学みたいなものはないだろうな
書き方なんて数年ですっかり変わるし作るものも十人十色、記述の仕方も無限通りある
例えば電卓みたいなよくあるアルゴリズムを自分で作ってみて、
自分のソースを失敗例、公開されているものを正解例として比べてみるといいんじゃないの
まったく作れなければまだ実力が足りない 公式を丸暗記するレベルだから文法をまずは覚えるべき

451:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 01:46:48.98
>>449
カラムの項目ごとのvisibleをfalseにするだけでいけたと思う

452:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 01:49:08.31
>>448
極論だけど、最初から正しいコードを書こうとか思わず、
我流でもとにかく書いてみるほうが学習効率が高いと思うよ

453:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 01:54:59.82
>>448
welcome つ スレリンク(tech板)

454:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 01:57:35.10
>>452

まず書いてみないとわからないよね
10年以上やってる俺でもそういうときあるもの

455:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 02:10:59.70
やっぱり問題にぶち当たらないと人は考えないってことですかね
こういう高級言語って早々問題が生じるようなこともないんですよね
わかりにくいコードだから見やすく書こうと意識するぐらいで
ほとんどコピペで済みますし

例えば、テキストから文字列を一行づつ読みこむ場合
Listに追加していって返すのじゃなくて
イテレーターとLinq使ったほうがメモリの使用量が少なくて済みますという解説があって
なるほどと思ったけど、別にListのままでも問題ないんですよね
趣味でやる分には制限がないからあんまり上達しないんだろうな

456:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 02:26:28.31
>>451
いけた。こんな使い方していいのか。ありがとう

457:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 03:06:31.19
>>455
基本的にコピペは悪だよ。バグをバラまく可能性があるからね。
後はユニットテスト任せだな。

あと、自分は10行に一回位はコンパイルを試行するね。
オーダー的には未試行の行数が増えるほど不具合の数も跳ね上がるし。

458:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 03:17:52.03
Bitmapクラスって読み込めないjpegがあるね
ビューアーだと見れるのに読み込めない
面倒だけどどっかのdll使うしか無いのか

459:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 04:07:36.98
通りすがりの人にプログラミングを教えるような感じの解説をしてほしい
ようやく未確認飛行の解説が理解できるようになりかけてきたけど
最初の頃は全く理解できなかった
「C++でいうところの~」、「オブジェクト指向における~」
通りすがりの人にオブジェクト指向ってなんですか?って聞いて答えられる人なんていない
どんなに簡潔に書かれている文章であっても、専門用語混じりで書かれていたのでは理解に苦しむ

これからプログラミングを始めようとする人のための心構えみたいなものを教えて欲しい

460:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 04:19:11.18
>>459
多少わからないことがあっても、それはそれとして脇に置いといて、とにかく進む。
自分でサンプルプログラムを打つ。自分でコンパイルする。サンプルプログラムを変化させて挙動をみる。

461:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 04:27:09.80
>>459
勘とセンスが必要だ。

りんごって言ったら、味とか形とか用途とか思いつくけど、
そういう専門用語も慣れれば同じような感触を持つようになるよ。
食べれないけどね。

462:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 05:31:19.64
URLリンク(studiostyles.info)
コードエディタのカラーを変更

これいいね。背景が明るいから暗くしたいと思ってたんだよ

463:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 11:06:41.12
未使用変数やイベントハンドラの警告メッセージを表示させないようにするにはどうしたらいい?

あるインターフェースでイベントを定義し、そのインターフェースをインプリしたクラスで
一部イベントを使ってないのがあるんですよ。

インターフェースをインプリしたクラスのほとんどが、イベントを使うから、
インターフェースにイベントがある事自体は良いんだけど……

464:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 11:10:29.18
仮想メソッド

465:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 13:25:44.20
川俣さんの記事は厨二臭い

466:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 13:33:44.00
>>463
#pragma warning disable xxx

467:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 14:13:41.53
>>455
PC用にコード書くならもはやメモリの制限なんてあってないようなもんじゃね

468:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 14:18:32.37
大量の画像と動画と圧縮ファイル扱ってるけどメモリの問題は大変だよ

469:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 14:20:06.99
圧縮したままなるべく扱えば問題ねーだろ
なんでもかんでも展開したままにすりゃそらメモリ食うけど

470:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 14:33:04.19
URLリンク(www.atmarkit.co.jp)
これ理解できる人いる?

ラムダ式って、ある一つの機能(要素)を部分的に変更するって印象だけど
これみたいにあらゆる機能を詰め込んだものをどっさり渡すような使い方って有りなの?
それに1つのメソッドの中がごちゃごちゃし過ぎだと思うんだが

471:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 14:35:58.75
>>470
というかデリゲートで使うメソッドがすべて小さいわけじゃないしなあ

472:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 14:37:03.51
使い勝手重視だとそう簡単にはいかなくてね
先読みやデータ保持でメモリ数倍~数10倍、圧縮ファイルのままだと遅い
統合アーカイバDLLだと形式によってメモリ展開サポートしてないとか他にも色々
まあ大抵のソフトじゃリークさえしてなきゃ問題はないだろうな

473:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 14:40:13.09
>>472
圧縮したままというのはzip書庫などの話じゃない
今時jpegの表示に時間がかかる物なんてないだろ
メモリと速度気にするなら一部だけ展開して残りはjpegファイルのままメモリに置くとかさ
圧縮したたま=書庫じゃねーぞ
jpegなんかも圧縮してあるからw

474:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 14:44:26.45
bitmap画像がソリッド圧縮されている書庫内をビューに表示するときはどうするのさ

475:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 14:46:58.36
今時そんなアホいるのかよ

476:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 15:28:58.32
>>473
Bitmap型やImage型で持たないでStreamか何かで保持してろといいたいのか
まあそのとおりだな

477:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 15:31:38.36
いやもっとレベル低いことを言っているぞ
jpegで持てとか言っているしw
オフセットだけ取得しておけばいいんだよ

478:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 15:35:20.85
MemoryStreamって他のスレッドが書き込み中に
他のスレッドが読み込むと壊れたりしますか?

479:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 15:35:56.06
>>470
これの問題はそもそもGoTo,WarpTo,共通処理
という3つのメソッドに分ける必要が無いことだな
分けるために余計な要素が色々加わってややこしくなってる

void Goto(Arg arg, bool isWarp = false)
これ一個にしたほうが遥かにシンプル

ただinterfaceを渡すより必要なデリゲートを必要なだけ渡したほうが問題は難しくならないのは確か
interfaceの大きさを過不足なく設定するのは不可能だから

480:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 16:02:48.00
GoToとかWarpって命名が厨臭く感じるのは俺だけ?
dist,srcってのもなんか変、placeじゃなくてlocationやareaのほうがいい
MoveTo(target)orWalkToやTeleport(target)のほうがいい
それと自分としては歩くのとワープは明らかに動作も意味も違うので
goToに無理に統一するんじゃなくて、moveToとteleportで分けたほうがいいと思う
後々変更するとき面倒そう

481:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 16:08:39.26
後藤さんが作ったのかも

482:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 16:36:16.45
>>466
ありがと

483:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 16:41:35.43
問題なのは論理構造がちゃんと書いてないことだろう

ワープモードじゃなかったら歩く、というのがごちゃごちゃ書いてあってはっきりわからなかったり
OnLeaving()とかOnEntering()とか本質じゃないコードがトップレベルに書いてあったりしてノイズになってるからそれを直すと

if (currentPlace == distPlace) return;

if (warpMode)
 currentPlace.GoTo(distPlace);
else
 currentPlace.GoTo(distPlace, (...) => Walk(...));

// まだ知らない場所なら、その場所を学ぶ
if (!IsKnownPlace(currentPlace) && currentPlace.HasDistance)
{
 General.LearnPlace(currentPlace);
}

if (!warpMode)
{
 if(ストリーキング判定チェック())
 {
  ストリーキング実行();
 }
}

こんな感じになるか
ラムダを使ったほうが分かりやすくなるならラムダを使ったほうがいいしそうじゃないなら使わないほうがいい

484:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 17:13:50.47
俺だったらこんな感じで書く

public static void TeleportTo(Area target) teleportTo(target);
public static void MoveTo(Area target) moveTo(target);
private static void moveTo(Area target)
{
if (CheckCollision(me.Area,target)) return;
bool found = CheckFoundMe(me.Area) || CheckFoundMe(target);
me.BeginMove();
var distance = GetDistance(me.Area,target);
var timeReq = GetTimreRequired(me.WalkSpeed,distance);
State.ElapsedTime(timeReq, found, false);
me.Area = target;
me.Moved();

}

485:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 17:40:48.82
ラムダ式

public static void TeleportTo(Area target) moveTo(target,()=>{});
public static void WalkTo(Area target){
moveTo(target,()=>{
bool found = CheckFoundMe(me.Area) || CheckFoundMe(target);
var distance = GetDistance(me.Area,target);
var timeReq = GetTimreRequired(me.WalkSpeed,distance);
State.SetTime(timeReq, found, false);
});}
private static void moveTo(Area target,Action moveType)
{
if (CheckCollision(me.Area,target)) return;
me.BeginToMove();
me.Move(moveType);
me.Area = target;
me.Moved();

}

486:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 17:48:44.06
全然読めません!

487:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 17:50:38.47
せめてインデントがほしい

488:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 18:00:38.24
URLリンク(www.atmarkit.co.jp)
これとかすんげー参考になる
おれ、まさにこんなコーディングしてしまってたわーって感じ

川俣さんにも見て欲しい

489:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 18:46:02.66
>>478
もちろん

490:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 18:54:27.04
XmlElementとXElementかはどっちがいい?

491:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 18:56:24.24
手に馴染むほう

492:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 18:59:45.16
XmlElementのほーが

hogenode["banana"]
って書けて便利

493:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 19:27:40.16
数値や日付読むときにXElementのほうがキャストで書けて便利
記述の簡潔さならどう転んでもXmlElementに勝ち目はないだろ
Javaが好きかスクリプト言語が好きか、って感じ

494:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 20:00:13.44
XMLとJAVAが嫌いです。

495:414
12/04/09 20:37:09.32
自己解決しました。クエリは関係無く、ReportViewerにParamで値を送ってフィルタかけるだけでした

496:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 21:02:23.37
>>493
XMLにするときはXElementすごい便利だけど
XMLから型に戻すときたいへんじゃない?
正規表現使ったりして自前で戻すのん?

497:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 21:15:51.26
そりゃキャストで戻せる場合は限られてるけど
そういうとき面倒なのはXmlElementだって同じだろ

498:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 21:23:55.14
キャストで戻せる場合ってある?

499:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 21:25:57.56
数値一般とかDateTimeとか

500:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 02:11:51.76
(´・д・`)アラヤダ!!
知らなかったわ……

URLリンク(msdn.microsoft.com)

501:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 02:12:43.58
大量のデータは遅くて扱えないんだよなぁ。

502:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 07:48:37.85
コードがへたれなだけだろ

503:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 10:50:58.73
dwmapi.dllのDwmExtendFrameIntoClientArea使ってForm全体にGlassEffectを実装
ただし文字も含め黒色は全部glass化される
URLリンク(ideone.com)

labelやtextbox等を全部オーナードローしたりするのは高コストなので
UseCompatibleTextRenderingをtrueにして対処しようとしたけど変化なし
何故だかわかりますか?
URLリンク(msdn.microsoft.com)

504:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 13:12:28.35
IEnumerable<T>.Select(s=>正規表現で文字列取得)
yieldって値を1個しか返せないんですよね?
複数マッチした文字列を返したい場合は
素直にforeachでやるほうがいいのかな

505:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 13:22:03.58
SelectManyじゃね

506:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 13:51:27.75
Properties.Settings.Defaultに
Dictionaryとか放り込めない?

507:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 14:35:37.48
>>502
天才のコードプリーズ。
XMLパーサを速くするなんて論理的に不可能。

ほんと馬鹿は困る。

508:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 14:54:09.79
XMLSerializerはソースコード生成してcscで実行時コンパイルして高速実行してるな

509:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 15:04:29.32
どんなに高速化したってやってることはコンパイラと同じ。
字句解析して、構文解析して、最後に必ず型変換が入る。どうやっても時間がかかる。
ファイル読み込んだら型変換なしのバイナリデータの単純なシリアライズしたデータ形式には絶対に勝てない。

510:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 15:23:15.46
XMLSerializerはかなり早いよ
XML読んで変換するだけなら100MBとかなら十分実用になる
100MBで遅くなるようならコードがヘボいんだろうな

511:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 15:50:08.92
>>509は時代に置いてけぼりになってるね

512:営利利用に関するLR審議中@詳細は自治スレへ
12/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審議中@詳細は自治スレへ
12/04/10 15:57:20.70
>>511
理解できす逆ギレ乙w

514:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 16:00:04.43
アホな戦いすんな。見苦しい

515:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 16:01:00.89
多分
×Add1.AddSeconds(time1);
○Add1=Add1.AddSeconds(time1);

516:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 16:03:55.48
XMLが遅いってのはMSが言ってることだしな。
遅すぎてWinFSを開発中止にしたし。

>>509
そんなの誰でも知ってる。基本情報処理試験に出てくるレベル。
初心者スレだからって偉そうに

517:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 16:05:14.98
XMLが遅くないって言ってる馬鹿ってそもそもいない。

しかし、XMLが遅いと言うと逆ギレする馬鹿がいる。

518:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 16:05:47.66
>>515
動きました、ありがとうございます

519:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 16:08:41.00
なんでXaml作っているときに遅いと気付かなかったのか・・・

520:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 16:09:46.64
コンパイラとかでもそうだけど
C++みたいな変態言語でもなければ
結局ディスク読み込みがボトルネックになるからXMLでもなんでも変わらないんじゃないかね
まあバイナリのほうがはるかにデータ節約できるけど

521:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 16:19:15.03
intのディスクサイズはたいてい4バイト、XMLならその何倍もデータ量になるから、
大量データでは使い物にならない。所詮、メールとか、WEBサイトとかしか使えない。
ボトルネックであるHDDの遅さがさらに問題なる。
だからMSはVista開発時、ずっとHDDメーカーにもっと速くしろと文句を言っていた。

522:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 16:29:56.80
最大1000個のファイルを読み込んで、変換処理(1秒程度)をして、表示というプログラムを作っているんだけど
単純に並列でファイルを読み込むとHDDに負担がかかると思うのですが、どういう設計をすればいいですか?
何かヒントとなる単語を教えて下さい。あとはぐぐります。

523:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 16:39:37.97
ファイルを圧縮したらいいんじゃないか

524:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 16:59:26.47
>>520
意味不明。C++だろうとXML使えばHDD読み込みは遅くなる。

525:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 17:03:19.63
その1000個のデータはどういうものかによるんじゃね?

526:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 17:06:30.87
C++のソースをコンパイルする時に
ディスク読み込みよりコンパイル作業自体がボトルネックになるでしょう
普通の言語ならディスク読み込みがボトルネックになるでしょう
XMLも解析してどうこうよりディスク読み込みがボトルネックでしょう
ということ

527:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 17:10:10.29
普通の言語ってなんだよ?w

528:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 17:14:45.20
C#とか・・・

529:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 17:18:04.21
別にC++と比較してそんなにコンパイルは速くないだろ。

530:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 17:21:22.59
ファイルは画像ファイルやhtmlのソースコードです
並列にしてしまうと、ファイル読み込み時に
001スレッドはAファイルを読み込み+エンコード
002スレッドはBファイルを読み込み+エンコード


100スレッド
となって、HDDのヘッダが忙しく動きまわることになるんじゃないかと
HDDは並列では動作しないと思うのでそこをどうするのか気になります

531:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 17:23:58.96
直列にすればいいじゃん。

532:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 17:26:23.77
SSDかRAMディスクにしろよ

ゲームなどの細かいファイルならパックしてシーケンシャル読みがしやすくなるように
できるがそういうパックのしようがないのは置き場所を変えるしかない

533:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 17:28:12.26
>>527
<丶`∀´><ハングルニダ

534:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 17:30:03.93
Aファイルを読み込み→エンコード→A表示
→Bファイルを読み込み→エンコード→B表示→...
未表示項目は読み込み中表示やGIFアニメ
読み込み用スレッドは1つだけ

535:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 17:31:34.90
>>529
そうか?
遅いだろC++

536:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 17:32:48.66
C#むちゃくちゃ速い

537:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 17:34:16.97
プリコパイル使ってるからだろ。
C++もプリコンパイル効けば変わらない。

538:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 17:34:34.92
>>531
直列にできればいいのですが、自分の知識だと
一旦全部読み込んでから、エンコードを並列ということしかできなくて
直列でファイルを読み込んで、随時並列でエンコードしていくというのが実現できたらいいのですが
何かヒントを教えて下さい

539:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 17:36:15.00
RAMDISKかSSDを使う。

540:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 17:43:57.82
>>522
URLリンク(msdn.microsoft.com)
>たとえば、3 個のファイルをハードディスクから読み出すとしましょう。この場合、3 個のファイルの読み出し処理それぞれに、
>合計 3 個のスレッドを作成してもメリットはまったくありません。理由は簡単です。個々のスレッドは、同一のハードディスクを使用することになるからです。


541:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 17:55:15.92
ボトルネックを低減するには、コマンドキューイングするしか無いと思うんだけどねぇ。

542:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 17:57:09.11
SATA HDDは世代によるけど付いてるじゃん

543:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 18:02:31.16
バグの9割は使用者の無知

544:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 18:03:57.13
ただし、OracleとJavaは除く。

545:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 18:04:29.74
Method(){
スレッドをたちあげる
一つ読み込む
それをエンコードする
}

これを
Method(){
スレッドをたちあげる
一つ読み込む
Method();
それをエンコードする
}

こうしたらいいんじゃないの

546:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 18:21:56.30
>>542
まーそうだけど、ディスクを読むスレッドがあるならそれをちゃんと稼働させてビジーにしておくしか無いと思うのよ。

547:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 18:22:37.59
>>545
無限再帰。。。

548:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 18:28:13.68
>>538
producer-consumerっていう凄く使い古されたパターンがあるからクグれ

549:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 18:43:28.83
>>545
あほな…

ごく簡単にやるなら一つのスレッドでループで直列に読み込みながら、
一つ読む毎に変換処理をスレッドプールにキューイング。

って感じだけど、処理終わったら表示ってのがどういうのかイメージわかない。


550:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 18:48:13.82
>>517
んでビルドするとバイナリに変換されますって言うと「そんなのXMLじゃねえからXML名乗んな」って来るんですね
もう飽きました

551:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 18:50:34.48
テーブルでいいもんをXMLでわざわざ書かなきゃいけないときに冗長すぎて泣く

552:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 18:52:01.83
だからantは嫌いmake最高
ただしnmakeてめーは駄目だ

553:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 18:52:51.87
foreach(var filePath in filePathes)
{
 byte[] bytes = File.ReadAllBytes(filePath);
 スレッドスタート(() => Encode(bytes));
}

こんな感じのほうが普通か

554:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 18:55:57.48
ThreadPool.QueueUserWorkItemかTask.Startあたりをおススメしたいが
数によってはスレッドプールがストールするんだよなあ
あれさえなければ…なんだけどいまいち薦めにくい

555:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 19:15:53.55
>>549
今のところはファイルの一覧がListViewに表示されていて
変換中、完了というのがListViewの各項目に表示されるというだけです

完了したらHDDに保存したいです
保存はおそらく完了イベントを受け取ってから保存という形になると思いますが
これも同時に完了イベントが発生する可能性もあるし
さらに読み込み中に完了イベントが発生する可能性もあるので
読み込みと書き込み部分を一つのスレッドでしか扱えないように
ロックする方法が必要だと思います

今までは何も考えずに並列でやっていたので、HDDの断片化や消耗がひどかったんじゃないかと
1度の処理で1000ファイル合計約2GBぐらいです

556:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 19:22:08.28
コンカレントなキューあったよね確か

557:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 19:28:58.01
なにが目的なのかわかんね
スレッドはどうして必要なの?

558:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 19:31:34.36
inとoutが一つだとすると大して恩恵は無いような気がする
2GBとなると考えなしにメモリに貯めておけるデータじゃないしね

559:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 19:35:07.43
エロのパワーは人を進化させるよね

560:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 19:36:43.84
スレッドが必要な理由は、データの読み書き時間よりエンコードの時間のほうが長くかかるからです
同期的に処理をした場合、コアを1つしか使ってくれないので、もう少し処理を速くしたいなと思いまして

561:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 19:38:00.60
まあ1GBぐらいで抑えておかないと性能下がりそうな感じもするな
知らんけど

562:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 19:38:35.65
ま、途中経過はみたいからメインのスレッドとは別に1つ処理をするスレッドを立てるぐらいでいいような気がする
んでそのスレッドが1000ファイルやると同時に途中経過もステータスだか数字だかでメモリに吐き出す
メインスレッドではそれは見て表示
ぐらいしかやることねぇだろマジで
他、なんか新しい要素がないとこれ以上やる理由ない気がすんだけどな

563:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 19:43:11.29
やりたいだけだったらどうすればいいかすでに解答が出てるし
後は努力次第

564:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 19:44:58.64
スレッド云々より、ハードディスクの効率のいい読込みたいなのを気にしてるように見える。
1000個のファイルがきれいに並んでいて、並んでる順に読むんならそうできるんだろうけどさ。

565:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 19:48:32.57
ソースがHDDの領域に無作為に記録されていたり、断片化されているということは否定できません
しかし、並列処理をして、1クラスタごとに別ファイルを参照しに針がカコカコ動いていると思うと怖くて

566:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 19:49:07.36
>>560
それ明示的にコア2つ使うようにしてくんない気がする
スレッドが1つのHDDに対して読み書きしてるときはマルチタスクは意味がねぇ

1ファイル処理毎に

A:①データ読み書き→②エンコード
B:①データ読み書き→②エンコード
 ・
 ・
 ・

のAとBのそれぞれを2コアの処理でやってくれるかっつーと甘い気がすんだよな
ぶっちゃけやってくれないと思う
このへんの処理ってどうなってるか詳しくしらないんだけど

並列にしたいのは
A-①とB-②の処理とA-②とB-①の処理のタッグだよね?
こんな賢く判断してくれるかなぁ・・・っつーとなんか甘い気がw

567:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 19:54:57.25
なんか変だぞ

568:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 19:57:41.11
>>566
スレッドGUI
スレッド1:A①→B①→A保存→C①→B保存→D読み込み中
スレッド2:A②→C②
スレッド3:B②→D読み込み待

こんな感じです

569:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 19:58:00.34
なにが変なんだよ

570:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 19:58:51.79
>>568
そんなの並列化しねぇよ
マルチタスクに夢みんなよ

571:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 19:59:08.10
基本は

読む→Enqueue→Dequeue→書く→読む→Enqueue→Dequeue→書く→…

のスレッドが一つと

Dequeue→エンコ→Enqueue→Dequeue→エンコ→…

のスレッドが複数だろう
うまく動くにはフラグが必要だが長くなるので省略している
効率を考えるとキューの状況に応じて読みと書きを切り替えるべきだろうけど
質問者のレベルだと難しすぎて無理だろ

572:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 19:59:59.82
だから最初から読み込みはシングルスレッドで
エンコードだけマルチスレッドでって話だっただろ

573:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 20:05:29.51
2コアで動く条件もわからずスレッドわけたりしてるけど
そこはどうだろうか?
俺はよくわからないからいつも別exeにしちゃうけど

574:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 20:05:56.56
よく分からないなら首を突っ込まんほうがいいぞ

575:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 20:07:42.66
>>568
そこまで分かってるならその通りに書けばいいんだよ
流れとしてはそれで問題ない

で、何が問題なんだ?

576:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 20:07:46.79
とりあえず俺以上にわかってない奴等ばっかだったから大丈夫
基本的に同じHDDや同じインスタンスにアクセスしてるようなプログラムは並列で動かん

577:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 20:09:27.70
>>576
お前ここ3日くらいとんでもない発言繰り返してるけど何かの病気なの?

578:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 20:10:31.22
>>577
違ってる部分指摘しろよ

579:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 20:10:31.59
370 名前:営利利用に関するLR審議中@詳細は自治スレへ[sage] 投稿日:2012/04/08(日) 16:54:27.11
スレッドは不思議な魔法で並列動作をしてるわけじゃなくて
やはり単一のCPUでやってることをそろそろ認識すべきだと思う
上のほうに勝手に並列でとかあるけど
そんなこと物理的にできるわけない
んでドキュメントを見る限りどうもAPIのスレッド機能はなにやら糞っぽい・・・と

こいつの臭いがする

580:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 20:12:11.06
>>578
まず質問者の前提ではHDDにアクセスするスレッドは1つだ

581:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 20:17:35.99
>>575
読み込まれたファイルからスレッドプールにキューイングという部分がよくわかりません。

Thread.Start()

を使って次々立てていたんですが、各所でThreadを使わないほうがいいと言われているようなので

582:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 20:18:09.34
どうせ名無しで書いてるんだから、間違いを指摘されたら黙ってフェードアウトすりゃいいのにな。
ちょっとかかなりか知らんけど精神病んでるよな

583:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 20:19:16.02
>>581
プロデューサーコンシューマーパターンでググって自力でがんばれ
アホも沸いてるようだからここは今から荒れるぞ

あとこの場合はThread使っていい
どうせスレッドプールはつっかえる

584:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 20:20:18.59
>>550
XMLは糞遅い。この事実はどうしようもない。

585:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 20:20:24.28
>>582
間違いあるなら指摘しろよ
アンカーもつけずになにキタネェ対応してんだよ

586:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 20:21:13.82
アンカーつけてりゃ偉いって2ch初めてかよ

587:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 20:23:18.39
アンカーも付いてないのに自分のことだって分かるんか。

588:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 20:24:21.35
コンテキストで分かるだろ。

589:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 20:24:49.09
>>583
教えていただいた、いろいろな単語をググって調べてみます
ありがとうございました

590:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 20:32:04.12
>>583
どう考えてもプールむき出しそっちのが楽。
ストールは最初に最小スレッド数設定すりゃいいだけ。
自分でスレッド立てると、スレッド数とか気にしなきゃならないから面倒なだけだぜ。

まあTaskの方が良いけど。


591:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 20:33:35.44
高負荷ってはじめから分かってるなら、
スレッド数は論理CPUの数だけに制限したほうがいいに決まってる。
ファイル読み込みは1スレッドで
その後の処理は論理CPUの数だけのThread使いまわせばいいだけ。

592:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 20:35:14.80
それを言うならスレッドプールを使えばあとはよろしくやってくれるだろ

593:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 20:35:18.36
>>590
楽かどうかじゃなくて

>要求が少ないときは、スレッド プールの実際のスレッド数が最小値を下回る場合があります。

こんなこと書いてるメソッドには何の意味もないんだよ。

594:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 20:35:26.43
XMLをビルドするとバイナリに変換されるってなんのことだ?

595:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 20:40:43.84
>>593
馬鹿ハッケーン

596:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 20:40:48.79
>>592
GetMaxThreadsの数まで増えても別に効率的になるわけじゃないし全然宜しくないよ。

597:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 20:41:34.53
>>593
アホなの?


598:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 20:41:43.76
>>596
真性馬鹿ハッケーン

599:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 20:44:33.81
それよりもこっちの方が

>.NET Framework 4 以降では、スループットを最適化するために、スレッド プールでスレッドの作成と破棄が行われます。

…4以前は?

600:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 20:45:15.86
他にプールでやる処理が色々あるなら別だが、そうでもなきゃスレッドプールで困る事なんてそうないぜ。
使ったことないんじゃないか?
場合によっては困ることがあるのはスレッド開始に待ちが入ることくらいだが、
これは最小スレッド数を設定すりゃすむ話。


601:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 20:47:29.29
いくつに設定すればいいですか?

602:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 20:49:32.39
エラー出たときに1000ファイル分かき集めるの
やればいい話だけど

603:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 20:51:00.87
ファイルがでかいものもあるなら、セマフォも使って処理投入段階でブロックしとけ。
論理コア数と同じくらいがまあセオリー。


604:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 20:52:28.96
>>602
何を言ってるの?

605:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 20:53:09.36
AdvancedWindowsのどこかには論理コア数+1って書いてあった気がする
+1がよく分からなかったが

606:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 20:53:57.67
ウンコにさわるやつもウンコ

607:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 21:11:18.80
>>605
判らんけどI/O待ち想定なのかな?
最低2スレッド無いと却って効率悪くなる

608:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 21:11:40.78
>>599
勘違いしている気がするが、「4以前ではスレッドの作成と破棄をやっていなかった」ってことじゃないぞ
QueueUserWorkItemなどが実行された時にスレッド数を調整してたって話
4からはこの調整自体をスレッドプール内で定期的に動かすようになった

要は裏で自動調整するようになったんだけど、弊害として
スレッドプールが埋まっている場合、調整処理自体が巣レットプールの待ち行列で待たされるようになった
そのため長い処理でスレッドプールを埋めてしまった場合の一時的なパフォーマンス低下は4以前より悪くなっている

MSDNはTPL使え使えばっかり書いてあるように見えるが、Thread使った方がいい場合もきちんと書いてある
URLリンク(msdn.microsoft.com)

609:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 21:11:58.58
何言ってんだこいつ

610:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 21:13:08.22
また逆ギレか。

611:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 21:15:42.87
逆じゃないキレ方をどうぞ

612:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 21:16:28.78
ウンコにさわるやつもウンコ

613:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 21:18:10.43
>>611
逆ギレとは「キレたいのはこっちの方だ!」と言いたくなるキレ方のことです

614:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 21:18:37.16
>>611
正ギレ

615:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 21:19:44.33
>>605
今回の場合はメインの読み込みスレッドと合わせて+1になる。


616:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 21:33:06.01
では次回は?

617:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 21:47:42.22
切れ痔ですか?

618:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 22:51:20.00
スレッドプールを使うとメモリが足りないとか論理コア数を超えるとかいうときには
スレッドを起動しないでくれるわけかね

619:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 22:55:50.29
最近のスレッドプールはスレッド数を指定しないのかね?

620:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 22:57:11.13
なんだよ
失敗しろよ>new

621:営利利用に関するLR審議中@詳細は自治スレへ
12/04/10 23:18:41.50
基本、空いてるCPUがあって待機してるスレッドがなければスレッドが新たに起動されるイメージ。
論理コア数を超えていても、空いてるコアがあればスレッドは起動される(もちろん上限はあるし、一定の待機時間があったりもする)。


622:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 00:27:03.42
そもそもその議論とコア数は無関係じゃないかと思うんだけど....

なんかちょっと前から気になってるんだけど、マルチコアの時代になったからって
プロセスがCPUを占有できるわけではない事実は何も変わってないことが分かってない
人が結構いるような気がするんだけど気のせいか?

623:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 00:36:09.94
IDがないと誰が何喋ってるのかも分からんしNGもできんし最悪だな

624:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 00:44:01.47
質問スレでID導入してくれなんて吠えてるお前は病気だよw

625:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 00:48:20.26
他に高負荷スレッドがなければ占有してるのか変わらないわけだが。
論理コア数より多くの高負荷のスレッドを乱立すれば、
無駄なコンテキストスイッチが増えて遅くなる。

626:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 00:48:57.37
370 名前:営利利用に関するLR審議中@詳細は自治スレへ[sage] 投稿日:2012/04/08(日) 16:54:27.11
スレッドは不思議な魔法で並列動作をしてるわけじゃなくて
やはり単一のCPUでやってることをそろそろ認識すべきだと思う
上のほうに勝手に並列でとかあるけど
そんなこと物理的にできるわけない
んでドキュメントを見る限りどうもAPIのスレッド機能はなにやら糞っぽい・・・と

>>622
この二人同一人物でしょ
どう見てもNG対象じゃん
言ってることも意味不明だし

627:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 00:51:37.68
気色悪いなあ....
別に同一人物だったら何だって話だが、一応言っとくけど違うから。

628:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 00:53:38.54
.netはDirectComputeは取り込んでくれるの?

629:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 00:56:04.64
っていうか、読む気もないけど>>370の人物は単に排他的にしか使えない資源を
同時に使うことは出来ない、っていう同義語反復をやってるだけじゃなの?

言ってることが誰でも分かる同義語反復に過ぎないから叩かれてるような印象だったが。

>>622(=俺)はそんな同義語反復は言ってないし

630:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 00:58:16.84
>>622はスレッドプールが同時に走らせるスレッド数がコア数と無関係だって言ってるんでしょ
意味不明じゃん

631:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 01:00:12.94
>>630
スレの流れを把握しろって。
鳥頭に言っても無駄だと思うけど

632:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 01:07:27.75
じゃあどういう流れなのか言ってみろよw

633:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 01:31:43.34
この障害者暇なんだな

634:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 01:32:58.96
匿名の掲示板に何を言っても無駄
過度な期待は禁物だな

635:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 01:34:06.54
そうやって人生諦めているんだね

636:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 01:50:25.45
コアの数に関係ないってのが何が言いたいのかわからんなあ。
今回の話でコアを全部フルで使うことになるかはまた別だが、
CPU能力が余ってたら単にコアが空いた状態になるだけ。
処理が十分に重いならコア全部フルで使うことになる。
もちろん他のプロセスの状況によるなんて言うまでもない話は置いといて。
ファイル読み込むより処理時間のが長いって前提があるんだから、
マルチコアで処理することに意味がある。


637:営利利用に関するLR審議中@詳細は自治スレへ
12/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審議中@詳細は自治スレへ
12/04/11 01:56:05.73
あんまコア数使ってると、CPUをこあすぞ

639:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 01:57:16.65
STAのスレッドでやれよ。


640:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 02:10:45.41
ごめんなさい、C#というかプログラミング自体始めてでして。
STAがどうとかではなく、単純にstringの物をクリップボードに貼り付けられればいいのです。
なにかいい方法は無いでしょうか?

641:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 02:15:21.10
VisualStudio使ってないか、プログラミング自体初めてなのにスレッド使ってるか
どっち?

642:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 02:16:23.40
だからSTAじゃないと貼り付けられねーつってんだよ。
何のプログラムなの?
WindowsFormのアプリ?
Consoleアプリ?
その他?


643:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 02:19:20.91
Clipboard.SetText("{0}", 変数名);
こっちはそもそも使い方間違っとるし。


644:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 02:19:29.02
Visual C# 2010 Express使ってます。
ググったらクリップボードに貼り付けるには二通りあって?
Clipboard.SetText("テキスト"); か Clipboard.SetDataObject(変数名, true(またはflase)); があるっぽいことがわかりました。
Clipboard.SetTextで普通に文字を入力するとエラーを吐かない、だけど「"{0}",変数名」とかって書くとエラーを吐く。
どっちも同じ文字なんだし大丈夫なんじゃないか?とは思うんですがエラーを吐くのでコンパイルできない状態です。
これを何とかしたい、とおもいこのスレに来ました。スレッドを使いたい、とかそういうこだわりはないです。

645:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 02:20:06.83
>>642
Consoleアプリです。
>>643
なんと、間違いでしたか。申し訳ないです。

646:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 02:22:25.73
>>637
これWPFでなったことあるな

647:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 02:23:46.02
どういう使い方してるConsoleアプリか知らないが、
簡単なのはエラーメッセージに出てる通り、
Main 関数に STAThreadAttribute を適用すること。
[STAThread]
をMainメソッドの前に入れればいい。

それができないならやや面倒だが…

648:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 02:27:01.09
っていうかConsoleアプリでクリップボード使うってそれほんとに問題ない?
そういう目的にアプリなら別だが、あまり使わんぜ普通。


649:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 02:27:52.63
>>647
解決しました、ありがとうございます。
[STAThread]
static void Main(string[] args)
みたいな書き方をすればよかったんですね、勉強になりました。
ID表示されないのでわからないですが他の方もありがとうございました。

650:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 02:28:38.58
>>648
urlつっこんで、一部置換して吐き出す
って処理をするのにいちいち選択しているのがめんどくさかったのでどうにかできないかな、と思いました。

651:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 05:08:18.74
ToolStripMenuItem

名前長いし
なんかするたびにキャストが必要で不便すぎるんだが

652:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 05:09:34.10
バカには無理

653:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 05:16:54.18
不便なら便利なクラスを自分で作ればOK。
無理して使う必要は全くない。

654:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 06:07:26.28
res.Headers.AllKeys.Where((key) =>
{
 Console.WriteLine(key);
 return true;
});

何も表示されないんですがなぜですか?

655:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 06:19:26.83
遅延実行系はforeachするまで呼び出されない

656:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 06:50:11.39
よくわかりませんができないってことですね

657:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 09:22:05.20
バグの 津波が 俺を 飲み込む

658:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 09:28:49.07
技術の 壁が 俺を 阻む

659:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 09:42:08.88
仕様 変更が 俺を 打ちのめす

660:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 12:13:35.69
納期が 迫る 俺を 錯乱させる

661:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 12:15:13.50
なんかワロタ
疲れてるな俺

662:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 12:16:55.06
周囲の 談笑が 俺を 罵る

663:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 12:29:57.63
納豆が 俺を その気に させる

664:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 12:39:16.94
ツマンネ

665:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 12:42:46.96
束の間 惰眠が 俺を 誘う

666:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 12:43:44.70
こんなとこに書き込む俺はもう致命傷なのかもしれない
助けてくれ

667:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 17:16:30.67
SEは狂う奴が多いよなw

668:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 18:04:13.46
その前に過労死が多い

669:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 18:09:29.07
>>667
SEは狂わないよ。
SEの無能妄想設計をPGに丸投げ、強要するから、PGが発狂するんだよ。

670:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 18:11:25.80
障害者ばっかり

671:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 18:20:09.36
日本が好き過ぎて自腹で滞在延長!イケメン俳優エズラ・ミラー、和食のうまさに顔面緩みまくり!?

映画『少年は残酷な弓を射る』のPRのため来日していたイケメン俳優エズラ・ミラーが、
あまりに日本を好きになってしまったため、自腹を切って滞在を延期、電車で移動しながら
日本を満喫しているという。
切れ長の目と黒髪が印象的な美青年エズラは、アメリカ在住の現在19歳。昨年出演した
『少年は残酷な弓を射る』で、完ぺきな息子ながら、母親にだけ異常に反抗を示す少年を演じ、
その演技力と美しさが評判に。実写版「AKIRA」で鉄雄役の有力候補として名前が挙がったことも話題となった。
エズラ本人は、劇中と違い明るくておしゃべりが大好きな青年なのだとか。今回スーツケースではなく、
リュック一つという飾り気のないスタイルで初来日。小学生のころによく「日本人の女の子みたい」
と言われていたこともあってか(!?)滞在中にすっかり日本が気に入ってしまい、来日スケジュールが過ぎた後も、
自分でゲストハウスを見つけ、自腹で滞在を延期してしまったという。
日本では何もかもが楽しいようで、とにかくおおはしゃぎのエズラ。移動はもっぱら電車で、
屋形船に乗ったかと思えば、代々木公園と中目黒で花見、さらに原宿や浅草を探索しゲームセンターも満喫。
焼肉屋では和牛のあまりのおいしさに表情も緩みまくり。さらに初体験のクリームソーダに目を輝かせていた
という。あげく上野のフリーマーケットでは、着物の下に着る肌じゅばんを試着して周囲に笑われ、
「下着みたいなものを試着していたから笑われたんだと思う」とコメントしていたとか。
ちなみにエズラは、今回本物の和食を口にしたことで、ニューヨークに帰ったら、今まで食べていた日本食は
偽物で、おいしくないと思うだろう、本当に困ったことになった! と頭を抱えているのだとか。
イケメンながら三枚目な素顔に、さらに好感度アップといったところだが、それを知った上で、
映画での冷酷な演技を見れば、一層エズラの力量と将来性を感じることができそうだ。
URLリンク(www.cinematoday.jp)

672:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 19:30:32.82
ネトウヨきもっ、まで読んだ。

673:営利利用に関するLR審議中@詳細は自治スレへ
12/04/11 19:31:40.42
うんこでそうなんでづが

674:デフォルトの名無しさん
12/04/11 20:51:28.44
へぇ

675:デフォルトの名無しさん
12/04/11 21:45:14.85
>>654
Whereの使い方がまるっきり間違ってる
なんにもWhereじゃない

676:デフォルトの名無しさん
12/04/11 22:04:56.65
>>675
わかりきっているこというなよバカ
実際こんなコードなわけないだろアホか

677:デフォルトの名無しさん
12/04/11 22:12:04.38
指摘がずれてる。0点。

678:デフォルトの名無しさん
12/04/11 22:14:11.47
驚いたなあ
質問したいんじゃなくて荒らしたいだけか

679:デフォルトの名無しさん
12/04/11 22:15:43.63
答えられない奴は無理に答えなくて言いって言っただろ

680:デフォルトの名無しさん
12/04/11 22:18:04.99
LINQのラムダの中に書いたコードはforeachとかToArrayなんかを使って
実際に列挙されるまで実行されない
って書いても多分わからないふりして荒らすだけなんだろうな
それいぜんにWhereの使い方が間違ってるからLINQを使わないのが正しいんだが

681:デフォルトの名無しさん
12/04/11 22:22:57.11
LINQって人気ないの?
SQL文を文字列じゃなくてコンパイラがチェックしてくれるところなんかはよさそうじゃない?

んでも移植のときにLINQ無い言語に移植するってなったときにぶっちゃけ最悪だな

682:デフォルトの名無しさん
12/04/11 22:23:55.23
SQLに使ったことはないけど
コレクションを使うときにLINQなしはもはや考えられない

683:デフォルトの名無しさん
12/04/11 22:27:49.42
>>680
> LINQのラムダの中に書いたコードはforeachとかToArrayなんかを使って
> 実際に列挙されるまで実行されない
まてまて、LINQってのはforeachの代用になるものじゃないのか?
何で取り出すのにまた反復処理しないとだめなのさ

> って書いても多分わからないふりして荒らすだけなんだろうな
荒らしているのは俺じゃない

> それいぜんにWhereの使い方が間違ってるからLINQを使わないのが正しいんだが
だからー、実際こんな使い方しているわけないだろ
問題の指摘をしやすいように余計なもの削除しただけだろ
指摘する上で何か不都合あるのか?

684:デフォルトの名無しさん
12/04/11 22:34:00.73
実際にとりだすまで反復処理が行われないって言ってるんだよ
とりだすのに、「また」反復処理してるんじゃない


685:デフォルトの名無しさん
12/04/11 22:34:04.63
そこまで言うならコピペで実行できるサンプルを作って貼ってくれよ
長いなら>>3使えばいい
普通ならこれくらい数分でできるだろ

686:デフォルトの名無しさん
12/04/11 22:35:36.77
>>683
LINQはforeachの代用はしていない
foreachにはforeachを使う

SelectやWhereやその他もろもろのコレクションに対する操作に使うのがLINQ
その実行結果を取ってくるにはforeachやなんかで列挙する必要があり
その列挙が行われる時までラムダは実行されない

>>676
>わかりきっているこというなよバカ
>実際こんなコードなわけないだろアホか

このバカとかアホとかは荒らしてるうちには入らないのかお前の認識では

687:デフォルトの名無しさん
12/04/11 22:36:31.01
>>683

>>654の後ろにCount()とかつけてみ表示されるから。

何で(この段階で)表示されないのか?という質問については
何度も回答されてるけど遅延実行だからだよ

688:デフォルトの名無しさん
12/04/11 22:38:39.41
>>684
実際使われるって、LINQの戻り値であるコレクションを使うってことか

反復処理中に途中経過表示したいだけなんだがなぁ
そうなるとforeachするしかないのか

689:デフォルトの名無しさん
12/04/11 22:41:11.46
派遣先で無意味にLINQを使いまくってみるかw
なんでもLINQ使って俺がみないと解読不能なソースにしよう

690:デフォルトの名無しさん
12/04/11 22:43:36.56
>>687
Count()つけたら表示されたw
どういうことだこれ

691:デフォルトの名無しさん
12/04/11 22:43:47.88
SelectやWhereなんてLINQ使わないと読むの大変だし
Listを作って変換してAddしていってとか今更書くのも読むのも耐えられない

692:デフォルトの名無しさん
12/04/11 22:47:11.09
>>688
だから途中経過なんて無いんだよ
foreachしてみるまでわからん

693:デフォルトの名無しさん
12/04/11 22:50:44.20
でもselectやwhereでバグったor苦労した覚えなんてないんだよ

694:デフォルトの名無しさん
12/04/11 22:52:09.23

>>686
> SelectやWhereやその他もろもろのコレクションに対する操作に使うのがLINQ
> その実行結果を取ってくるにはforeachやなんかで列挙する必要があり
> その列挙が行われる時までラムダは実行されない

ってことは、例えばファイルから文字列読み込む時
実際にその文字列を画面に表示するときにファイルにアクセスするってことか
それってめちゃくちゃ遅いじゃんw

> このバカとかアホとかは荒らしてるうちには入らないのかお前の認識では
見当違いな指摘するのは荒らし行為だろw

695:デフォルトの名無しさん
12/04/11 22:54:20.01
>>694
ファイルはバッファというのがあってだな・・・後はググれ

696:デフォルトの名無しさん
12/04/11 22:56:55.06
>>694
普通に考えてファイル全部読み込んでから文字列全示するより
一列読んだら即表示 ってやった方がレスポンスがいいだろ
メモリ消費量も少なくて済む

見当違いなのはお前の質問の仕方そしてバカとかアホとか言い出す態度だからな
まず恥を知ってそれから敬意を持って質問をするようにしろ

697:デフォルトの名無しさん
12/04/11 23:01:01.54
質問の仕方は何も悪くない
問題点をわかりやすく簡潔に表現したつもり

Whereの使い方なんて今関係ないし
アホといわれても仕方が無いだろ

698:デフォルトの名無しさん
12/04/11 23:04:41.13
var result = res.Headers.AllKeys.Where((key) =>
{
 Console.WriteLine(key);
 return key=="Content-Length";
});

じゃあこんな感じでかきゃよかったのか?一緒だろ

699:デフォルトの名無しさん
12/04/11 23:04:51.59
問題点をわかりやすく説明したいなら
違う問題点があからさまに存在するコードを出すべきではないことぐらい分からんかね

SelectやWhereの話で言うと
Selectしたらそれを実行して実行後の配列を作る
さらにWhereをやって全部実行して実行後の配列を作る・・・

とやっていく事自体は容易いけどもいちいち配列を作るのは大変だしメモリも消費するから非効率なので
Select,Whereといった命令だけ溜めておいて列挙するときに一気に実行してるわけだな

700:デフォルトの名無しさん
12/04/11 23:05:30.47
あー、なるほどー
無駄が多いんだね
LINQって
やっぱりSQL文の代わりに使うぐらいしかないな

701:デフォルトの名無しさん
12/04/11 23:06:19.08
>>696
それってなんかHDDに負荷かけてる気がしない?

702:デフォルトの名無しさん
12/04/11 23:06:20.11
だから無駄が少なくなるようにやってるんだよLINQは
なんで無駄が多いってことになるんだよ
別に無駄はあるけども

703:デフォルトの名無しさん
12/04/11 23:06:42.44
100baikakarusine-

704:デフォルトの名無しさん
12/04/11 23:07:09.72
そうだね気がするねー

705:デフォルトの名無しさん
12/04/11 23:08:46.16
>>701
HDDから読み込む時は1行だけ読むってやっても裏では一気に読み込んでるから平気だよ

706:デフォルトの名無しさん
12/04/11 23:10:26.78
>>705
一気に読み込んだものはどこにいったの?

707:デフォルトの名無しさん
12/04/11 23:10:52.79
>>706
OSがキャッシュしてまた読み込まれるときに備えてるよ

708:デフォルトの名無しさん
12/04/11 23:12:42.88
そうだよそなえてるよ

709:デフォルトの名無しさん
12/04/11 23:12:58.57
北朝鮮 発射へ燃料の注入開始


北朝鮮は、人工衛星としている事実上のミサイルについて、
発射の最終段階である燃料の注入が始まったことを明らかにしました。

URLリンク(www3.nhk.or.jp)

710:デフォルトの名無しさん
12/04/11 23:13:11.65
4GBの動画の場合は?
これも一気に読み込むの?

711:デフォルトの名無しさん
12/04/11 23:13:18.00
僕の股間のミサイルも発射しそうです

712:デフォルトの名無しさん
12/04/11 23:14:50.06
なんか無駄多そうだぞ>LINQ

713:デフォルトの名無しさん
12/04/11 23:15:05.96
>>710
LINQ何に使うんだよ
そんなもんLINQ使わなくても特別な配慮が必要に決まってる

714:デフォルトの名無しさん
12/04/11 23:16:46.60
>>705
表示するまで次のセクタの読み込み命令出してないのに?

715:デフォルトの名無しさん
12/04/11 23:17:27.89
そうだよ無駄だよー

716:デフォルトの名無しさん
12/04/11 23:17:42.50
そうだね出してないねー

717:デフォルトの名無しさん
12/04/11 23:18:16.24
詭弁のガイドラインの実演会か

718:デフォルトの名無しさん
12/04/11 23:18:34.68
コンサートだよ

719:デフォルトの名無しさん
12/04/11 23:18:59.00
将来の移植も考えるとLINQ手を出すべきじゃないな

720:デフォルトの名無しさん
12/04/11 23:19:30.39
そうです手を出すべきじゃないです

721:デフォルトの名無しさん
12/04/11 23:21:23.96
>>713
そういう問題じゃなくて、1行づつ読むコードなのに一気に読み込んでるんでしょ?
その仕組みを教えてよ

あと、キャッシュは一旦読み込んだファイルを
高速なメモリ領域に保持する仕組みであって
一気に読み出すのとはまた別の話だと思うけど
そこら辺も詳しく教えてよ

722:デフォルトの名無しさん
12/04/11 23:23:17.03
そうだな教えてほしいな

723:デフォルトの名無しさん
12/04/11 23:24:10.77
動画のヘッダだけ読み出したいときも一気に4GBも読み込むの?
しかもキャッシュされるの?どうやって?

724:デフォルトの名無しさん
12/04/11 23:24:38.84
>>721
普通、ストリームで最後まで読む場合でも小さいバッフアでちびちび読むと思うけど?
少なくとも.NETのライブラリの実装はそうだよ

725:デフォルトの名無しさん
12/04/11 23:25:21.16
どうやってだろうね

726:デフォルトの名無しさん
12/04/11 23:31:26.85
YES! GUTS!

727:デフォルトの名無しさん
12/04/11 23:36:36.16
無敵のLINQでなんとかしてくださいよォ!

728:デフォルトの名無しさん
12/04/11 23:42:42.12
なにこのLINQ至上主義者

729:デフォルトの名無しさん
12/04/11 23:49:16.56
>>721
HDDから読み込むときの最小単位は512バイトだからその512バイト分はどうしたって読むよね
実際に一度にどのくらいのサイズを読むのかっていうのはちょっと検索してみたけどよく分かんなかったわ
512バイト分しか読まないことはないと思うけどね

730:デフォルトの名無しさん
12/04/11 23:56:15.96
Linqはまじ使えないって。
プログレスバーを更新できないからな。

731:デフォルトの名無しさん
12/04/12 00:08:58.82
マジかよLINQ
プログレスバーを更新できないんじゃ砂時計しかねーじゃねぇかよ

○●○●○●

↑こんなのトグルで表示して許してくれるお客さんばっかりじゃねーぞ!

732:デフォルトの名無しさん
12/04/12 00:10:44.23
出来るだろ別に
PLINQとかで一個やるたびにプログレスバー進めりゃいいんだろ

733:デフォルトの名無しさん
12/04/12 00:13:07.63
ネタならネタでいいからせめて少しは笑えること書けよ。
ヲタ臭いんだよ。気色悪いっての。
モニターの前でデブヲタが引き笑いしてる気味が悪い絵しか思い浮かばん。

734:デフォルトの名無しさん
12/04/12 00:16:36.45
>>733
アンチグレアディスプレイおすすめ

735:デフォルトの名無しさん
12/04/12 00:18:01.45
つ 手鏡

736:デフォルトの名無しさん
12/04/12 00:18:29.15
同属嫌悪?

737:デフォルトの名無しさん
12/04/12 00:18:57.56
>>732
なんだできんのかよ

738:デフォルトの名無しさん
12/04/12 00:22:31.93
>>737
できねーよ。

739:デフォルトの名無しさん
12/04/12 00:23:17.09
はっきりしろ!>LINQ

740:デフォルトの名無しさん
12/04/12 00:23:42.12
LINQの冒険

741:デフォルトの名無しさん
12/04/12 00:30:07.98
LINQタウン

742:デフォルトの名無しさん
12/04/12 01:17:48.73
お前は今までにSelectしたSequenceの数を覚えているのか?

743:デフォルトの名無しさん
12/04/12 01:47:26.42
めろLINQ

744:デフォルトの名無しさん
12/04/12 01:49:23.70
おっさん多すぎワロタ

745:デフォルトの名無しさん
12/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:デフォルトの名無しさん
12/04/12 03:28:14.52
そのコードだとCreateのところがlog.txtを開きっぱなしで握ったままになってるので
Closeもしないと

747:デフォルトの名無しさん
12/04/12 03:40:05.82
if (!File.Exists("log.txt"))
{
var fs = File.Create("log.txt");
fs.Close();
}
これでできました。ありがとうございました。

748:デフォルトの名無しさん
12/04/12 03:40:14.16
>>745
MSDNインストールした?

749:デフォルトの名無しさん
12/04/12 09:14:36.62
Windowsのキャッシュの仕組みも知らない奴ばかりなんだな。
マジレスすると、キャッシュマネージャが裏で勝手にある程度先読みしてる。
プログラムで読もうとしたときにセクタを読むわけじゃねーよ。


750:デフォルトの名無しさん
12/04/12 09:21:31.53
もちろんプログラムからの読み取りアクセスの形態をある程度考慮してて、
シーケンシャルな読み込みとかなら次にプログラムが読もうとする前に、
先読みして出来るだけ準備済みになるように制御してる。

751:デフォルトの名無しさん
12/04/12 09:28:37.95
まさかスーパーフェッチのこと言ってるんじゃないだろうなw

752:デフォルトの名無しさん
12/04/12 09:39:32.55
もし問題があるならアプリケーション側でバッファすることもできるし非同期で読んでもいいわけだし
LINQみたいにクソ抽象度高いものとそんな低レベルな話を一緒にするのが無理があるわw

753:デフォルトの名無しさん
12/04/12 09:43:02.87
スーパーフェッチ切ってない情弱なんてこのスレにいるの?

754:デフォルトの名無しさん
12/04/12 09:45:23.49
特定の事にしか使ってないならスーパーフェッチは非常に有効

755:デフォルトの名無しさん
12/04/12 10:11:21.40
システムをSSDに入れてない奴なんているわけないよな

756:デフォルトの名無しさん
12/04/12 11:03:49.29
スーパーフェッチなんか関係ないつーの。
そんな設定とか関係なくWindowsでは勝手に自動で行われてる処理だよ。

まあFileStream内部のバッファも少しあるけどね。


757:デフォルトの名無しさん
12/04/12 11:06:17.84
あー無知は大人しくしとけよ恥ずかしい。
Windowsのキャッシュなんて明示的に使わない指定しない限り
当たり前に常に使われてるもんだよ。


758:デフォルトの名無しさん
12/04/12 11:10:37.38
Windowsのキャッシュマネージャーは確か、
前回2回分のプログラムからの読み取り要求を考慮して
次の先読み動作を自動的に行う。
プログラムから2回シーケンシャルに読み取り要求されると、
次回は読み取り要求される前にキャッシュにファイル内容が満たされるように、
自動で先読みが行われるようになる。


759:デフォルトの名無しさん
12/04/12 11:18:08.93
キャッシュに関する似たような話、予想と違う動作をする話としては、
FileStreamをフラッシュしてもファイルを閉じてもプロセス終了までしても、
ディスクへのデータの書き込みは完了しないなんてのもあるな。

今時のOS環境じゃ、OSが裏でやってることってのは複雑極まる。

760:デフォルトの名無しさん
12/04/12 12:18:20.24
アプリケーションレイヤーの事しか分からん奴がぐずぐず言ってんじゃねえってことですね

761:デフォルトの名無しさん
12/04/12 12:39:33.25
ファイルストリームのバッファサイズ設定とか意味あんの?
OSがキャッシュしてるものをさらにバッファリングとか

762:デフォルトの名無しさん
12/04/12 12:42:57.11
素人が意味なんか考えんなよクソ生意気に
意味ないと思うなら勝手に減らしてろカス

763:デフォルトの名無しさん
12/04/12 13:38:27.50
意味あるよ。
おかげでバイト単位とか、細かい粒度で読み込みしてもパフォーマンス上大きなネックにならない。
もしバッファがないと、読み込みの度にOSのカーネルモード呼び出しが発生して、
大きなパフォーマンスネックが発生する。


764:デフォルトの名無しさん
12/04/12 13:40:29.32
もちろんある程度のまとまりサイズで読み込む分には意味ないけどね。


765:762
12/04/12 13:42:51.96
やっぱ慇懃に煽った方が反応がいいな
あからさまなのは駄目だ

766:デフォルトの名無しさん
12/04/12 14:22:45.58
ワンパターン過ぎ

767:デフォルトの名無しさん
12/04/12 14:27:19.27
NGしてえ・・・

768:デフォルトの名無しさん
12/04/12 15:00:57.33
インサイドウインドウズ全部読めばキャッシュマネージャのこととかも書いてあるわけ?

769:デフォルトの名無しさん
12/04/12 15:36:12.74
しかし、計測してみると、
バッファを大きくしたり、一気に読み込むより、小さいバッファで回したほうが速いんだよね。

これはなんで?

770:デフォルトの名無しさん
12/04/12 15:40:24.17
大きすぎてCPUキャッシュからあふれるとか
計測誤差とかじゃねえの

771:デフォルトの名無しさん
12/04/12 15:44:58.60
>>768
書いてあるけど、スーパーフェッチは第五版だから英語だけかな。

772:デフォルトの名無しさん
12/04/12 16:02:33.13
>>769
一気に読み込むサイズによるが、先読みの大きさは限られてるから、
粒度が大きくなりすぎると実質的に間欠読み込みな動きになってしまうんじゃないか?
要は先読みが一回に読み込むサイズの途中までしか利いてないみたいな。
あまり大きいと実質キャッシュなしに近くなるかもしれんしな。


773:デフォルトの名無しさん
12/04/12 16:05:34.32
ファイルIOやキャッシュマネージャら辺はもしかしたらVista以降では結構変わってたかもしれん。

774:デフォルトの名無しさん
12/04/12 16:13:20.33
スーパーフェッチだからな。
日本人はスーパーというと安いというイメージがあるが、アメリカではすげーって意味だ。

775:デフォルトの名無しさん
12/04/12 16:15:58.31
それってスーパーマンが流行ってた頃の話だろ
スーパーなんて死語だよ

776:デフォルトの名無しさん
12/04/12 16:24:43.16
スーパーファミコンだろ

777:デフォルトの名無しさん
12/04/12 17:24:37.52
スーパーチャイニーズだろ

778:デフォルトの名無しさん
12/04/12 19:11:51.70
非同期ソケット通信でクライアント側送受信してみたいんだけれど
MSDNのサンプルだと理解できなかった。マニュアルリセットコールバックとかいきなり難易度高すぎた。
どっから始めたらいいのかなぁ。

779:デフォルトの名無しさん
12/04/12 19:13:53.53
そんなあなたにWCF


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch