SystemError: Objects/stringobject.c:3565: bad argument to internal function
gomiなのでPythonでメモリ上にがっつり乗っけるスクリプト書いたら見慣れないエラーで落ちた。
test.py ---- str = "" while True: str += "a" * 1024 * 1024 print len(str) ----
これをCentOS 5.6(64bit)上のPython 2.4.3とかで流すと
2144337920 2145386496 2146435072 Traceback (most recent call last): File "test.py", line 3, in ? str += "a" * 1024 * 1024 SystemError: Objects/stringobject.c:3565: bad argument to internal function
こんな感じで32bit = (2GB)付近で落ちる。だらしねえな
MBA上のPython 2.7.1とかDebian 64とかだと世界まるみえテレビ特捜部のレスキュー911のCMの後並の勢いで元気に走るので、多分2.4系だとstrは32bitとか何かしらの制限があるんじゃないかなーと思うんですが、いかんせんめんどくさくなったので他の方法でやりました。
そもそもそんなバカでかいファイルを全部オンメモリとかしちゃいけないですよね。。
富豪的だなー最近ー