問題タブ [python-stackless]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
7 に答える
20500 参照

python - Python コメット サーバー

ロングポーリングメカニズムを介して更新したいリアルタイムフィード (Facebook のニュースフィードに似ています) を持つ Web アプリケーションを構築しています。Python では、Stackless (Comet wsgi の例からビルド) を使用するか、Cometd + Twisted を使用するかのほとんどが私の選択であることを理解しています。残念ながら、これらのオプションに関するドキュメントはほとんどなく、Python での実稼働規模のコメット ユーザーに関する適切な情報をオンラインで見つけることができません。

本番システムで Python に comet をうまく実装した人はいますか? どのようにそれを実行しましたか? また、独自の実装を行うためのリソースはどこにありますか?

0 投票する
7 に答える
26832 参照

python - Linuxでタスクセットを使用するマルチコアシステムでのPythonグローバルインタープリターロック(GIL)の回避策?

それで、Python Global Interpreter Lock (GIL) http://blip.tv/file/2232410でこの講演を見終わったところです。

その要点は、GIL がシングル コア システムにとって非常に優れた設計であるということです (Python は基本的に、スレッドの処理/スケジューリングをオペレーティング システムに任せています)。しかし、これはマルチコア システムでは深刻な裏目に出る可能性があり、IO 集中型スレッドが CPU 集中型スレッドによって大幅にブロックされ、コンテキスト切り替えの費用がかかり、ctrl-C の問題 [*] などが発生する可能性があります。

したがって、GIL は基本的に 1 つの CPU で Python プログラムを実行するように制限しているため、これを受け入れて Linux でタスクセットを使用して、プログラムのアフィニティをシステムの特定のコア/CPU に設定しないでください (特に、マルチコア システムで実行されている複数の Python アプリなど)?

最終的に私の質問は次のとおりです。PythonアプリケーションでLinuxでタスクセットを使用しようとした人はいますか(特に、Linuxシステムで複数のアプリケーションを実行して、特定のコアにバインドされた1つまたは2つのPythonアプリケーションで複数のコアを使用できるようにする場合)。結果でしたか?やる価値はありますか?特定のワークロードで事態が悪化することはありますか? 私はこれを実行してテストする予定です (基本的に、プログラムの実行にかかる時間が長いか短いかを確認します) が、あなたの経験について他の人から聞きたいです.

追加: David Beazley (リンクされたビデオで講演を行っている人物) は、一部の C/C++ 拡張機能が GIL ロックを手動で解放し、これらの拡張機能がマルチコア (つまり、科学的または数値データ分析など) 用に最適化されている場合、数を計算するためのマルチコアの利点を得るのではなく、拡張機能は単一のコアに制限されているという点で効果的に機能しなくなります (したがって、プログラムが大幅に遅くなる可能性があります)。一方、このような拡張機能を使用していない場合

マルチプロセッシング モジュールを使用しない理由は、(この場合) プログラムの一部がネットワーク I/O バウンド (HTTP 要求) に大きく依存しているためです。スレッドが HTTP リクエストを開始し、I/O を待機しているため、GIL を放棄し、別のスレッドがそれを実行できるため、プログラムの一部は、CPU に大きな負担をかけずに 100 以上のスレッドを簡単に実行でき、実際に使用できるようになります。利用可能なネットワーク帯域幅。スタックレス Python/etc に関しては、プログラムを書き直したり、Python スタックを置き換えたりすることにあまり関心がありません (可用性も懸念事項です)。

[*] シグナルを受信できるのはメイン スレッドだけなので、ctrl-C を送信すると、Python インタープリターは基本的にシグナルを処理できるようにメイン スレッドを実行させようとしますが、どのスレッドを実行するかを直接制御しないため (これはオペレーティング システムに任されています) 基本的に、最終的にメイン スレッドに到達するまでスレッドを切り替え続けるように OS に指示します (運が悪い場合は、しばらく時間がかかる場合があります)。

0 投票する
7 に答える
64223 参照

python - Python でのスレッド化

Python でマルチスレッド アプリケーションを作成するために使用されるモジュールは何ですか? 言語とStackless Pythonによって提供される基本的な同時実行メカニズムは認識していますが、それぞれの長所と短所は何ですか?

0 投票する
3 に答える
982 参照

python - ソケットバッファについて説明してください

