私のJMeterテストでは、JMeterがクラスjavascript_gen_cmd__xxxをロードし続けていることがわかりました。テストでは、設定したスループットに達しませんでした。
JVisualVMで "Perform GC"ボタンをクリックすると、クラスがアンロードされ、スループットに達します。
だから私はGCがいつ起こるべきかを示すことができれば助けになると思う。 たとえば、ロードされたクラスの総数が特定の数に達したときなどです。
私は-XX:MetaspaceSize = 120Mを試しましたが、メタスペースの使用量が120MBに達したときにクラスのアンロードをトリガーしませんでした。
回答:
回答№1は0何かのようなもの -XX:MaxMetaspaceFreeRatio=30 -XX:MinMetaspaceFreeRatio=10
それがすぐにいっぱいになり、クラスアンロードGCを引き起こすはずです。
あるいは -XX:+ExplicitGCInvokesConcurrent -XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses
CMSまたはG1を使用して起動する System.gc()
タイマーを介しても動作する可能性があります。