タグ

archtectureに関するUSAGI-WRPのブックマーク (3)

  • x32 ABIの簡易的なまとめ

    x32とは、現在規格制定や開発が進められている、新しいABIである。これは、32bit ABIのx86と、64bit ABIのx86_64のいいとこ取りを狙ったABIである。 x86_64の利点は多数ある。まず、汎用レジスタが増える。CPUによるレジスタリネーミングだとかなんだとかいって、CPU側でこっそり隠しレジスタを用意して差し替える仕組みもあったが、やはり汎用レジスタの増加は、わかりやすいパフォーマンスアップに繋がる。もちろん、レジスタが増えるという事は、それだけプロセス切り替えのコストもかかるのだが、それを差し引いても、一部の純粋な数値演算のパフォーマンス向上は得られる。 また、仮想アドレス空間が大幅に広くなるのもすばらしい。実際、一部のソフトウェアでは、仮想アドレス空間が足りないという問題はすでに起きていた。確かに、PAEを使えば36bitのアドレス空間が得られるが、やはり一つの

  • アーキテクチャーパターンとは何か

    アーキテクチャパターンとは何か 連載2回目の今回は、アーキテクチャパターンについて紹介したいと思います。POSAおよびPoEAAという2つの有名なアーキテクチャパターンカタログについて簡単に触れた後、eビジネス分野のアプリケーション設計全般を対象とするパターンランゲージ、IBM Patterns for e-businessの内容をご紹介します。 デザインパターンがクラスや関連でつながったクラス間の局所的な構造や相互作用をサポートするためのパターンだったとすると、アーキテクチャパターンというのは、クラスよりも大きな単位でのパッケージやサブシステム、レイヤーといったマクロな構造や、それらの接続と相互作用をサポートするためのパターンだと言えるでしょう。 マクロなレベルにおけるオブジェクト設計の基は、そのパッケージ内のクラス群はできるだけ関連性の高いものでまとめる(高凝集度)けれども、パッケー

  • iconvがクソすぎる

    思うに、私が最初のOSに不自由なWindowsを選んだのは正解だったかもしれない。すくなくとも、Win32 APIはPOSIXよりはるかに使いやすい。 問題はiconvだ。一体どこの糞が何をキメながら設計したらこうなったんだ。狂っているにも程がある。 size_t iconv (iconv_t cd, const char ** inbuf, size_t * inbytesleft, char ** outbuf, size_t * outbytesleft) ; ポインターのポインターであるには理由がある。iconvは、すべて書き換えるからだ。ポインターを書き換えるのでポインターへのポインターを要求する。当然だ。当然であって欲しくないが当然だ。 なんでそんなに馬鹿げた副作用を持ち込むんだ。それでは必ずlvalueを渡さなければならないし、大抵の場合、もとの値を保持しておきたいから、オブ

  • 1