ヒマをみつけてWeb開発
その場の思い付きを、ヒマをみつけてWebサイトにしてみるブログ

DateTime.Ticksの精度は100ナノ秒ではない

Thursday, 6 May 2010 07:41 by sabro

DateTime.Ticksプロパティの説明には

「このプロパティの値は、0001 年 1 月 1 日午前 00:00:00 (DateTime.MinValue を表します) 以降の経過時間 (100 ナノ秒単位) を表します。」

って書いてあります。でも、これは桁数がそれだけ用意してありますよっていうだけで、実際は、動作OSによって精度が異なるみたいです。

ちょっとうちのVistaで実験

static void Main(string[] args)
{
	for (int i = 0; i < 100; i++)
	{
		Console.WriteLine(DateTime.Now.Ticks);
	}
}

こんなかんじで実行したところ、結果は以下のような感じでした。

634086940404282076
634086940404312076
634086940404312076
634086940404312076
634086940404312076
634086940404312076
634086940404312076
634086940404312076
634086940404312076
634086940404312076
634086940404312076
634086940404312076
634086940404312076
634086940404312076
634086940404312076
634086940404312076
634086940404322076
634086940404322076
634086940404322076
634086940404322076
634086940404322076
634086940404322076
634086940404322076
634086940404322076
634086940404322076
:
:

下4桁は固定で、1ミリ秒単位で増加するようです。うっかりMSDNの内容をうのみにしないように気をつけないといけませんね。

こっから蛇足。

なんで、こんな実験したかっていうと、作成中のCassandra LINQプロバイダ、Cassandraemonで、TimeUUIDをキーにする必要があったからなんです。TimeUUIDは、現在の100ナノ秒単位のタイムスタンプから生成されるIDのようなもので、かなりの確率で複数マシン間で一意になることになってます。

ところが、これをDateTime.Ticksから生成すると、1ミリ秒単位なので結構な確率で同じものが生成されてしまうんですね。これでは、テーブルのキーとして使うには厳しいわけです。

うーん、内部でミリ秒以下は適当に生成するとかで凌ぐしかないのかなあ。なんかいいアイデアないでしょうか( ̄∇  ̄ )

Tags:   , , , ,
Categories:   .NET
Actions:   Permalink | Comments (43) | Comment RSSRSS comment feed

Vista に Gimp をインストールしてみた

Saturday, 14 April 2007 11:22 by sabro

Vista に Gimp を入れるのは、少し不安だったので、今までは、openSUSE の Gimp を使っていたんだけど、Gimp を使うたびに、OS を切り替えるのが面倒なのと、私のブログに、妙に「vista gimp」の検索で飛んでくる人が多いという使命感から(笑)、じゃあ、入れてやろうじゃないか、ということになりました。

Windows Vista and The GIMPというエントリで、フォントの初回読込みで、待たされるということは、知っていたので、そこだけ気をつければ、普通にインストールできました。

↓ フォント読込みで、応答なしになるの図
フォント読込み

以前の、Windowsで、Document and Settings 以下に作られていた、ユーザ設定のディレクトリは、Vista では、C:\User 配下に正しく作られました。

ユーザ設定フォルダに、古い OS で使用していた、Script-Fu や Font をコピーしてやることで、そのまま使えることも確認。

↓ 以前作った、角丸Script-Fuを試すの図
Gimp on Vista

とりあえず、問題なく使えてます。

Tags:   ,
Categories:   WebDesign
Actions:   Permalink | Comments (49) | Comment RSSRSS comment feed

VistaにSynergyを入れてみた

Sunday, 1 April 2007 11:36 by sabro

一応報告。

LAN 間での、マウス、キーボード、クリップボード共有ソフト、Synergy が、Vista で動作しました。

ちなみに、サーバ側 Vista で、クライアント XP Home で動かしてます。まだまだ、Vista での動作に対応してない、アプリもあるので、両方使える環境にしておかないとね。

Tags:   ,
Categories:   Windows
Actions:   Permalink | Comments (43) | Comment RSSRSS comment feed

Vistaで、はてなツールバーのアップデートが失敗する

Monday, 12 March 2007 23:33 by sabro

なぜか、ダウンロードに失敗して、更新できない。

ファイアーウォールも、ウイルスソフトも切ったのに・・・。

Vistaなのが悪いのか、IE7なのが悪いのかも謎。

とりあえず、1度、アンインストールして、最新版をインストールしたら、ちゃんと更新されたみたい。

Tags:   ,
Categories:   Windows
Actions:   Permalink | Comments (39) | Comment RSSRSS comment feed

openSUSEのインストールでハマる

Wednesday, 7 March 2007 16:09 by sabro
前回のエントリで、チラッと触れたように、VistaとLinuxの、デュアルブートに挑戦。OSには、openSUSEを選択し、いざインストール!!

インストール前
\(^o^)/

30分後
\(^o^)/ SUSEオワタ

正常にブートして、インストール方法を選ぶ画面までは、いくんだけど、インストールをスタートすると、なぜか、「CD not found」みたいなエラーが出る。じゃあ、今の画面は、どこから読み込んでんスカ・・・。

ネットをうろつき、Hacking openSUSE 10.2というページの、The "CD not found" error before installationというセクションで、対策を発見。最新のマザーボードで、起こるエラーらしい。

書いてあるとおりに、IDEのドライバまわりを、いじって活性化させてやると、インストールができた \(^o^)/

後は、順調に進んで、無事にデュアルブート環境が構築できました。
Tags:   ,
Categories:   Linux
Actions:   Permalink | Comments (46) | Comment RSSRSS comment feed

Vistaを買った

Sunday, 4 March 2007 11:04 by sabro

やや、時期尚早かとは思いながらも、メインPCを、Windows Vistaマシンに買い換えました。

マシンスペックは以下

  • CPU Core 2 Duo 6600 2.4GHz
  • メモリ DDR2-SDRAM 2048MB PC2-5300
  • HDD 250GB Serial-ATA Ⅱ × 2
  • グラフィックボード NVIDIA GeForce7600GS
  • モニタ 20インチ 1600×1200(UXGA)
  • OS Windows Vista Ultimate

かなり、奮発したので、操作は快適です。Linuxとのデュアルブートに挑戦したかったので、HDDは、2個にしました。

次に、自分が感じた、良い点、悪い点を、参考までに書いてみます。

良い点
  • Windows Aeroが、かっこいい
  • サイドバーガジェットが便利(CPUメモリ使用率、カレンダー、RSSフィードとか)
  • ユーザディレクトリが、「C:\Users」になってスッキリ
  • .NET Framework3.0が、最初から入っている
悪い点
  • メモリ食いすぎ。起動しただけで、500MB超えてる。
  • vistaに対応してないアプリが結構ある (Eclipseは、まだ動かないらしい)
  • 何か実行するたびに、セキュリティのポップアップが出る(いい点でもあるけど)

Web開発とは、あまり関係ないネタですが、また何か気づいたら、書いてみようと思います。

Tags:  
Categories:   Windows
Actions:   Permalink | Comments (34) | Comment RSSRSS comment feed