[ カテゴリー » PC関連 ]

コンパイラを疑う前に

「~自分のプログラムを100回疑え」。大学でC言語を勉強していたときの先輩の言葉です。

別にこれはどの言語でも当てはまる事なのですが、特に(.NETを除く??)C/C++言語は実行時に変数型や値のチェック、自動型変換などほとんどやってくれないため、高速で曲芸的なことをするプログラムが書ける一方奇妙なバグを生みやすく、また奇妙ゆえ原因も分かりにくく、ついコンパイラやライブラリに問題があるのではないかと疑いたくなります。

しかしマイナーな製品ならともかく、MicrosoftやGNUのコンパイラ・ライブラリは出荷前はもちろんの事、出荷後も世界の多くの人が使用して動作を確認しているわけでして、そう頻繁に問題に出くわすわけはない。99%自分の書くプログラムに問題があるはずだから何回でも見直しなさい、というのが上の言葉の解釈です。

今日はTclLink から呼び出されるコマンドのWindows DLLをVisual Cで書いていたのですが、実行するたびに使用メモリが増えていく、いわゆるメモリーリークに悩まされていました。使用メモリの大きさから、この部分のメモリが解放されなければ計算上はつじつまが合うというのは目処をつけたのですが、解放する処理は行われているはずでなぜ解放されないのか分からない。Tcl拡張コマンド用DLLという特殊な物でもあり、なにかメモリを解放するライブラリにバグがあるのではと頭をよぎったのですが・・・

やっぱり私が悪うございました orz

別の箇所でまったく同じ量のメモリを確保していて、そちらを解放していなかったというお粗末な内容。

ちなみに私の経験の中で自分のプログラムが悪くなかった(と思う)のは、Windows 95のTrueTypeを描画するAPIだけです。まったく同じプログラムをWindows NTで実行したら何の問題も無かったので・・・

— posted by mu at 10:11 pm   commentComment [0]  pingTrackBack [0]

Windows 7βを入れてみた

Windows7-Desktop

Windows 7を入れるにはVistaが動くマシンの方がいいのでしょうが、手持ちのそれはDell Vostro 1500ノートPCであり、HDD交換が面倒 & メインマシンの停止を意味するため、AthlonXP 2100+/768MB DDR RAM/GeForce 6800のデスクトップマシンに入れることに。

とりあえずインストールは問題なく完了。Vista世代から見ればかなり性能の劣るマシンですが、スワップの嵐ということも無くAeroデスクトップで動いてます。グラフィックドライバはWindows 7専用が必要らしく、nVidiaの場合はWindows Updateをかければインストールされます。

現時点気になったのは、
  • IEでページをスクロールさせたりウィンドウサイズを変更するとページ表示がちらつくこと。Vostro 1500のVistaではそんなことは無く滑らかですので、マシンの性能不足かWindows 7がβなせいだと思います。(2009/1/13 追記: トラブル後再起動したら気にならないレベルになりました)
  • ウィンドウを画面の端のほうに持っていくと枠が現れ、マウスボタンを離すとその枠の形にウィンドウが整形されてしまうこと。画面端にウィンドウをきれいに収める機能なのでしょうが、どうも余計なお世話。これはどこかの設定で変更できるでしょう。

nTuneLink 入れようとしたら、Install Shieldが起動中にOSごと無反応になってしまったので、今晩はここまで。

[2009/1/11 追記] どうもPC自体が古くなって不安定になっているらしい。もう一度nTuneインストールに挑戦したらすんなり入ったのですが、その後エクスペリエンス インデックス測定中に再びハングアップ、以後起動すらしなくなりました orz

[2009/1/12 追記] またメモリの接触が悪くなっていた模様。コネクタに問題があるのでしょうか。挿し直して現在Memtest86で確認中。

[2009/1/13 追記]
  • PSULink 動かず。おそらくGameGuardLink のせい。
  • nTuneはインストールできるものの、nVidiaコントロールパネルにクロック変更の項目が現れない。
  • Aeroデスクトップのサムネイル機能(画面下タスクバーにマウスカーソルを置くとそのアプリケーションの縮小画面が表示される)が強化されてますね。あまり使わないけどVista SP2にも入れてくれないかなぁ。

[2017/1/21] 文中の年がすべて2008だったのを修正

— posted by mu at 02:03 am   commentComment [0]  pingTrackBack [0]

ロボットをカウンターから除外

これを書いている時点でこのブログの来訪者カウンターは158,103となっていますが、9割以上は検索ロボットであることは分かってました。ppBlogLink のページを見ると検索ロボットをカウントしない方法が載ってましたので、先ほど変更完了。これからは現実に近いカウントがされると思います。あとカウンターの桁数も6桁表示されるようにしました。

[参考]

[2009/1/14 追記] 東京大学 喜連川研究室Link をカウント対象外に追加

[2009/1/23 追記] トレンドマイクロLink をカウント対象外に追加、WEBロボットのネットワークアドレス一覧へのリンク追加。

[2009/12/27 追記] User agent 'CamelStampede'をカウント対象外に追加。検索エンジンらしいLink

[2010/7/24 追記] User agent 'Googlebot'をカウント対象外に追加。ログにはGooglebot-Mobileと。

[2010/11/30 追記] アドレス'compute-1.amazonaws.com'をカウント対象外に追加

— posted by mu at 03:21 pm   commentComment [0]  pingTrackBack [0]

ThinkPad X31 2台目

blog20080915-ThinkPadX312nd

1台目が壊れたLink 後、復活していたThinkPad s30を使っていたのですが、電車に乗るとWindowsが起動する間に一駅、動画再生できるようになるまでに一駅、こんなに遅かったかと思うほど。起動直後はCPUがほぼ100%使用されているので、HDDのせいではないらしい。Windowsを再インストールすれば速くなるのかもしれませんが、動画再生がもたつく(こちらもCPU 100%)のはどうしようもない。

てなわけで、PentiumM 1GHz以上の持ち運び用ノートを買いなおしたら、また突然死爆弾がマザーにあるかもしれないThinkPad X31になりましたとさ。・・・バカかもしれない > 自分

今回は秋葉原で直接物を見た上で購入。なんかX31の相場が下がってる? 2週間前に見たときよりも8000円下げている店もありました。1台目よりも安く手に入れて喜んでいるのですが、来月見たらもっと安く売ってたりしてw

ネットで買って失敗した1台目のような、バックライトに斑が無いのは非常に気分がいいです。2台目は無線LANが付いてなかったので、1台目から移植。今後もいくつかの予備パーツは1台目から取れるでしょう。

— posted by mu at 06:37 pm   commentComment [0]  pingTrackBack [0]

SQL Server Expressでのauto increment

以下のように書くそうです。
create table t (id int IDENTITY not null)
alter table t id int IDENTITY(100,10) null
単語が分かればなんてことないのですが・・・

[参考]How do I generate auto increment number in SQL Express? (Microsoft ASP.NET)Link

— posted by mu at 03:41 pm   commentComment [0]  pingTrackBack [0]

T: Y: ALL: Online:
ThemeSwitch
  • Basic
Created in 0.0254 sec.
prev
2024.11
next
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30