programming

デバッグ

今日はとんでもない時期にバグを仕込んでしまっていたことが発覚してブルーです。他にも潜在バグが1つ。なんだか悲しくなっちゃいます。 こういうのって、コードレビューで改善するといいますが、結局は実際に動かしてテストしてみない限り分からないことの…

メモリプール(2)

先日のigaMemoryPoolクラスですが、実際にどのように使うのか書いて見ましょう。 現実的かどうかはともかく、こんなケースを考えてみましょう。 Bはリストをなす AはBを管理する MはAを持つが、直接Bを操作したい そうすると、こんな感じでしょうか。 class …

メモリプール(1)

先日書きましたが、C++ではガベージコレクタがないためにフラグメンテーションが発生して速度の低下をもたらすことがあります。また、同じオブジェクトを大量にnew/deleteするような場合、メモリアクセスの時間もパフォーマンスに影響してしまいます。そこで…

ツール

会社でのソフトウェア開発はsolaris上で行っていますが、その際いくつかのツールを使っています。 mule エディタはmuleを使っています。他のWSにrloginした場合などはemacsになったりします。 cvs ソースコードのバージョン管理にはcvsを使っています。グル…

リファクタリング

何とか動くようになりました。デグレードもなさそう。

トレードオフ

組み込み系のソフトウェアでは、次のトレードオフがあります。 オブジェクトサイズは小さくしてね。 こんな機能やあんな機能も欲しいから追加してね。 遅いから速くしてね。 機能を追加する方法 機能を追加する 機能を追加するとしか言いようがないですね。…

C++

会社ではC++を使っている。オブジェクト指向でやるというコンセプトでサブシステムの開発が始まったので、C++を採用した経緯のようだ。もちろん、Javaが動かないプラットフォームだからというのと、C経験者が多かったので敷居が低かったというのもあると思う…

リファクタリング

会社では組み込み系ソフトウェアのコーディングをしているのだが、最近は新規機能の追加もほとんどなくなりメンテナンス中心の生活であった。で、リファクタリングをはじめている。 リファクタリングとは、要するにコードの見通しを良くするのと、再利用性を…