[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 07/14 21:46 / Filesize : 141 KB / Number-of Response : 721
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C#, C♯, C#相談室 Part55



1 名前:デフォルトの名無しさん mailto:sage [2009/12/06(日) 23:54:00 ]
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。

前スレ
C#, C♯, C#相談室 Part55
pc12.2ch.net/test/read.cgi/tech/1255530225/

Visual C# 2008 Express Edition 日本語版
www.microsoft.com/japan/msdn/vstudio/express/vcsharp/

その他テンプレ>>2-5くらい

331 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 21:58:17 ]
>>330
なるほど、奥が深いな・・・

332 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 22:24:38 ]
>>331
酸素が薄くなってきましたね・・・

333 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 22:36:08 ]
static Stopwatch() {
  bool succeeded = SafeNativeMethods.QueryPerformanceFrequency(out Frequency);
  if(!succeeded) {
    IsHighResolution = false;
    Frequency = TicksPerSecond;
    tickFrequency = 1;
  }
  else {
    IsHighResolution = true;
    tickFrequency = TicksPerSecond;
    tickFrequency /= Frequency;
  }
}

public void Start() {
  if(!isRunning) {
    startTimeStamp = GetTimestamp();
    isRunning = true;
  }
}

public static long GetTimestamp() {
  if(IsHighResolution) {
    long timestamp = 0;
    SafeNativeMethods.QueryPerformanceCounter(out timestamp);
    return timestamp;
  }
  else {
    return DateTime.UtcNow.Ticks;
  }
}

334 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 22:40:43 ]
(・∀・)

335 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 22:50:52 ]
>Environment.TickCount:00:00:00.3905401
TickCountは単位としては1/1000秒、精度的には1/100秒程度だろ。
この例では1億回の実行中に39種類しかtickを返してないわけだ。
ちとずるいな。

336 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 22:53:16 ]
ずるいとかそういう問題なのか?

337 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 22:54:16 ]
そういう問題だ。ケチ付けんな。

338 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 22:59:09 ]
ケチじゃなくて疑問でしょ。
突っ込まれたら答えられない程度の理解の人が
急いで先回りで釘刺すみたいな反応しなくても。

339 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 23:00:43 ]
- - - - - - - やまおり - - - - - - -



340 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 23:03:29 ]
タイムスタンプの呼び出しを気にするような
微細なキャッシュ処理をしてるのに、
タイムスタンプが荒すぎるんじゃないのかと。

341 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 23:08:06 ]
227をどう読んでも、その後の227の話をどう読んでも
そんなに粗いとは思わないがな。

342 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 23:09:26 ]
それは、はじめから分かっていたこと。
たぶんロジックを考え直せばシリアルをつけていけばすむ。

343 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 23:13:01 ]
ハナから精度の問題じゃねえじゃん。
だから「そういう問題なのか?」って言ったのに。
死ね土方。

344 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 23:14:07 ]


345 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 23:15:40 ]
2chには同族嫌悪というか、ニートとかドカタとか同じ境遇の人がののしりあう傾向があるな。

346 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 23:17:01 ]
病んでるからね

347 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 23:21:54 ]
それで少しでも救われるなら喜んでドカタと罵しられるさ。

348 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 23:22:45 ]
もうすぐハッピーニューイヤーなんだから明るく行こうぜ。

349 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 23:28:35 ]
お前ら明るく行こうぜ!!!!!!!!!!!



350 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 23:28:46 ]
テキストデータベースの効率のいい検索方法ってどんな方法がありますか?
Google検索とか膨大なデータベースの割に一瞬で検索できますよね?
どういう仕組みなんでしょうか

351 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 23:31:44 ]
>>350
Googleはアルゴリズムはもとよりバックボーンが凄いんだと思う。
MapReduceとかもそのバックボーンがあってこその仕組みだし。