私はソケットプログラミングに関する例を見つけようとしていて、このスクリプトに出くわしました: http://stacklessexamples.googlecode.com/svn/trunk/examples/networking/mud.py

このスクリプトを読んでいると、次の行が見つかりました: listenSocket.listen(5)

私が理解しているように、バッファから5バイトを読み取り、それを処理します...

しかし、相手側から 5 バイト以上が送信された場合はどうなるでしょうか?

そのスクリプトの他の場所では、4 つのコマンドに対して入力をチェックし、文字列に \r\n があるかどうかを確認します。「look」と \r\n のようなコマンドで 5 バイト以上を埋め合わせてはいけませんか?

アラン

0 投票する
1 に答える
670 参照

python - スタックレス python が mod_python/apache の動作を停止しました

バニラpythonと完全に互換性があると述べたいくつかのサイトを読んだ後、stackless pyton 2.6.2をインストールしました。インストール後、django アプリケーションが動作しなくなったことがわかりました。

私はdjango(1.1)をもう一度再インストールしましたが、今はちょっと迷っています。私が得るエラーは500です:

内部サーバーエラー

サーバーで内部エラーまたは構成ミスが発生したため、リクエストを完了できませんでした。

サーバー管理者の webmaster@localhost に連絡して、エラーが発生した時刻と、エラーの原因となった可能性のある操作を知らせてください。

このエラーの詳細については、サーバー エラー ログを参照してください。Apache/2.2.11 (Ubuntu) DAV/2 PHP/5.2.6-3ubuntu4.1 with Suhosin-Patch mod_python/3.3.1 Python/2.6.2 mod_ruby/1.2.6 Ruby/1.8.7(2008-08-11 ) mod_ssl/2.2.11 OpenSSL/0.9.8g サーバー 127.0.0.1 ポート 80

他に何ができますか?

編集:最初のコメントから、問題はdjangoではなくmod_pythonとapacheにあると理解していますか?だから私は私の質問のタイトルを編集しました。

Edit2: いくつかのパスの設定に問題があると思います。mod_python から mod_wsgi に移行しようとしましたが、最終的に次のエラーを取得するためだけに正しくセットアップすることができました: [エラー] [クライアント 127.0.0.1] Raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e) [Sun Aug 16 12:38:22 2009] [error] [client 127.0.0.1] ImproperlyConfigured: MySQLdb モジュールの読み込みエラー: MySQLdb という名前のモジュールがありません

アラン

0 投票する
2 に答える
1185 参照

c# - モノタスクレット/コルーチンのオーバーヘッド

新しいMonoContinuations/ Taskletフレームワークの主なパフォーマンスオーバーヘッド(gc /スタックコピー...)は何ですか?

このオーバーヘッド(コルーチンパフォーマンス/生のパフォーマンス)は、Lua CoroutineやスタックレスPythonなどの他のフレームワークとどのように比較されますか?

Mono 2.6では、継続/コルーチンのサポートが追加されます。私はsvnバージョンを作成し、次のコードを使用してそのオーバーヘッドを見積もりました

マイクロスレッド/スケジューラーの実行には約1.5〜2秒かかりましたが、生のループはほぼ瞬時に実行されます。オーバーヘッドが予想されますが、これは少し多いようです。

新しいMonoContinuations/ Taskletフレームワークの主なパフォーマンスオーバーヘッドは何ですか?このオーバーヘッド(コルーチンパフォーマンス/生のパフォーマンス)は、Lua CoroutineやスタックレスPythonなどの他のフレームワークとどのように比較されますか?

ありがとう

0 投票する
1 に答える
2776 参照

python - Django ImageField の検証と PIL

日曜日に、スタックレス python をインストールしたときに、python モジュールに問題がありました。今、私はコンパイルしてインストールしました:

setuptools と python-mysqldb を実行し、django プロジェクトを再び起動して実行しました。(django-1.1も再インストールしました)、

次に、jpeg、freetype2、および PIL をコンパイルしてインストールしました。また、mod_python の代わりに mod_wsgi を使い始めました。

しかし、フォームに画像フィールドをアップロードすると、検証エラーが発生します:

有効な画像をアップロードしてください。アップロードしたファイルは画像ではないか、破損した画像でした。

