«前の日記(2006.08.11 / Friday) 最新 次の日記(2006.08.14 / Monday)» 編集

Hena Hena Nikki

2003|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|10|11|12|
2012|01|02|03|04|05|06|07|08|10|12|
2013|01|02|04|06|

2006.08.13 / Sunday [長年日記]

* [computer] libmp4v2 1.5.0.1 を Mac OS X 10.4 にインストールする

CFLAGS はお好みで。

$ wget -c http://resare.com/libmp4v2/dist/libmp4v2-1.5.0.1.tar.bz2
$ bzcat libmp4v2-1.5.0.1.tar.bz2 | tar xvxf -
$ cd libmp4v2-1.5.0.1/
$ ./configure
$ make && make check
$ sudo make install

* [computer/update] SQLite ver.3.3.7

軽量コンパクトな SQL データベース・エンジン。 約 2 ヶ月ぶりの version up。

3.3.6 の時もそうだったんだけど、 Mac OS X で組むと make test でエラーが発生する。 後で他の環境でも試してみて、必要だったら追おう。

* [computer/update] VirtualDub ver.1.6.16

高機能な動画編集ツール for Windows。 約 2 ヶ月半ぶりの version up。

* [computer/update] QuickTime Alternative ver.1.74

QuickTime 形式のメディア・ファイルを再生するライブラリなどの詰合せ for Windows。 約 10 日ぶりの version up。

* [computer/update] Lancer 20060811

Ogg Vorbis 系ツールやライブラリの高速化を狙ったもの。

* [computer/update] Nullsoft Scriptable Install System ver.2.19

Windows 向けのインストーラ作成ツール。 約 1 ヶ月ぶりの version up。

* [computer][bookmark] Windows 64bit Edition まとめ Wiki

オレンジニュースから。 メモ。

本サイトは、Windows の AMD64 および Intel 64 対応版、 Windows x64 Edition に関する話題をまとめるサイトです。

* [computer] libmpeg2 0.4.0b を Mac OS X 10.4 にインストールする

Intel Core Duo 環境では、以下の要領でインストールできた。 もちろん CFLAGS はお好みで。

$ wget -c http://libmpeg2.sourceforge.net/files/mpeg2dec-0.4.0b.tar.gz
$ zcat mpeg2dec-0.4.0b.tar.gz | tar xvf -
$ cd mpeg2dec-0.4.0/
$ ./configure --enable-shared --disable-sdl
$ make && make check
$ sudo make install

インストールされるのは、libmpeg2 と libmpeg2convert。

$ ls -l /usr/local/lib/ | grep 'libmpeg2'
$ ls -l /usr/local/include/mpeg2dec/
$ ls -l /usr/local/lib/pkgconfig/ | grep 'libmpeg2'

G4 環境では、CFLAGS を設定せずに以下の要領でインストールできた。

$ wget -c http://libmpeg2.sourceforge.net/files/mpeg2dec-0.4.0b.tar.gz
$ zcat mpeg2dec-0.4.0b.tar.gz | tar xvf -
$ cd mpeg2dec-0.4.0/
$ ./configure --enable-shared --disable-sdl --disable-accel-detect
$ make && make check
$ sudo make install

* [computer/update] Cyberduck ver.2.6.1

Mac OS X 上で動く FTP, SFTP クライアント。 約 2 ヶ月ぶりの version up。

* [computer] floatdouble はどちらが速い?

ちょっとした事情から気になって へるみさんのページC プログラミング診断室のページ を読んで、 「ああ、ちゃんと知っといた方が良いよなぁ」などと思ったりしたわけで…。 :-)

/**
 * @file    main.cpp
 * @brief   float と double の速度チェック
 */
#include <iostream>
#ifdef USING_DOUBLE double Calculate(const int n) { double ret(0.0); for (int i(1); i < n; i++) { ret += 1.0 / i / i; } return ret; } #else // USING_DOUBLE float Calculate(const int n) { float ret(0.0f); for (int i(1); i < n; i++) { ret += 1.0f / i / i; } return ret; } #endif // USING_DOUBLE
int main(void) { std::cout << "Calculate = " << Calculate(100000000) << std::endl; return 0; }

以下、MacBook Pro (Mac OS X 10.4, Intel Core Duo 2GHz) で試した結果。

