慢二进制模式匹配功能

时间:2016-03-06 17:16:31

标签: java android garbage-collection

我做了一个简单的二元模式匹配函数。然而,GC变得疯狂,我的代码需要一段时间来处理一个小的4Mb文件(超过一分钟)。我用python进行了测试,它在不到5秒的时间内处理同一个文件。 这是代码:

public void searchPattern(byte[] pattern){
    try {
        // file is a RandomAccesFile
        file.seek(0);
        long i = 0;
        byte[] buff = new byte[pattern.length];
        long start = System.currentTimeMillis();
        while(i < file.length()-pattern.length){
            file.seek(i);
            file.read(buff);
            if(Arrays.equals(pattern,buff)){
                Log.d("BinaryFile","Match found --> " + Long.toHexString(i));
            }
            i += 1;
        }
        Log.d("BinaryFile","Analysis finished in " + (System.currentTimeMillis() - start) / 1000 + "s");

    } catch(IOException e){
        e.printStackTrace();
    }
}

文件是一个randomaccessfile,有什么想法吗?提前谢谢

0 个答案:

没有答案