この問題は始まったばかりで、先週、特定のソース ファイルに問題はありませんでした。私は SQLAlchemy と Geoalchemy を使用しています。Eclipse と Aptana をトリガーして、ファイルを編集するだけで CPU のペグを開始する特定のコード ブロックは次のとおりです。
obsRecs = db.session.query(multi_obs)\
.join(sensor,sensor.row_id == multi_obs.sensor_id)\
.join(platform,platform.row_id == sensor.platform_id)\
.join(m_type,m_type.row_id == multi_obs.m_type_id)\
.join(m_scalar_type,m_scalar_type.row_id == m_type.m_scalar_type_id)\
.join(obs_type,obs_type.row_id == m_scalar_type.obs_type_id)\
.join(uom_type,uom_type.row_id == m_scalar_type.uom_type_id)\
.filter(multi_obs.m_date > dateOffset)\
.filter(multi_obs.m_type_id.in_(mTypes))\
.filter(multi_obs.d_top_of_hour == 1)\
.filter(platform.active < 3)\
.filter(platform.the_geom.within(WKTSpatialElement(bboxPoly, -1)))\
.order_by(platform.row_id)\
.all()
そのブロック内の何かを編集し始めるとすぐに、問題が発生します。そのコードの一部を切り取り、ファイル内の他の領域を編集しましたが、問題はありません。他のpythonファイルも問題なく編集しました。最初はコード補完に問題があると思ったので、それをオフにしても問題が発生します。
Eclipse Indigo を使用していましたが、アプリを強制終了しないと、メモリ不足の Java エラーがスローされました。Aptana では、CPU が急上昇し、アイドル状態に戻り、編集を再開すると再び急上昇します。
私のセットアップ: OS X Lion Java(TM) SE ランタイム環境 (ビルド 1.6.0_31-b04-415-11M3646) Java HotSpot(TM) 64 ビット サーバー VM (ビルド 20.6-b01-415、混合モード) i7 クアッド コア、 8ギガバイトのRAM
この問題は、Apple からの最新の Java アップデートによって引き起こされた可能性があると考えたので、Time Machine を介してマシン全体をアップデート前の状態にロールバックしましたが、まだ問題が発生しています。
私は、非 PyDev ベースのソリューションを見つけようとしています。
エラーが発生するまでEclipseを実行できるように編集 すると、Console.Appは次のように表示されます。
8/1/12 9:14:01.114 PM [0x0-0x182182].org.eclipse.eclipse: Exception in thread "[Timer] - Main Queue Handler" Exception in thread "Poller SunPKCS11-Darwin"
8/1/12 9:14:01.114 PM [0x0-0x182182].org.eclipse.eclipse: java.lang.OutOfMemoryError: Java heap space
8/1/12 9:14:01.114 PM [0x0-0x182182].org.eclipse.eclipse: at sun.security.pkcs11.wrapper.PKCS11.C_GetSlotInfo(Native Method)
8/1/12 9:14:01.115 PM [0x0-0x182182].org.eclipse.eclipse: at sun.security.pkcs11.SunPKCS11.initToken(SunPKCS11.java:767)
8/1/12 9:14:01.115 PM [0x0-0x182182].org.eclipse.eclipse: at sun.security.pkcs11.SunPKCS11.access$100(SunPKCS11.java:42)
8/1/12 9:14:01.115 PM [0x0-0x182182].org.eclipse.eclipse: at sun.security.pkcs11.SunPKCS11$TokenPoller.run(SunPKCS11.java:700)
8/1/12 9:14:01.115 PM [0x0-0x182182].org.eclipse.eclipse: at java.lang.Thread.run(Thread.java:680)
8/1/12 9:14:01.115 PM [0x0-0x182182].org.eclipse.eclipse: java.lang.OutOfMemoryError: Java heap space
8/1/12 9:14:01.115 PM [0x0-0x182182].org.eclipse.eclipse: at java.lang.AbstractStringBuilder.<init>(AbstractStringBuilder.java:45)
8/1/12 9:14:01.115 PM [0x0-0x182182].org.eclipse.eclipse: at java.lang.StringBuffer.<init>(StringBuffer.java:103)
8/1/12 9:14:01.115 PM [0x0-0x182182].org.eclipse.eclipse: at org.eclipse.equinox.internal.util.impl.tpt.threadpool.ThreadPoolFactoryImpl.execute0(ThreadPoolFactoryImpl.java:94)
8/1/12 9:14:01.115 PM [0x0-0x182182].org.eclipse.eclipse: at org.eclipse.equinox.internal.util.impl.tpt.timer.TimerImpl.run(TimerImpl.java:110)
8/1/12 9:14:01.115 PM [0x0-0x182182].org.eclipse.eclipse: at java.lang.Thread.run(Thread.java:680)
編集 2
Oracle JDK を入手し、それを使用するようにシステムを設定しました。同じ問題。
編集3
バックアップからの復元後も同様の問題が発生します。この問題は潜んでいたに違いなく、コード ブロックはそれをトリガーするのにちょうど良かったのです。コード補完エンジンは依然として主な疑いがあります。