java - 今天开始用eclipse编写servlet程序,但是经常写着写着就变的很卡,最后强行关闭,又重启还是不行,为什么呢?
迷茫
迷茫 2017-04-18 10:19:04
0
4
995

有时候会自己卡在那,有时候eclipse提示出现问题,要求我查看workspace.metadata.log文件,log文件提示的错误是:
!ENTRY org.eclipse.osgi 4 0 2016-11-05 15:17:10.371
!MESSAGE Error stopping the framework.
!STACK 0
java.lang.OutOfMemoryError: PermGen space


我在百度上查的java.lang.OutOfMemoryError解决方案是在tomcat配置里扩大内存,如图,红色部分是根据提示添加的:

还有的说在eclipse里修改Window/Perferences/General里的Startup and Shutdown,把打勾的都去掉。

我试了两种方法都不行,再次打开eclipse编程过一会还是会边卡,求大神指教,这是为什么啊?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全員に返信(4)
Peter_Zhu

1 以下に示すように、ecplise のインストール パスで ecplise.ini を見つけ、テキスト エディターを選択して開き、ボックス内のこれらの設定のパラメーターを確認し、独自のメモリ条件に従って設定します


次に、ecplise で使用している JDK の仮想メモリの写真を撮ることもできます
ウィンドウを見つけて、->設定->Java->eclispe にインストールされた JRE をクリックし、編集ボタンをクリックします。右側、編集インターフェイスの [デフォルトの VM 引数] オプションに、次の値を入力します。
-Xms64m -Xmx128m

3. 実行構成を変更します

コードを右クリックし、「実行」→「実行構成」をクリックし、引数パラメーターの「VM 引数:」に次の値を入力します。
-Xms64m-Xmx128m

最後に、これらのパラメータ値は単に入力するものではありません。自分のマシンのメモリに基づいて適切な値を設定するのが最善です

以下は公式の説明です
ヒープメモリと非ヒープメモリ
公式声明によると、「Java仮想マシンにはヒープがあります。ヒープはランタイムデータ領域であり、すべてのクラスインスタンスと配列のメモリはここから来ます」 . 割り当て。Java 仮想マシンの起動時にヒープが作成されます。「JVM 内のヒープの外側のメモリは非ヒープ メモリと呼ばれます。」 JVM は主に、ヒープと非ヒープの 2 種類のメモリを管理していることがわかります。簡単に言うと、ヒープは Java コードにアクセスできるメモリであり、開発者用に予約されています。非ヒープは JVM が独自に使用するために予約されているメモリであり、メソッド領域や JVM の内部処理や最適化に必要なメモリです。 JIT コンパイル済みコード キャッシュ)、すべてのクラス構造 (ランタイム定数プール、フィールド、メソッド データなど)、およびメソッドとコンストラクターのコードはすべてオフヒープ メモリにあります。
ヒープメモリ割り当て
JVM によって割り当てられる初期メモリは -Xms で指定され、デフォルトは物理メモリの 1/64 です。JVM によって割り当てられる最大メモリは -Xmx で指定され、デフォルトは 1/4 です。物理メモリの。デフォルトでは、空きヒープ メモリが 40% 未満の場合、JVM は -Xmx の最大制限までヒープを増やします。空きヒープ メモリが 70% を超える場合、JVM は最小制限の -Xmx までヒープを減らします。 -Xms。したがって、サーバーは通常、各 GC 後にヒープ サイズが調整されることを避けるために、-Xms と -Xmx が等しくなるように設定します。
非ヒープ メモリの割り当て
JVM は -XX:PermSize を使用して非ヒープ メモリの初期値を設定します。デフォルトは物理メモリの 1/64 です。XX:MaxPermSize は非ヒープ メモリの最大サイズを設定します。デフォルトは物理メモリの 1/4 です。
JVM メモリ制限 (最大値)
まず第一に、JVM メモリは実際の最大物理メモリに制限されます (ナンセンス!笑) 物理メモリが無限であると仮定すると、JVM メモリの最大値は、オペレーティング·システム。簡単に言うと、32 ビット プロセッサの制御可能なメモリ空間は 4GB ですが、特定のオペレーティング システムでは通常、この制限が 2GB ~ 3GB に設定されます (一般的に、Windows システムでは 1.5G ~ 2G、1.5GB です)。 Linux システムでは G-2G)、64 ビットを超えるプロセッサには制限はありません。

いいねを押す +0
Peter_Zhu
  • メモリを増設/SSDを交換

  • コンピューターを変更する

いいねを押す +0
伊谢尔伦

スクリーンショットをアップロードできない場合は、これらの設定を Tomcat の JDK 設定に追加してみてください。これは、server>tomcat>JDK のオプションの Java VM 引数にあります。

いいねを押す +0
阿神

シンプルにして、アイデアに切り替えます(ただし、構成はより優れています)

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート