2

ディスクとメモリのフットプリントが非常に小さく、非常に高速に起動する (はるかに高速な) 非常に見栄えの良いクロス プラットフォーム GUI デスクトップ アプリ、たとえば、必要最小限の wxPython ウィンドウよりも) (良い例として、OSX での TextEdit の起動速度を見てください。これは、私が GUI アプリに求めている種類の起動速度です)、簡単に展開し、オペレーティング システム (Gimp と Gedit、およびその他のさまざまなオープン ソースのクロス プラットフォーム アプリは、プラットフォームによっては、特に OSX では、私が本当に嫌いなさまざまな動作を示します) お金をかけずに。(ねえ、笑うのをやめて! =P)

wxWidgets、Qt、SDL、およびこれまでに試したすべての機能に満足できないので、ネイティブ ツールを使用して、各プラットフォームでネイティブ GUI コード (特に OS のウィンドウ システムと対話する部分) を記述することに専念しています。 (XCode/ObjC/Cocoa/OpenGL、MSVC/Win32/DirectX、gcc/GTK/OpenGL)、そして Python でプログラムの残りの部分をできるだけ多く書く何らかの方法を考え出そうとしています。

問題の GUI を処理する共有ライブラリ/dll のセットを作成し、それらを一連の Python C 拡張機能でラップすることを考えましたが、パッケージ化 (メニュー、アプリのアイコン、特定の OS 固有のアプリケーション マニフェストなど)、および私が書いている特定のプログラムによっては、起動速度とパフォーマンスが一般的に許容できるかどうかはわかりません。

そこで、Sublime Text 2 と同様の方法で、各プラットフォームで一種の「シェル」プログラムを作成し、Python を埋め込むことを考えました。

Python プログラムを初めて起動するときに発生する起動の遅さは好きではありません。これがバイトコードにコンパイルした結果であり、プリコンパイルされたバージョンのpythonモジュールをアプリに含めることができることを望んでいましたが、実験から、そうではないようです..pythonが初めて実行されたようです(最後のシステムの再起動以降)、共有ライブラリ/ dllがロードされたか何か。それが、おそらくPythonを埋め込むことを考えている理由の1つです.Pythonを埋め込む/呼び出すときに、起動の遅延を減らすのに役立つオプションがいくつかあるのではないかと思います. または、最悪の場合、組み込みのケースでは、Python なしで起動し、必要に応じて (メイン スレッドではなく) 非同期で、アプリが既に起動された後に Python を起動できます。

デプロイされた python プログラムの初回起動遅延を減らす方法はありますか (つまり、パッケージにインタープリターのバージョンが含まれているプログラム..インタープリターは、試したことのないスイッチでコンパイルできる可能性があります)。

Python を埋め込むときにインタープリターの読み込み/初期化の遅延を減らす方法はありますか?

python gui プログラムが TextEdit と同じくらい速く起動したり、フットプリントが小さいと期待するのは完全に非現実的ですか?

4

2 に答える 2

2

ピグレット

これ以上良くなることはありません。すべての Python リリースを完全にサポートし、GUI コードを担当し、その速度は驚異的です。データのチャンクを目立った遅延なしにレンダリングできます!

128MB未満の333Mhz CPUと いくつかのランダムなPCI グラフィックス カードで実行して、これを帽子から引き出すことができました: http://www.youtube.com/watch?v=D7zFLQZxzcYスケール: 可能で、宇宙を航行できる船を備えた規模の数百の惑星.. これは、完成させる時間がなかったものの初期の開発ビデオでした)

最初の実行後 (または .py を .pyc にコンパイルした場合)、pyglet を使用して GUI を大幅に高速化できますが、グラフィカルに記述しているため、すべての入力とボタンを自分で作成する必要があります。インターフェイス コードではなく、データです。

于 2012-12-03T10:48:24.940 に答える
0

WindowsプラットフォームでOpenOfficeの方法を採用し、ソフトウェアに必要なファイルにアクセスしようとするランチャーを作成して、最終的にメモリキャッシュに入れ、起動時間を短縮することができます(ただし、キャッシュに役に立たないものを作成します。ユーザーがプログラムを開きたくない場合に備えて)。

于 2012-12-03T10:38:51.030 に答える