テキスト全文検索ならwikipediaにまとめがあるからそっからたどるといいよ
ja.wikipedia.org/wiki/%E5%85%A8%E6%96%87%E6%A4%9C%E7%B4%A2

352 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 23:32:05 ]
>>350
Google検索に関しては
あらかじめ分類して結果をキャッシュしておく。
最新のデータを使わずキャッシュを使う。
正確さを求めない。

なので勘定系のDBでこういう手法はご法度。

353 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 23:33:31 ]
全文検索はインデックスを先に作るってことで処理速度の短縮を測るのが多いような。
最近のDBはそういう全文検索機能まで付いてるのもあるんじゃなかったっけ?

354 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 23:35:30 ]
(・∀・)ニューイヤー!

355 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 23:41:49 ]
>>335
ずるいっちゃずるいんだけどさ、最初からそういう話で
今さらそこを突っ込まれても困る。


356 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 23:45:19 ]
たとえばintとlongの計算どっちが速い?
って疑問が出たとして計測したらintのが速かったとして
そこで、intはビット数半分だろ?ちとずるいな
って言われても困るんだ。


357 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 23:56:23 ]
一緒だけどな。

358 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 00:23:38 ]
一緒だね

359 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 00:29:06 ]
ずっと一緒だよ ///



360 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 00:38:24 ]
x64なら同じ、x86ならlongのが3倍ほど遅いという結果になった。


361 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 00:55:02 ]
x64、x86と来たら次はx108になるのかな?

362 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 00:55:48 ]
80186ですね。わかります。

363 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 00:56:13 ]
話を戻すが、>>227はキャッシュの有効性を判別する値に使いたいんだから、
精度(precision)はどうでもいいけど分解能(resolution)はかなり重要

で、それぞれの(公称の)分解能は

Environment.TickCount: 500ms
DateTime.UtcNow: 10ms
Stopwatch.GetTimestamp: H/W性能に依存

>>266によると「ピーク時は一秒間に数百回コールされる」とのこと
簡単のため500Hzとすると周期は2msで、あきらかに前2者は不十分


364 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 01:00:04 ]
>Environment.TickCount: 500ms
まあこれは実態に合ってない数値だけどな。
それはおいといて、更新を確実に確認したいなら素直にカウントにするべきだわな。


365 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 01:01:28 ]
あれInterlocked厨大勝利の流れ?

366 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 01:05:00 ]
なんでedだけ小文字なん

367 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 01:09:28 ]
>>363
どうでもいいことに突っ込んで悪いけど、計測において「精度」と対比されるのは
「確度」じゃないの?

その分解能って精度とどう違うのよ?
というより、それって精度そのものじゃん。

368 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 01:21:03 ]
いやまあ、たぶんLSBの大きさっていうか、
最小測定単位のことを言いたいんだろうってのは分かるけどね。

ただ、>>363に出てくる測定値の「誤差」ってのは、計測器そのものの
量子化誤差によるものというより、測定器を操作する側(つまりソフト)の
問題に起因する誤差だから、「分解能」ってのは概念的にしか意味を持たないよね。

369 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 01:21:50 ]
ないない



370 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 01:45:53 ]
>>365
いや、同一スレッドで(Interlocked使わずに)インクリメント&取得をする方がベター

371 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 01:54:28 ]
どこの国のベターだよ

372 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 02:00:20 ]
>>227は下層のエレメントが多数合って、
不特定のスレッドから勝手に情報が書き換えられるイメージで、
上層の管理スレッドが下層のエレメントの様子を見て
変更があればそれに応じた処理をするのだと思うけど。
そうなると変更があったことを示すシーケンスを作る出すのが
同一スレッドというわけにはいかない。

373 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 02:28:52 ]
そうは思えんが。
>上層の管理スレッドが下層のエレメントの様子を見て
>変更があればそれに応じた処理をするのだと思うけど。
こんなことを別スレッドで監視する馬鹿はいない。


