■
.SUFFIXES: .cpp .o
.cpp.o:
$(CXX) $(CXXFLAGS) $(INCLUDE) -c $<
depend:
$(CXX) -MM $(INCLUDE) $(CXXFLAGS) $(SOURCES) > dependencies
clean :
rm -f $(OBJECTS) $(TARGET)
include dependencies
■
http://pc8.2ch.net/test/read.cgi/tech/1104183124/
から引用
個人的な考えだけど、まずはデバッグ環境用としてのみPythonを組み込んでおいて、
実行時にオブジェクトのステータスを変えたり、振る舞いを変えたり、といった
作業効率を向上させるための道具として使う。で、メモリ、動作速度面での
目処が立てば次のプロジェクトで実用へ、って感じかな。
まぁ、ゲームに組み込みを考えるならLuaの方がコンパクトだから
そっちの方が無難かも。
> CからPythonの関数を呼んだ時に、Pythonが確保するヒープ容量って
自分でPythonの処理系をコンパイルするなら、オプションで上限を設定できます。
> 基本的に処理の呼び出しが名前ベースで解決されるから、
> インスタンスが増えれば増えるほどその分文字列のデータが
> 増えてくわけだ。
Pythonの文字列は(関数呼出の際の関数名など内部で使われる文字列も)
重複する文字はinternとして扱われるので、メモリの面では単純に比例して増えるわけではありません。
あと、Pythonのソースで気をつける事。# とりあえず思いついただけなので、突っ込み・追加歓迎
- 事前処理以外にevalを使わない。
- (stacklessでなければ、)再帰呼出やデータの循環構造
- リストを固定長で扱う。リサイズ時に拡張されるので、appendを直接使わない。
初期化時に長さだけ確保しておく方が良い。Cの配列ようにまとまった領域が取られる為。
- クラスで抽象データ構造を表現せずに、list,dictを使い、長さ、要素の長さを制限する事で
実行時に使うデータ領域が大体予測可能になるはず。
■
reStructuredText