Java动态内存占用
import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.List; /** * @Version : 1.0 * @Author : lihao * @Date : 2022/6/13 11:49 **/ public class Test11 { /** * 处理内存 */ public static void handleNc(){ String filePath = "D:/data/aa"; //文件路径 int memValue = 1024; //判断基准:1024M String strAdd = ""; //长度增加的字符串 int rssValue = getRssValue(filePath); //获取rss的值 while(rssValue < memValue){ int diffValue = memValue - rssValue; //差值M:diffValue兆 //生成“差值M”的字符串 StringBuilder strb = new StringBuilder(); for(int i=0; i<1024*1024*diffValue; i++){ strb.append('a'+""); } strAdd = strb.toString(); //当前需要增加的长度为“差值M”的字符串 } } /** * 获取rss配置的值 */ public static int getRssValue(String filePath){ int rssValue = 0; //rss的值 //以行为单位读取文件,读取到最后一行 BufferedReader reader = null; List<String> listContent = new ArrayList<>(); try { reader = new BufferedReader(new FileReader(filePath)); String tempString = null; int line = 1; // 一次读入一行,直到读入null为文件结束 while ((tempString = reader.readLine()) != null) { listContent.add(tempString); line++; } reader.close(); } catch (IOException e) { e.printStackTrace(); } finally { if (reader != null) { try { reader.close(); } catch (IOException e1) { } } } for(String prostr : listContent){ if(prostr.contains("rss")){ rssValue = Integer.valueOf(prostr.replace("rss ","")); } } return rssValue; } }
import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.List; /** * @Version : 1.0 * @Author : lihao * @Date : 2022/6/13 11:49 **/ public class GetRssValueAndHandleMem { /** * 处理内存 */ public static String handleNc(){ String filePath = "D:/data/123.txt"; //文件路径 long memValue = 10; //判断基准:1024M String strAdd = ""; //长度增加的字符串 long rssValue = getRssValue(filePath); //获取rss的值 int num = 0; memValue = memValue*1024*1024; while(rssValue < memValue){ // System.out.println("第" + num +"次---------" + rssValue); //生成“1M”的字符串 StringBuilder strb = new StringBuilder(); for(int i=0; i<102400; i++){ strb.append("aaaaaaaaaa"); } strAdd = strb.toString(); rssValue = getRssValue(filePath); //获取最新的rss的值 } return strAdd; } /** * 获取rss配置的值 */ public static long getRssValue(String filePath){ long rssValue = 0; //rss的值 //以行为单位读取文件,读取到最后一行 BufferedReader reader = null; List<String> listContent = new ArrayList<>(); try { reader = new BufferedReader(new FileReader(filePath)); String tempString = null; int line = 1; // 一次读入一行,直到读入null为文件结束 while ((tempString = reader.readLine()) != null) { listContent.add(tempString); line++; } reader.close(); } catch (IOException e) { e.printStackTrace(); } finally { if (reader != null) { try { reader.close(); } catch (IOException e1) { } } } for(String prostr : listContent){ if(prostr.startsWith("rss ")){ rssValue = Long.valueOf(prostr.replace("rss ","")); } } return rssValue; } }
public class TestRun { public static void main(String[] args) { // String filePath = "D:/data/123.txt"; // long rssValue = GetRssValueAndHandleMem.getRssValue(filePath); // System.out.println(rssValue); //处理xxxx String s = GetRssValueAndHandleMem.handleNc(); System.out.println(s); } }