スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

メモリリークを調べる

Linux。C++環境でメモリリークを簡単に調べる方法がないだろうか?と探していたらいいものが見つかった。

というのも、Netbeansについているプロファイルがお手軽に使えればなんの問題もないのだが、インストールから始まり、いろいろやってみたのにうまく動かないのである。

こういう導入部分が割と楽なのが気にいっていたのに!今後に期待である。


今回はvalgrindというものを使うことにした。

fefora8なので

# yum install valgrind

で簡単にインストールできた。
apt-getでもできるそうだ。

使い方もいたってシンプル

#valgrind --leak-check=yes プログラム名

これでOK
リーク箇所の行番号が欲しいときは-gでコンパイルしろ!と書いてあった。

実行してみるとログがずらーっとでる。
最後の方にリークは無いぜ!みたいな記述があるか無いかでとりあえず判別できそうだ。


Boostのスマートポインタやptr_listなるものを使ってみたくて、実際にヒープを開放してくれてるのかが心配になってしまったというのが今回の記事の発端である。
当たり前だけどきっちり開放されていた。やったね。


ねよっと。
スポンサーサイト

boostライブラリ

結局データベースのプログラムはC言語ではなくてC++で書くことにした。

C++で便利ならライブラリとしてBoostと呼ばれるものがある。
使ってみるとこれは確かに便利である。

早速Linuxにいれてみようと・・・思ったら結構ハードルが高い記事だらけ・・・


っと思ったら

yum inatall boost*

で一発で終わった。わーい。パス通すのは自分でやらなきゃいけないけど。


↑はfedora8なのでdebianとかだとapt-getを使う事になると思う。


現在
クライアントはWindows。言語C#で開発。
サーバーはDebianで動いてる。
なのにサーバーの開発はfedora8。言語はC++。
たまに動かすLinuxはUbuntu。



ごちゃごちゃになりそうでしょ。
でも心配いらないんだ。全部統一されてても恐らく頭の中はごちゃごちゃですから!!


boostライブラリを使ってコンパイルされたものを利用する場合は(Linuxの話)

/usr/lib

にお目当てのファイルを置いておけば使えると思う。(無くても動くものもあるのでその辺は調べてね)



ねよっと。

C#プログラマのためのC++入門

C→C#と進んで来た私自身のためのC++メモです。
いきなりC++を学習したい人がみても意味不明かもしれません。

↓ボタンを押したら展開されます。(めちゃくちゃ長くなったので項目ごとにまとめてみた)



←書いた場所忘れてCtrl+Fで検索する用ボタン


まとめるの疲れた・・・
ねよっと。

関数へのポインタ

C++の本に書いてあった関数へのポインタの直感的記述方法。
(*func)(引数)みたいに分かりにくい表記が一切無い。
いい感じ。


void ppp(const char * msg) //受け取った文字を表示するだけの関数
{
printf("%s\n",msg);
}


void test(void func(const char * hoge))
{
func("hello");//中で呼び出す
}


int main() //メインからtest関数を使ってみる
{
test(ppp);
}




ただそれだけ。
ねよっと。

C++のコンテナ(C#でいうとこのコレクション)

サーバープログラムのせいで最近C++を扱うことが増えてきたのでメモ。
C#のコレクション=C++ではコンテナというらしい。

vector
可変長一次配列
速い=先頭 末尾 の追加と削除 、[]のアクセスは最速
遅い=それ以外の場所への追加

deque
双方向キュー、循環(リング)バッファ
速い=先頭 末尾 の追加と削除 、[]のアクセス
遅い=それ以外の場所への追加

list
リンクポインタでリンクされたリスト・双方向連結リスト
[]が使えず、イテレータを使用してアクセス
常にリスト中の要素数分のメモリだけを利用(vectorやdequeは、コンテナ中の要素数よりも多目のメモリを確保し、足りなくなったときにメモリを確保しなおす)
速い=任意の箇所への要素の追加、削除

set
内部で自動的にソート・木構造
要素が並んでいる訳ではないので[]が使えず、イテレータを使用してアクセス
速い=値の小さな要素から順にアクセス

map
連想配列で木構造
内部で自動的に「キー」によってソート
[]演算子は添字ではなく要素のキーを指定することでアクセスできる
速い=キーの値の小さな要素から順にアクセス





サーバーはできるだけオブジェクト思考で作成していなかったのだが混ざってきた気がする。危険じゃの。
ねよっと。
プロフィール

あしゅ

Author:あしゅ
ぷぃぷぃ日常。
いつのまにか雑記ブログに。

カテゴリ
最新記事
検索フォーム
最新コメント
リンク
このブログをリンクに追加する
ブロとも申請フォーム

この人とブロともになる

カウンター
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。