首页 > 系统相关 >java程序如何将8g的文件,在jvm内存2g的情况下

java程序如何将8g的文件,在jvm内存2g的情况下

时间:2022-11-30 19:35:35浏览次数:45  
标签:java 3600000 8g 86400000 tempTime% 2g import tempTime


import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;

public class Test {
public static void main(String[] args) throws Exception{
Long startTime = System.currentTimeMillis();

testByteBuffer();

Long endTime = System.currentTimeMillis();
// 计算并打印耗时
Long tempTime = (endTime - startTime);
System.out.println("花费时间:"+
(((tempTime/86400000)>0)?((tempTime/86400000)+"d"):"")+
((((tempTime/86400000)>0)||((tempTime%86400000/3600000)>0))?((tempTime%86400000/3600000)+"h"):(""))+
((((tempTime/3600000)>0)||((tempTime%3600000/60000)>0))?((tempTime%3600000/60000)+"m"):(""))+
((((tempTime/60000)>0)||((tempTime%60000/1000)>0))?((tempTime%60000/1000)+"s"):(""))+
((tempTime%1000)+"ms"));

}

static File file = new File("E:\\Linux【更多IT资源加微信wxdhhfy】\\Linux\\hadoop000-Snapshot1.vmem");

static int bufferSize = 1024;

public static void testByteBuffer() throws IOException {
FileChannel channel = new FileInputStream(file).getChannel();
ByteBuffer buffer = ByteBuffer.allocate(bufferSize);
int bytes;
while ((bytes = channel.read(buffer)) != -1) {
byte[] data = new byte[bytes];
buffer.flip();
buffer.get(data);
buffer.clear();
}
channel.close();
}
}

java程序如何将8g的文件,在jvm内存2g的情况下_大数据


控制变量,通过设置VM options参数-Xmx

-Xmx 为JVM运行时可申请的最大Heap值,默认值为物理内存的1/4但小于1G,默认当空余堆内存小于40%时,JVM会增大Heap到-Xmx指定的大小,可通过-XX:MinHeapFreeRation来指定这个比列。

java程序如何将8g的文件,在jvm内存2g的情况下_jvm_02


同事的解决方法是使用BufferedReader,因为其中同样有缓冲区,还有readLine方法

java程序如何将8g的文件,在jvm内存2g的情况下_jvm_03


解析大文件,并存到mq中,在同一个服务中使用多线程进行消费,存到es中


标签:java,3600000,8g,86400000,tempTime%,2g,import,tempTime
From: https://blog.51cto.com/u_12528551/5900319

相关文章

  • java导入包(键盘录入)
    java中的Scanner,这个类就可以接受键盘输入的数字导包--Scanner这个类在哪importjava.util.Scanner导包的动作必须出现在类定义的上边创建对象---表示我要开始用Sc......
  • hadoop学习之HDFS API-2-通过编写java接口操作hdfs
    1.创建文件夹工程的test包中java->com.imooc.bigdata->hadoop.hdfs.HDFSApp注意包:importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.fs.FileSyste......
  • java字面量
    字面量:常量整数类型:不带小数的数字66878小数类型:带小数点的数字13.14字符串类型:用双括号括起来的内容“234”“hello”字符类型:用单引号括起来的,内容只能有......
  • java线程(三)线程的6种状态
    NEW:线程刚刚创建,还没有执行start启动RUNNABLE:可运行状态,由线程调度器可以安排执行包括READY和RUNNING两种细分状态WAITING:等待被唤醒TIMEDWAITING:......
  • java数据类型
    java语言的数据类型分为:基本数据类型,引用数据类型基本数据类型的四类八种整数byte取值范围-128~127shortintlong浮点数floatdouble字符charbuer......
  • 菜鸟好文推荐(十五)——9个基于Java的搜索引擎框架
    在这个信息相当繁杂的互联网时代,我们已经学会了如何利用搜索引擎这个强大的利器来找寻目标信息,比如你会在Google上搜索情人节如何讨女朋友欢心,你也会在百度上寻找正规的整......
  • Java 集合框架2:List
    目录List1.概述2.功能拓展位置访问搜索迭代范围视图3.实现ArrayList实现原理CopyOnWriteArrayListLinkedList实现原理List1.概述List是一个有序序列,除了继承了Collect......
  • Java高效自学,应知道的知识
    JAVA简介    Java已经多年连续占据编程语言的榜首,Java是一门面向对象编程语言,它不仅吸收了C++语言的各种优点,还摒弃了C++语言中难以理解的多继承、指针等概念,因此Jav......
  • javascript函数的理解
    参考:https://www.liaoxuefeng.com/wiki/1022910821149312/1023021087191360在js里,函数是一等公民。函数可以分配给变量函数可以作为参数传递给其他函数函数可以从其他......
  • JAVA爬虫爬取网页数据数据库中,并且去除重复数据
    pom文件<!--添加Httpclient支持--><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><versio......