我已經創建了一個應用程序來處理日誌文件,但我有一些瓶頸時,文件的數量=〜20高效的文本處理的Java
問題來自哪個平均需要一秒鐘左右,以一個特定的方法大致完成,正如你可以imagime這是不實際的時候需要做的> 50倍
private String getIdFromLine(String line){
String[] values = line.split("\t");
String newLine = substringBetween(values[4], "Some String : ", "Value=");
String[] split = newLine.split(" ");
return split[1].substring(4, split[1].length());
}
private String substringBetween(String str, String open, String close) {
if (str == null || open == null || close == null) {
return null;
}
int start = str.indexOf(open);
if (start != -1) {
int end = str.indexOf(close, start + open.length());
if (end != -1) {
return str.substring(start + open.length(), end);
}
}
return null;
}
一條線來自於一個文件,該文件是非常有效的閱讀,所以我不覺得有必要給它發佈該代碼,除非有人問。
反正有沒有改善這個perofmrance?
感謝您的時間
這將是有益或許,如果您還提供一個例子正則表達式在這裏被解析的一行......會使代碼更易於閱讀。 –
我很想去,但它是敏感的工作數據 - 不知道我可以明智地改變它 – Biscuit128
以及你可以創建一個虛擬的,像'xxx:aaa-> bbb,ccc dd cc ee'。我認爲更高效的算法將取決於你試圖解析的數據類型。 –