Searchmonkey は、それが field.py imagefield 検証からのものであることを示しています。このエラーが発生する前に、PIL からイメージをインポートし、ファイルを開いて検証します。Pythonプロンプトから手動でPILをインポートしようとしました-うまくいきました。Image.open および Image.verify と同じです。では、何がこの問題を引き起こしているのでしょうか?

アラン

0 投票する
5 に答える
22031 参照

python - リアルタイム オペレーション システム (RTOS) 上の Python

RTOS プラットフォームに小規模なデータ収集システムを実装することを計画しています。(QNX または RT-Linux システムのいずれか)。

私の知る限り、これらのジョブは C / C++ を使用して実行され、システムを最大限に活用しています。しかし、コーディング作業にやみくもに飛び込む前に、経験豊富な人々の意見を知りたいと思っており、Python ですべてを書くことが実現可能で賢明であるかどうか (光沢のあるグラフィカル ユーザー インターフェイスを介した低レベルの計測器のインターフェイスから) を知りたいと思っています。そうでない場合は、デザインのタイミングが重要な部分を "C" で混在させるか、すべてを C で記述し、Python コードを 1 行も配置しません。

または、少なくとも Python を使用して C コードをラップし、システムへのアクセスを容易にします。

どのような方法で作業するようアドバイスしていただけますか? 似たようなデザインの事例や参考文献なども教えていただければ幸いです。

ありがとうございました

注 1: QNX を強調する理由は、大気測定実験用にQNX 4.25 ベースのデータ収集システム ( M300 ) が既にあるためです。これは独自のシステムであり、内部にアクセスすることはできません。6.4 には無料のアカデミック ライセンス オプションがあり、Python 2.5 と最近の GCC バージョンが付属しているため、QNX をさらに検討することは私たちにとって有利かもしれません。私は RT-Linux システムをテストしたことがなく、安定性と効率の点で QNX にどの程度匹敵するかはわかりませんが、Python の生息地と非 Python ツール (Google Earth など) のすべてのメンバーが新しいシステムを使用していることは知っています。ほとんどの場合、すぐに使用できる作品で開発できます。

0 投票する
3 に答える
796 参照

python - 非常に大規模なゲーム ワールドのストレージを設計する

ゲームプログラミングを再開しています。10 年前、私は qbasic でゲームを作成していましたが、それ以来、ゲームのプログラミングを行っていないため、かなり錆びています。私は常にプログラミングを行ってきましたが、現在は Web 開発者/DBA/管理者です。いくつか質問がありますが、投稿ごとに 1 つに制限します。

私が取り組んでいるゲームは、非常に大きな世界になるでしょう。URWに多少似ていますが、さらに広い世界で、より「RPG」に似ています。

私が決定しようとしてきたのは、マップをレイアウトし、保存し、アクセスする最良の方法は何かということです。sqlite を使用してデータを保存するというアイデアを思いつきました。その後、sqlite db をゲームの保存ファイルとして使用することもできました。

これをどのように行うべきか、または他のストレージ方法のアイデアについてのヒントはありますか?

私のゲームの要件は次のとおりです。

  • ゲームの世界で見つけるには、完全なランダム アクセスが必要です (NPC、モンスター、動物はすべて常にアクティブになります)。
  • 私は Stackless Python 3.1 を使用しています。多くの作業を行わない限り、オプションはかなり限られています。
  • 非常に広い世界を処理できる必要があります。
  • 同時実行のサポートはプラスになりますが、必要になるとは思いません。
0 投票する
2 に答える
1677 参照

python - スタックレスPythonとPyQt

Stackless PythonとPyQtでどのような経験がありますか?

人々が対処すれば私は幸せになる問題:

  1. Stackless用のPyQtのコンパイル:PyQtは特にStackless用にコンパイルする必要がありますか?コンパイルはスムーズですか?バインディングなどの問題。

  2. 安定性:予期しないクラッシュ、フリーズ、一時停止、その他の異常はありますか?

  3. メモリ管理:メモリリークのヒント。Stackless / PlainVanillaPyQtアプリケーションに必要なRAMの比較

  4. ソフトウェアエンジニアリングのエンパワーメント:スタックレスパワードPyQtアプリケーションの制御フローモデルの非常に短い概要

  5. 学んだ教訓:学んだ苦痛な教訓、避けるべき罠、あなたが経験したかもしれない取り組むべき問題

幸せになる