これは買いですね!…という私的メモ。(w
日星工業から、CR-Zの電球タイプが判明!
比較的お手軽で、お財布にもやさしい(?)電球の交換から考えてみよ~♪
いやぁ、CR-Zの取扱説明書にも記載がないので、助かりますね。
ルームランプはLED!LED! 白い光が大好きdeth!
…なんだ、この逝かれたテンションは。
今や、こんな雑誌もあるんですね。つい買ってしまいそうになったwww
…べ、べつに痛車にはしないんだからねっ!
…やばいっす。このワクテカ度w
はやく、7月になって、CR-Zこないかなぁ…w
と、テンションは上がりまくりの今日この頃ですが、
冷静になって考えてみると、あと15週間…
あと105日と考えると、凹みます…。(´・ω・`)ショボーン
Blu-rayドライブを買ってみました。出た当初は10万円近かった書き込みドライブも、今では2万円台と随分手頃になりました。
ちなみに私のtx2005/CTでは、読み込み時もバスパワーで動作せず、ACアダプターが必要なようでした。
地デジレコーダーからダビングしてきたのも見られるようになりました。
いいよね、CR-Z…
と、契約してきました!
ローンの審査は通るのかっ!?
見積もりも取ってもらって、あとは自分に支払い能力があるのか、
冷静に考えたいと思います!(初めてなので。)
VC++ CriticalSectionの速度をみると、ループ速度が14倍遅くなる!?
というのを見かけたので、これから実装してみる処理を見立ててサンプリングしてみることにしました。
やりたいことは単純で、1つのメッセージキューがあり、そのキューは複数のスレッドがアクセスします。
ロックして行う作業はメッセージを入れるか、取り出すかの単純なものです。
というわけで、以下のようなコードを書いてみました。
#include <stdio.h> #include <tchar.h> #include <list> #include <iostream> #include <windows.h> std::list<int> listValues; CRITICAL_SECTION lock; __int64 intCounterFreq; void push(void) { listValues.push_back(0); } int pop(void) { const int value = listValues.front(); listValues.pop_front(); return value; } void nolock(void) { __int64 intStartCounter; __int64 intEndCounter; ::QueryPerformanceCounter(reinterpret_cast<LARGE_INTEGER *>(&intStartCounter)); std::cout << "start no locking mode at " << intStartCounter << "." << std::endl; for (int i = 0; i < 100000; i++) { push(); pop(); } ::QueryPerformanceCounter(reinterpret_cast<LARGE_INTEGER *>(&intEndCounter)); std::cout << "end no locking mode at " << intEndCounter << " offset " << (intEndCounter - intStartCounter) << "." << std::endl; } void sectionLock(void) { __int64 intStartCounter; __int64 intEndCounter; ::QueryPerformanceCounter(reinterpret_cast<LARGE_INTEGER *>(&intStartCounter)); std::cout << "start section locking mode at " << intStartCounter << "." << std::endl; for (int i = 0; i < 100000; i++) { ::EnterCriticalSection(&lock); push(); ::LeaveCriticalSection(&lock); ::EnterCriticalSection(&lock); pop(); ::LeaveCriticalSection(&lock); } ::QueryPerformanceCounter(reinterpret_cast<LARGE_INTEGER *>(&intEndCounter)); std::cout << "end section locking mode at " << intEndCounter << " offset " << (intEndCounter - intStartCounter) << "." << std::endl; } int _tmain(int argc, _TCHAR * argv[]) { ::InitializeCriticalSection(&lock); ::SetThreadAffinityMask(::GetCurrentThread(), 0x1); ::QueryPerformanceFrequency(reinterpret_cast<LARGE_INTEGER *>(&intCounterFreq)); // test functions nolock(); sectionLock(); ::DeleteCriticalSection(&lock); return 0; }
これを以下の環境で測定!
Model : HP Mini 2140
OS : Windows 7 Enterprise 32bit
CPU : Atom N270 1.6GHz
MEM : 2GB
環境は…Visual Studio 2010 RC(笑
コンパイラの最適化は有りで、Visual C++のデフォルト最適化のままです。
というのも、実際には最適化なしでソフトウェアをリリースするなんてことはありえませんし…。
結果は…
ロックなしが65873サンプル、ロック有りが91059サンプル(38%増加)
これを6回測定し、平均が21%遅くなるというものでした。
…と実際に処理を交えてみると、気になるほど極端には遅くならないようにみえます。
ロック処理中に何をするのか、にもよってきますので、
排他制御を適用される際には、疑似ロジックを用意して測定してみた方がよろしいようです。
えー、Xbox 360 2台目を買ってみました。
というわけで、Xbox 360 初期型と比較してみたいと思います!
Xbox 360 Arcade到着ー!
開けてみると、格納のされ方が初期ロットの時とあまり変わってないようです。
これこれ、『ようこそ』だらけのビニール袋。→WACOM intuos4到着。
本体の下に付属品が配置される構造も変わらず。
ただ、本体の重さのせいで結構つぶれやすいので、やめてほしいところ…。
アーケードなので、ドライブベゼルも白です。
おや? HDDを接続する凹みがない?
こんなカバーがあるんですね。初期ロットでは存在しなかった部品です。
HDMI!
今回はHDMI欲しさに買いました…ただそれだけのために。
左が初期ロット、右が今回の本体。別に初期ロットが故障したわけでもなく、現役バリバリ。
ドライブベゼルしか違いがない…ですね、おそらく。
側面からみてもさっぱり違いがわかりませんw
左が初期ロット、右が新ロット。
背面でしか差がわかりませんw
HDMIの他に文字が横置き向け表記から、縦置き向け表記に変わってるのは何故なんでしょうね?
初期ロットは製造が2005年!もう4年以上も前なんですね-。
その4年後の新ロット。
ACアダプターを比較!小型化されてる!
あ。逆になっちゃいました。左が新ロット、右が初期ロット。
高さも微妙に低くなってます。
幅は変わらないかな…?コードの太さは細くなってますね。
上が新ロット、下が初期ロットです。
初期ロットでは、203W 12V 16.5Aが…
新ロットでは、150W 12V 12.1Aと省電力になってます。
ただ、いいことだけではなく、コスト削減の為にちゃっちになっているところも。
左が初期ロット、右が新ロット。抜くためのリリースボタンがなくなり、シールドがなくなりました…。
プラグの形状が若干変更されています。誤挿入防止用かと思われます。
ついでに並べてみた-。
すっかりすり減ったスティック…
元々はこうだったんですよ!
初期ロットはつやのある塗装だったのが…
つや消しになってる!と微妙に違うようです。