为了账号安全,请及时绑定邮箱和手机立即绑定

如何提高执行时间的性能?他们有什么更好的方式来阅读这个文件吗?

如何提高执行时间的性能?他们有什么更好的方式来阅读这个文件吗?

慕村9548890 2021-09-15 14:29:31
我正在尝试使用多个线程拆分文本文件。该文件为 1 GB。我正在按字符读取文件。执行时间为 24 分 54 秒。不是按字符读取文件是他们减少执行时间的更好方法。我很难找到一种可以减少执行时间的方法。如果还有其他更好的方法可以用多个线程拆分文件,也请给我建议。我对java很陌生。任何帮助将不胜感激。:)    public static void main(String[] args) throws Exception {        RandomAccessFile raf = new RandomAccessFile("D:\\sample\\file.txt", "r");        long numSplits = 10;        long sourceSize = raf.length();        System.out.println("file length:" + sourceSize);        long bytesPerSplit = sourceSize / numSplits;        long remainingBytes = sourceSize % numSplits;        int maxReadBufferSize = 9 * 1024;        List<String> filePositionList = new ArrayList<String>();        long startPosition = 0;        long endPosition = bytesPerSplit;        for (int i = 0; i < numSplits; i++) {            raf.seek(endPosition);            String strData = raf.readLine();            if (strData != null) {                endPosition = endPosition + strData.length();            }            String str = startPosition + "|" + endPosition;            if (sourceSize > endPosition) {                startPosition = endPosition;                endPosition = startPosition + bytesPerSplit;            } else {                break;            }            filePositionList.add(str);        }        for (int i = 0; i < filePositionList.size(); i++) {            String str = filePositionList.get(i);            String[] strArr = str.split("\\|");            String strStartPosition = strArr[0];            String strEndPosition = strArr[1];            long startPositionFile = Long.parseLong(strStartPosition);            long endPositionFile = Long.parseLong(strEndPosition);            MultithreadedSplit objMultithreadedSplit = new MultithreadedSplit(startPositionFile, endPositionFile);            objMultithreadedSplit.start();        }        long endTime = System.currentTimeMillis();        System.out.println("It took " + (endTime - startTime) + " milliseconds");    }}
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 137 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信