374 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 02:34:02 ]
更新自体は複数スレッドからあったとしても、
こういうバージョンカウンタはスレッドセーフでなくてもよい場合もある。


375 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 02:35:10 ]
[割り込み|シグナル|コールバック|イベントドリブン]が理解できないので〜〜〜
よくある話ではある。

376 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 02:44:20 ]
そういう話なら、そもそもバージョン管理自体入らないんじゃね。
変更があったら即書き換える。

377 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 02:58:19 ]
ウェブサーバーもシングルスレッドで大丈夫とか言っちゃう人かな。
できなくはないだろうけがしんどいのと違うかなぁ。
>ピーク時は一秒間に数百回コールされる可能性あるので。 


378 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 03:16:13 ]
>>350
分散処理

379 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 07:20:38 ]
0



380 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 07:43:12 ]
実行中に時刻の修正が入ったら、どうなる?

381 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 07:47:12 ]
DateTime系以外は影響なし


382 名前:227 mailto:sage [2009/12/28(月) 08:06:38 ]
朝起きたらすれが膨大に増えてて吹いた&さーせん。

基本的にユーザーの操作によって位置などが変えられる可能性があり、描画時に上の階層の更新時刻?をすべて舐めて更新されてたら絶対座標などの再計算を行うというものなので
後からの呼び出しが同時刻もしくはそれ以降であることが保障されるなら精度は数百ミリセクでも足ります。

計算してくれた人ありです。その時間なら問題なかです。

そもそもの更新時刻?みて再計算がやり方として正しいのかわからんですがとりあえず実装してみまふ。すくなくとも今の毎回上から全計算しながら下るよりは速いと願いたいw


383 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 10:33:58 ]
そろそろ誰か3行でたのむ。
とちゅうでついていけなくなった。

384 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 10:50:53 ]
>>382
それって、ただのカウンタでいいってことじゃない。

385 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 10:54:15 ]
場合によってはフラグでも・・・


386 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 11:58:05 ]
ハッシュとか

387 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 12:07:00 ]
>>377
誰に言ってるのか何が言いたいのか分からん

388 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 12:09:59 ]
たとえ更新が複数スレッドでも、その用途ならvolatile変数程度で普通にインクリメントで十分。
最もその前に更新自体が複数スレッドから正常に行えるか確認いるけどな。



389 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 12:15:13 ]
volatileのincrementは安全なのか?



390 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 12:17:30 ]
絶対座標取得時は親の座標取得して加算てのと余り変わらん気がするが。
キャッシュするなら、全キャッシュの一発無効化が出来るプラグや更新バージョンを使わんと、
結局全親のトラバースが必要なので大して効果ないと思う。
何せ計算自体の負荷が小さいだろうから。
計算が結構重いなら効果あるだろうけど。

391 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 12:21:59 ]
volatileではもちろんインクリメントはスレッドセーフじゃない。
でも、キャッシュの無効化のための更新バージョンなんてのは、それでも実質的にうまく動く。
考えて見たら分かるよ。
更新が競合しない場合→当然問題なし
更新が競合する場合→結果として必ず誰かが1回は更新することになるので問題なし


392 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 12:25:21 ]
後はビットフラグなんかで上手く工夫すれば、子孫だけキャッシュ無効化ってのもひょっとするとできるかもしれない。


393 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 12:26:44 ]
>>391
ああそういうことね。ただ前提を創作しすぎるのはどうかと。
それだったらバージョンの更新は、
キャッシュを使ってる側がやれば十分でないかな。

394 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 12:27:47 ]
とにかく、現状の考え方である、キャッシュの確認も実際の座標計算も同じだけトラバースが必要な設計では、
計算自体がそこそこ重くないとあまり効果は期待できない。


395 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 12:33:29 ]
うみねこのなく頃にのような展開で話が見えない

396 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 12:39:46 ]
実際のとこ、ホントにそんな計算に時間かかってるの?
要素数はトータルでどのくらい?
また現状のコードはどんなの?

