GLIBとSTLを比較

google:GLIB STL 比較というキーワードで引っかかっていたので私なりの独断的で先入観バリバリな答えを示そうと思う。
GLIBはC言語のみの環境では非常に有用だ。基本的にDLLとしてリンクすればLGPLライセンスの再配布やソースコード公開の義務から自分のソフトが開放される。(static linkは昔、指摘されたのだが実は今でも良く分からない。)
inline展開できないのでC++も使える環境だと遅い。
上手くinline展開するようにソースコードを改造すればSTLっぽいのになるかもしれない。
STLは使用の仕方によってはバイナリサイズが大きくなる。例えばchar short int およびunsigned付き のvectorを用意したとすると方の要素を増やした分バイナリサイズが大きくなるそうだ。*1
でも大体inline展開されるしそれほど遅いと感じることも無いし個人的にはSTLが好きだ。
google:STLPORTを使ってほしい。 私お気に入りのSTLだ。STLが好きになったら今度はboostに手を出してみてほしい。VC6では泣いてしまうようなライブラリ設計になってきているのだがこれが無いと私はプログラミングできない病になり始めている。
ちなみにModern C++ Designで有名なLokiには手を出さないほうが良いと思う。昔苦戦した思い出がある。しかしgoogle:AssocVectorは好きだ。*2
どちら様かがGLIBとSTLを簡単に比較していたサイトがあったような気がするがもう思い出せない。御免。


追記:2005/12/28
std::vector vs glib garrayの比較を行っています。http://chasen.org/~taku/blog/archives/2001/05/stl_vs_glib.html
まぁ、なんというか、予想通りglib遅いです。多分、inline展開されていないからだと思ったりします。昔、VCでビルドできるglibをダウンロードできるようにしていたのですが、最近、そのHPスペースを消されちゃいまして・・・ (ToT)>゛すまんこってす。
それからglibのtree系アルゴリズム?はAVL木で実装されているらしい。STLPortはRed Black treeである。よってgoogle:AVL vs RED BLACK]とか[google:AVL RED BLACK treeとかで検索するのも速度比較を知るために良いのではないかと感じる。

追記:2005/12/26
はい!簡単に結論!

  • GLIBはC言語のみでコーディングする時に使うべし!
  • STLC++でのコーディングの大黒柱!
以上!解釈は各自に任せる!あざっす!o(*^▽^*)o