2004年3月20日から2004年3月16日までの日記を表示中

2004年 3月 20日 (土)

Gtk2/Xft なMozillaでFlashが遅い問題 続き

Bugzillaに更に追加された別の人の書き込み見ると,一部はまだ遅いっすとのこと.どれどれと,MozillaとKonquerorで同じページを開いて並べてみると,左下のロゴマークが回転するアニメーションは,確かにMozillaの方がちょっとだけ遅いようで,次第にKonquerorで再生したものより遅れます.むむむ,今まで出てたゲームにならない位劇的に遅いというのとはちょっと違いますが,やっぱ遅いのか.今度は何だろう.試しに,ただのGtk版で動かしてみたんですが,やっぱりちょっとだけ遅いみたいです.ということはMozillaそのものの問題ですかね.

試しにgflashplayerと対決させてみましたが,やっぱりMozilla上で動かすと遅いっす.同じページにFlashがいっぱいあんのがいかんのかと思い問題のFlashだけを表示させてみましたが,やっぱgflashplayerと対決して負けますね.Mozillaの中でプラグインの処理ってどうなされてんじゃろか・・・.

2004年 3月 19日 (金)

Gtk2/Xft なMozillaでFlashが遅い問題

色々調べた結果,何と解決しました.とりあえず,いつもの如くKNOPPIXにFlashプラグイン入れてMozilla動かしてみたところ,遅くならないことが判明.試しにWebからドイツ語版のMozilla-1.6落として動かしてみました,こちらもKNOPPIX上なら重くなりませんでした.これは,つまり,リンクしているライブラリが大変あやしい.そこで,KNOPPIXの/usr/lib以下をT40の環境にコピーして,そこにLD_LIBRARY_PATHを指定した状態でMozillaを動かしてみたところ,やはり思った通り,Flashがさくさく動きました.

となると,次はどのライブラリが悪さをしているのかということですが,あやしいのはやはりglibやgtkあたり.そこでKNOPPIXから持ってきたlibからlibgtk*やlibgdk*,libglib*,libpango*,libatk*等の関係有りそうなのだけ取り出してそこにLD_LIBRARY_PATH設定してMozillaを動かしたところ見事的中.さくさく動きます.ならば次は更に絞り込を,とライブラリを更にglib2だけやgtk2だけ,atkだけ,pangoだけ等,細かくコピーしてみたんですが今度は全然ダメです.ううう,何が悪いんじゃぁ.

しからば,と作戦を変更して最初に作った小さいセットの方から少しずつ減らすという方法をとったところ(ていうか普通最初こっちやるよな・・・),驚愕の事実が発覚.何と関係があるのはgtk2でもglib2でもなく,gtk1.2の方でした.うぐぐ,なんてこった.libflashplayer.soをlddしてみると別にリンクしているようには見えないんですが,stringsで覗いて見ると・・・「gtk_」で始まるラベルがわんさかありますねぇ・・・.

調べてみたところ,KNOPPIXのパッケージは基本的にDebianのtestingをベースにしているとか.というわけで,Debianところからtestingのバイナリを持ってきてdpkgで展開して同じことをやってみたらばっちりさくさくです.でも,stableの方だとだめっすね.ということはtestingのパッチに秘密が!

というわけで,testingから持ってきたパッチをgtkに当ててインストールしてMozillaに見せるようにしたら,自前の環境でも見事にさくさく動くようになりました.すごい,流石Debian.ようし,さっそくBugzillaに報告だぁ,というわけで書いてみました

そしたら,数時間後,レスがつきました.なになに,「export FLASH_GTK_LIBRARY=libgtk-x11-2.0.so.0」・・・ (;゜Д゜) (゜A ゜;) (゜д゜;) ナ、ナンダッテー!!!こんな簡単な方法があったのか_|‾|○.ま,まあいいさ,きっと自分の書き込みがきっかけになって見付かったに違いない.うん,そうだよね.

2004年 3月 18日 (木)

Mozilla

前になんかLinuxで,Mozilla他Gecko系だとFlash重いのにKonquerorとかOperaだと軽いとか書いたわけなんですが,何が悪いのかちょっと調べてみたところ,どうもgtk2+xftなMozillaを使っているのがまずいっぽいです.gtkベースでビルドし直したらさくさく動きました.オフィシャルにあるバイナリで試してみても,通常版→さくさく,with xft + gtk2(ドイツ語版)→オモー,with xft(フランス語版)→さくさく,という感じだったので,gtk2がカギを握っている感じです.

さて,どうやって解決したものかと「gtk2 Flash Mozilla slow」あたりをキーワードに検索してみたら,全く同じ話題を発見しました.うー,検索って難しい.で,ここの情報を元にBugzillaの219625を見てみたんですが・・・,まだ解決してないのかなぁ.

2004年 3月 17日 (水)

東方妖々夢

ネットで見掛けたプレイの真似して霊夢Bで低速封印 Extraプレイに挑戦してみました.絶対無理ぽとか思ってたんですけどやってみたら結構いけること判明.1度目は十二神将の宴あたりまでしか行けませんでしたが,確かな手応えが.2度目3度目と回を重ねる度に到達点がのび,5回めくらいでついにExtraクリアできてしまいました!残り1機という結構苦しい終わり方でしたが,鍛錬の力ってほんとすごいですね・・・.

Solaris8 + Mozilla-1.6 + Flash

