BorlandCでWORLD を その1かも
- カテゴリ:日記
- 2012/04/10 00:20:19
「その0」として、Microsoft Visual Studio C++ Expressに乗り換えました~。と書こうと思ってたのです。w
Borland C はUSBメモリに入れておけば、どこでも可搬可能。作ったプログラムはランタイムいらずで、自分で標準入/出力のプログラム書く分には、充分すぎる製品です。
ところが、WORLDをコンパイルして、元々のプログラムと実行速度を比べてみると、半分くらいのスピードしか出ていません。最適化オプションを少し弄ってみましたが、あまり効きが良いとも言えず。加えて、変数の初期化だか、三角関数の計算値だかがVCと違うらしく。ファイル出力のデータが微妙に違う事があると言う状況でした。
Borland C ですら開発環境が100M超えで、Visual Studio の導入は嫌だったのですが、新しいサーバ用に購入したPCがまだお遊び用になってる事。その関係でグラフィックボード用のドライバ類だけで、500M以上になってる事から、でかいのは覚悟して、新サーバマシンにVC,VC#を導入してみる事にしました。
両方入れたら4Gくらいは占有する模様。データベースプログラムやらなにやら、自分には不必要なものも一杯付いて来た。ディスクにはまだ、余裕が有ってよかった。ちなみに、同時にUnityも導入! こちらは500Mくらいに収まってる! もっとも、地形やモデルデータなどを入れ始めると、すぐに1G超えそうですが。
Borland C 関係ないじゃん! と思われてるでしょうが、さて本題。Borland C でのコンパイルは3行ほどの変更が必要でした。そして、謎の計算結果違い。元々 VC 2008 で開発してる WORLD をVC 2010 Express だと、変更不要でコンパイル完了! 肝心の実行速度は、Borland 程遅くは無いけど、オリジナルよりはぐっとスピードダウンの結果となってしまいました。やっぱり売り物のコンパイラは速いのかの~??
そして何より、VC 2010 Express でコンパイルしたプログラムの実行結果は、まったく波形になっておらず、比較対象外!? なんだって~~~ orz 困ったもんだな。
Borland C にしても、 VC 2010 Express にしてもプログラムを結構読み込まないといけない事には、変わりないみたい。やれやれ、て事で次は 「その2」が来る可能性も出てきた。まったくなんてこった。
●音声分析合成システム「WORLD」
http://www.aspl.is.ritsumei.ac.jp/morise/world/
今見たら、4/2にバージョンアップしてた。今チェックしたのはVer.0.0.4.1
状況変わるかな。
ただ、ターゲットが決め打ちになってるコンパイラの最適化は、そのコンパイラが想定するコードと合致すれば、やっぱり強いです。
汎用でも頑張ってるのもありますけどね…。まぁ、速いコードを吐くのは売りでもあるので、売り物のほうが気合の入り方は違う…のですが、作った人と馬が合わないとそうでもないという気も。
てか、VC同士なら問題無かろうって考えてたのが、VC固有の使い方の勉強をしないといけないのは、本末転倒みたいな気がしないでもない。スッピンからプロジェクト作ったら、ボーランド以上に実行速度が遅くなったし、ソリューションファイルの設定で、何かが抜けてたりなんかもしらん。何か最近ついてないのかな。
しかし、実行結果である音声合成後のデータが、まったく変な値で、弱った。て話です。
データがマイナスに振り切れっぱなし、みたいに見えるんだけど。中で何が起こっているのやら。
出来たファイルが壊れてたってことですか?
インタプリンタ的に使えないってことですか?