ふらっとC#,C♯,C#(初心者用) Part89at TECH
ふらっとC#,C♯,C#(初心者用) Part89 - 暇つぶし2ch713:デフォルトの名無しさん
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