ふらっと C#,C♯,C#(初心者用) Part129 [無断転載禁止]©2ch.net

レス数が1000を超えています。これ以上書き込みはできません。
2017/06/09(金) 18:36:01.72ID:lNiKtgPwM

「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。

内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。

なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part128
http://mevius.2ch.net/test/read.cgi/tech/1493730340/

■関連スレ
C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1492843013/

■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/

■情報源
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
---
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2017/07/17(月) 18:38:09.74ID:DedzLYOT0
>>989
System.Threading.Thread.CurrentThread.Priorityで、優先度弄れるらしいが、実際に使ったこと無いから何とも・・・
スレッドのメソッドの上の方で指定すればOK
2017/07/17(月) 19:05:43.77ID:GUuZ6Fu+M
スケジューラを実装するといいよ
優先度の設定があるけどそれをどう解釈するかはスケジューラの実装によるからね
2017/07/17(月) 19:20:13.04ID:hqPHwZli0
並列にするメリットが全くわからないのだけれど?
分析能力の欠如っていうか脳がやられたの?
2017/07/17(月) 20:49:23.39ID:NQ4+oaEv0
謎行為やってるなとは思うが
謎行為をする動機を語ってないからそう見えるだけだろ
と好意的に解釈してやる
2017/07/17(月) 21:19:25.73ID:c9FD5MjOM
とりあえずダウンロードしたファイルはさっさとローカルに保存しなよ
ネットワークに余裕がある時にDBにストアすればいい
2017/07/18(火) 00:41:32.31ID:SlyZJJmU0
現役PGの頃に宇宙仮面のサイトみてたけど

2014年で更新止まってるんだよね。

あの人生きてる???
2017/07/18(火) 00:46:21.86ID:y43ZtB+J0
>>995
そういうのここでやんないでくんない?
2017/07/18(火) 01:08:53.19ID:4C5Wl6we0
>>990,991
ありがとう。スケジューラの方向で色々やってみる

>>992,993
ありがとう。動機を説明してみるので、おかしな実装だったら指摘してもらえると嬉しい。
わりと見たことある実装だと思ってるんだけど・・
どこの部分に対する指摘かわからなかったので3点で書いてみる

1.なんでファイルDLしてるの
→空いた時間にダウンロードして、日時の決まった時間にDBを更新するようなバッチじゃないから

2.DLタスクが並列な理由
DLタスクでは数kbのファイルを読み込んで、それをパースしてDBに格納するデータに変換してる。
ファイルは10数個のサーバ毎に日時で1万個くらい生成される。
→各サーバに対して並列で一斉(ないし数台)にリクエストを送る方が、サーバ*ファイル数分、直列でやるより速いと思ってる

3.DLタスクとDBへの書き込みが並列な理由
DLタスクが終了してからDB書き込みしてももちろん動作はする
(実際はメモリの関係で、何度かに分割するだろうけど)

DLタスクはネットワークがボトルネック
DBタスクはDBでの処理がボトルネック*1

→だったらDLタスクが一部終わる毎にDBに書き込ませていった方が、全体のパフォーマンスとして効率的だと思ってる

(本当にpriorityが問題なのかとか、*1が正いかとか、スケールの話は実装とか環境によると思うので省いてほしい。パースはDBタスクの方じゃってのも)
2017/07/18(火) 01:13:35.64ID:4C5Wl6we0
訂正
誤)1.なんでファイルDLしてるの
正)1.なんでファイルDLして保存しないの
2017/07/18(火) 02:18:02.65ID:tovqy0R70
書き込みタスクもファイル毎に別なのか?
どうせシリアルなら書き込みはBlockingQueue使って単一コンテキストでループさせ続けるのが無難だと思うが
2017/07/18(火) 02:23:36.02ID:tovqy0R70
訂正
ConcurrentQueueを使ったBlockingCollectionだな
BlockingCollectionなら上限数を指定しとけばコンシューマの処理が追いつかないときにプロデューサをブロックすることもできるよ
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 38日 7時間 47分 35秒
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況