それから、絶対座標計算するのは描画などの特定タイミングで一斉にやるの?
一斉にやるなら、ルートから全要素をトラバースするやり方ならそんな無駄はない。
あるいはこれと全要素共通の更新バージョンとの組み合わせ。


397 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 12:43:06 ]
それでも遅いなら特定子孫のみを無効化出来るようにビットフラグなんかで工夫、
ただしこれはうまくできるかは分からない、頭の中で設計出来てない。
出来たとしてもちょっと複雑になるから効果は落ちる可能性が高い。



398 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 12:53:27 ]
産業

399 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 16:57:48 ]
みなさん!自己解決しました!



400 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 05:44:35 ]
みなって誰?

401 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 08:17:31 ]
青江

402 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 10:06:33 ]
流石の俺も「青江」は出ねぇわw

403 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 12:44:01 ]
(  ̄ー ̄)ふーん…

404 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 12:50:04 ]
    (  ̄ー ̄)
  (  ̄ー ̄)(  ̄ー ̄)
(  ̄ー ̄)(  ̄ー ̄)(  ̄ー ̄)

405 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 13:14:47 ]
    (  ̄ー ̄)
  (  ̄ー ̄)(  ̄ー ̄)
(  ̄ー ̄)(  ̄ー ̄)(TーT)


406 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 13:29:20 ]
使い捨て下っ端のITドカタを表現したAAですね

407 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 13:57:46 ]
本物のドカタは定刻で帰れるがな。

408 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 15:06:59 ]
がながな。

409 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 15:52:14 ]
VC#2008で行番号が表示されないんですが。知ってる人いませんか?



410 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 15:53:23 ]
ありますたorzスミマセン

411 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 17:32:37 ]
単にあったかだけ書かずにどこにあったかも書いとけよ

412 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 17:42:48 ]
かわりに書いておいてください
では

413 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 17:47:51 ]
死ねハゲ

414 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 17:56:50 ]
悪性のタコだな

415 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 18:02:22 ]
C#でDictionary型の連想配列のディープコピーをするには
ループでコピーするしかないですか?

416 名前:415 mailto:sage [2009/12/29(火) 18:05:18 ]
自己解決しました

417 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 18:06:20 ]
はいはい

418 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 18:08:40 ]
>>416
答え書け、バカ

419 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 18:10:54 ]
>>418
イヤです。



420 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 18:10:59 ]
>>416-418
自演乙
誰だよお前w>>416

421 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 18:16:02 ]
こんなカスが常駐してるからID非表示の板は嫌なんだ
おとなしくループでしこしこやってるわ

422 名前:デフォルトの名無しさん [2009/12/29(火) 18:20:57 ]
>>421
どうしても答え欲しいならトリップでもつけりゃいいじゃん
あほなの?

423 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 18:23:23 ]
冬休みで基地外が居座ってる確率が急上昇中だな。

424 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 18:25:52 ]
たいへんだな

425 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 18:28:05 ]
まぁ、本当に自己解決したからいいわw
ループコピーの関数作ったから。

426 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 20:39:25 ]
UserControl継承してコントロール拵えてたんだけど
パブリックプロパティ作ったらデザイナが勝手にnull入れようとしてくるのね。
そのプロパティはnull許容できないからArgumentNullException吐いてるのね。
それでも執拗にnull入れてくるのね。

たぶんこの辺を制御する属性があるはずなんで教えてください。

427 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 20:40:02 ]
DefaultValueAttribute

428 名前: ◆dqVzDvT5pM mailto:sage [2009/12/29(火) 20:40:47 ]
よろしくおねがいします

429 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 20:41:58 ]
こちらこそよろしくおねがいします



430 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 20:42:34 ]
>>427
ありがとうござます。

431 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 21:23:32 ]
こんごともよろしく






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<141KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef