diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..1fd818d --- /dev/null +++ b/readme.md @@ -0,0 +1,9 @@ +# 智能释放功能释放策略选择的插件 + +## 插件使用 +代码内有六个等级的内存负载,通过Holder提供「等级,负载」作为参数自行添加想要替换的策略,安装插件后即可使用新的策略进行内存释放 + + +## 注意事项 +10.0.3plus版本后可用,用于快速迭代、验证以得到更合适的释放策略 + diff --git a/src/com/fr/plugin/memory/release/strategy/ReleaseStrategyProvider.java b/src/com/fr/plugin/memory/release/strategy/ReleaseStrategyProvider.java index 1fb05a0..3b12390 100644 --- a/src/com/fr/plugin/memory/release/strategy/ReleaseStrategyProvider.java +++ b/src/com/fr/plugin/memory/release/strategy/ReleaseStrategyProvider.java @@ -2,22 +2,20 @@ package com.fr.plugin.memory.release.strategy; import com.fr.decision.fun.impl.BaseMemoryReleaseStrategyProcessor; import com.fr.decision.system.monitor.gc.load.LoadLevel; -import com.fr.decision.system.monitor.release.ReleaseStrategy; +import com.fr.decision.system.monitor.release.ReleaseStrategyHolder; import com.fr.intelli.record.Focus; import com.fr.intelli.record.Original; import com.fr.record.analyzer.EnableMetrics; -import java.util.HashMap; -import java.util.Map; @EnableMetrics public class ReleaseStrategyProvider extends BaseMemoryReleaseStrategyProcessor { @Override @Focus(id = StrategyConstant.PLUGIN_ID, text = "Plugin-RELEASE_STRATEGY", source = Original.PLUGIN) - public Map getStrategy() { - Map strategyMap = new HashMap<>(); - strategyMap.put(LoadLevel.HIGH, HighReleaseStrategy.getInstance()); - strategyMap.put(LoadLevel.TERRIBLE, TerribleReleaseStrategy.getInstance()); - return strategyMap; + public ReleaseStrategyHolder getStrategy() { + ReleaseStrategyHolder holder = new ReleaseStrategyHolder(); + holder.addStrategy(LoadLevel.HIGH, HighReleaseStrategy.getInstance()); + holder.addStrategy(LoadLevel.TERRIBLE, TerribleReleaseStrategy.getInstance()); + return holder; } } diff --git a/src/com/fr/plugin/memory/release/strategy/StrategyConstant.java b/src/com/fr/plugin/memory/release/strategy/StrategyConstant.java index 1750354..003d27c 100644 --- a/src/com/fr/plugin/memory/release/strategy/StrategyConstant.java +++ b/src/com/fr/plugin/memory/release/strategy/StrategyConstant.java @@ -1,5 +1,5 @@ package com.fr.plugin.memory.release.strategy; -public class StrategyConstant { - public static final String PLUGIN_ID = "com.fr.plugin.memory.release.strategy"; +class StrategyConstant { + static final String PLUGIN_ID = "com.fr.plugin.memory.release.strategy"; }