を使用しGTK+
て別のGTK+
アプリケーションから起動される Linux 用のアプリケーションを開発しています。fork()
execvp()
私が気づいたのは、exec() されたアプリケーションが への呼び出しを完了するのに約 10 ~ 15 秒かかっていることgtk_widget_show_all()
です。この時間が経過すると、ウィジェットとウィンドウが表示され、アプリケーションは完全に実行されます。
したがって、アプリケーションの呼び出しは次のようになります。
main_gtk_ app -> fork() -> execvp(secondary_gtk_app ). secondary_gtk_app は、ウィンドウとウィジェットを表示するのに時間がかかります。
ただし、GTK+ アプリケーションから exec() を実行するのではなく、アプリケーションをコマンドラインから直接実行すると、gtk_widget_show_all()
呼び出しに遅延はありません。
呼び出し:
シェル コマンド ライン: ./secondary_gtk_app (コマンド ラインから開始し、ウィンドウとウィジェットの表示に遅延はありません)。
この動作の原因を知っている人はいますか? または、おそらくに費やされる時間を短縮する方法はありgtk_widget_show_all()
ますか?
編集: いくつかの調査の結果、遅延の大部分は GTK+ によるフォントの初期化に関係しているようです。事前に組み込みデバイスでシステムfc-cache -f
のフォント キャッシュを作成するコマンドを実行すると、secondary_gtk_app が約 2 秒で読み込まれます。Fontconfig
というわけで、フォントの扱いに関係しています。