昨日のMozillaとFlashの問題ですが,やっぱりopenwinとX11R6.6柄みの問題でした.openwinにrunpath通してMozillaをビルドしたらばっちり表示されるようになりました.ぐふ,長い戦いだった・・・.ていうか,なんでX11R6.6なんてわざわざ入れてんだ?入れるにしても,XFree86の方がいいうわなにをするやめr・・・.

Solaris8 + xft

・・・まあ,それ以外にも色々Solaris8ではまりまくりだったわけです.まず,これは実は昨日の話なんですが,Solarisに入れるxftにこちらの日本語Bold体パッチを当てた所,gaimとかで設定ウィンドウ等の特定のウィンドウを開くとセグって落ちる問題が発生.どうもウィンドウに日本語Boldが含まれてると落ちるらしく,gdbで追っかけたところパッチの部分のコードで問題発生してることが判明.当然パッチ当てない状態では動きました.しかし,gdbで落ちている所のコードを見るかぎりでは何でこれでセグるのかまったくわかりません.ポインタの先がないのかなぁとも思ったんですが,別に普通にpで値が表示されます.

個人的にはSunなんぞ端末として使わないですし,Sunが環境整ってなくてダメダメ→利用者がいなくなる→Sunさようなら,とかもいいんじゃないとか最近密かに思ってるんですが,ここで「あのパッチ何か変」とかで済ませて投げ出したら激しくカッコワルイので,もうちょっと原因を調べてみました.で,わかったことですが,mallocで確保した領域の前半部分を1byteの配列で使用し,後半部分を1+1+4+4の10byteの構造体の配列で使用する,とかやっていて,前半の配列が終わった直後から後半の配列のデータを並べて使おうとしているのがまずいようです. 要は後半の配列の開始アドレスを(mallocした領域の値 + 前半の配列長)とかやって計算してるため,前半の配列長が4で割り切れない場合に後半部の開始アドレスがアラインしてない状態になっていまい,そこに無理矢理アクセスしようとしてセグっていたようです.後半部分は構造体になってるんで勝手にpaddingがついて12byteになって安全だったようです.うぬぬ,コードが悪いのか,gccが悪いのか,SPARCが悪いのか.まあ,とりあえず最初の1byte配列におまけつけてアドレスをアラインさせたら動くようになりました.わーい.

Solaris8 + uim

次にはまったのはuim.gtk-query-immodules-2.0をしてもdefaultとかいうのが1個出てくるだけ.最初,gtkとかglibが悪いのかと思いビルドし直したんですが全然変わらず.queryimmodules.cを読み始め,ずるずると手繰っていくうちにuimにまでたどり着いちゃいまして,sh test.sh を実行したら答えがわかりました.初期化中に「スタックがあふれたぞ,おい」とかエラーメッセージが出ててました.ん,スタックといえば何か似たような話がMLにあった気が・・・.というわけで,AnthyのML読み替えしたらOS Xで同じような問題が出ててました.で,それに対するパッチを当ててみたらばっちり発生しなくなりました.疲れた_|‾|○.

Solaris8 + Emacs20

本日最後のはまりは,emacs20(emcws)でした.過去に何度かビルドしててまさかここでつまづくことはあるまいと思ってたらつまづきました.makeの最後の方で,elispをバイトコンパイルする途中,「./emacs -q -batch -f list-load-path-shadows」のところとその後のところでemacsがセグるという問題が・・・(;´д`).gdbで追おうお思ったんですが,何かbtしてもlibcの中しか見えず・・・.__do_global_dtors_auxってなんじゃぁ,と検索してみたら答えが見つかりました.Solarisだとgcc-3.3系でダメらしいです.gcc-2.95.3に切替えてsrc/wnnfunc.cを少し修正してビルドしたら動きました.うおー,20系切捨てたい・・・.いや,そもそもSolaris自体切りうわなにをするやめr・・・.

2004年 3月 16日 (火)

Solaris8 + Mozilla-1.6 + Flash

例によってSolaris8のMozillaではまってます.1.5でさんざん苦しんだんで1.6のインストール自体はすんなり終わり,普通に動いているんですが,Flashプラグイン入れた状態でFlashを使ったページを開くと「Error: Couldn't find per display information」といわれてMozillaごと落ちます・・・.Flashのプラグインをlddしてみるとopenwinの方とリンクしてるんですが,Mozillaの方はopenwinを一切見ずに別に入れてあるX11R6.6のライブラリとかを使ってたりするんで,そのあたりに原因がありそうな気が・・・.LinuxとかだったらここであれこれLDFLAGSとかの指定を変更してconfigureしなおして何度もビルドして試してみるところなんですが,Blade150だと数時間待たされるんでやっぱそう気軽にできなかったりします.とりあえずMozillaがopenwinの方を積極的に見るようにしてビルドし直して見てますが,果してうまくいくのだろうか・・・.まあ,例によって,和ジラのバイナリだとちゃんとFlash動くんですよね・・・.

東方妖々夢

うおー,Extra 1ミスでクリアできたぁ!とか思ってたら,ついに霊夢BでPhantasmまでクリアできてしまいました!まさかクリアできるとは思ってませんでしたが,人間やればできるもんですね.さて,次はHardかExtra10億か・・・?

2004年3月20日から2004年3月16日までの日記を表示中

中の人情報

名前:
nosuke (のすけ)
メール:
sasugaanijaのgmail.com
「の」は「@」みたいな
関連リンク:

カレンダー

2004年3月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

<<先月分

翌月分>>

最新の10件のエントリ

最近の10件のコメント

過去ログ