$ g++ --version
i686-apple-darwin8-g++-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc. build 5363)
$ g++ -Wall -O2 main.cpp -o float
$ time ./float 
Calculate = 1.64473
2.059u 0.010s 0:02.18 94.4%     0+0k 0+1io 0pf+0w
$ g++ -Wall -O2 -DUSING_DOUBLE main.cpp -o double
$ time ./double 
Calculate = 1.64493
3.618u 0.015s 0:03.76 96.2%     0+0k 0+1io 0pf+0w

次に iBook (Mac OS X 10.4, G4 1GHz) で試した結果。

$ g++ --version
powerpc-apple-darwin8-g++-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc. build 5363)
$ g++ -Wall -O2 main.cpp -o float
$ time ./float 
Calculate = 1.64473
7.102u 0.035s 0:07.44 95.8%     0+0k 0+3io 0pf+0w
$ g++ -Wall -O2 -DUSING_DOUBLE main.cpp -o double
$ time ./double
Calculate = 1.64493
9.244u 0.033s 0:09.46 97.9%     0+0k 0+2io 0pf+0w

まあ、環境によって違うなんて当然なことなんだけど、 こういう事もあるって事実は知っておいた方が良いよね。 ある種のスコア計算とかで、比較的精度を無視できる状況であれば、 double ではなく float を 積極的に使える場合もあるってことで。

こういった「〜と〜を組み合わせた環境では〜の方が速い」という事実は、 前半の「〜と〜を組み合わせた環境では」を忘れると痛い目に遭いそう。 僕は今まで高速化を狙う必要のある作業をまともに担当したことがなかったけど、 今回担当しているプロジェクトではこういった知識も多少必要になるので、 意識しておかないとなぁ…。

以下、後日追記した文章。

以下は自作の PC/AT 互換機 (Windows XP SP2, Cygwin/MinGW, Pentium III 1GHz x2) で試した結果。 当然なのかもしれないけど、数字だけ見ると、へるみさんの結果と一緒と考えられる。

$ g++ --version
g++ (GCC) 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125)
$ g++ -Wall -O2 main.cpp -mno-cygwin -o float
$ time ./float.exe
Calculate = 1.64493
7.625 secs
$ g++ -Wall -O2 -DUSING_DOUBLE main.cpp -mno-cygwin -o double
$ time ./double.exe
Calculate = 1.64493
7.672 secs

以下は Gateway SOLO 3350 (Debian Sarge, 低電圧版 Pentium III 600MHz) の結果。 やはりへるみさんの結果と同じ模様。

$ g++ --version
g++ (GCC) 3.3.5 (Debian 1:3.3.5-13)
$ g++ -Wall -O2 main.cpp -o float
$ time ./float
Calculate = 1.64493
12.626 secs
$ g++ -Wall -O2 -DUSING_DOUBLE main.cpp -o double
$ time ./double
Calculate = 1.64493
12.503 secs

* [computer] libpng 1.2.12 を Mac OS X 10.4 にインストールする

Intel Core Duo 環境向けに、 .so ファイルのシンボリック・リンク生成を抑えただけのパッチを www.fan.gr.jp に置いてみた (libpng-1.2.12.diff.bz2)。

これも CFLAGS はお好みで。 また、事前に zlib を入れておいた方が良い。

$ wget -c http://jaist.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.12.tar.bz2
$ bzcat libpng-1.2.12.tar.bz2 | tar xvf -
$ cd libpng-1.2.12/
$ wget -c http://www.fan.gr.jp/~ring/misc/libpng-1.2.12.diff.bz2
$ bzcat libpng-1.2.12.diff.bz2 | patch -p0
$ ./configure
$ make && make check
$ sudo make install

G4 系環境の場合は、以下の要領で。 zlib については必須っぽい (ちゃんと見てないけど)。

$ wget -c http://jaist.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.12.tar.bz2
$ bzcat libpng-1.2.12.tar.bz2 | tar xvf -
$ cd libpng-1.2.12/
$ cp scripts/makefile.darwin ./Makefile
$ vim Makefile +16

ここで ZLIBLIB, ZLIBINC の値を適切なものに変更。

$ make
$ sudo make install

  • この日記には本日 名の方が訪問してくださっているようです。 また、昨日は 名の方が訪問してくださったようです。
  • この日記の更新情報の取得には antenna.lirs を利用するのがおすすめです。