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
軽量コンパクトな SQL データベース・エンジン。 約 2 ヶ月ぶりの version up。
3.3.6 の時もそうだったんだけど、 Mac OS X で組むと make test でエラーが発生する。 後で他の環境でも試してみて、必要だったら追おう。
高機能な動画編集ツール for Windows。 約 2 ヶ月半ぶりの version up。
QuickTime 形式のメディア・ファイルを再生するライブラリなどの詰合せ for Windows。 約 10 日ぶりの version up。
Ogg Vorbis 系ツールやライブラリの高速化を狙ったもの。
Windows 向けのインストーラ作成ツール。 約 1 ヶ月ぶりの version up。
オレンジニュースから。 メモ。
本サイトは、Windows の AMD64 および Intel 64 対応版、 Windows x64 Edition に関する話題をまとめるサイトです。
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
Mac OS X 上で動く FTP, SFTP クライアント。 約 2 ヶ月ぶりの version up。
float
と double
はどちらが速い?ちょっとした事情から気になって へるみさんのページや 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
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