を使用し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というわけで、フォントの扱いに関係しています。