【发布时间】:2010-08-28 21:55:23
【问题描述】:
我正在做看起来像是从数据文件中简单读取的操作,而且它一直在开玩笑。 (我的意思是 300 毫秒。)这是有问题的代码:
BufferedReader f = new BufferedReader(new FileReader("input.txt"));
StringTokenizer st = new StringTokenizer(f.readLine());
int var1 = Integer.parseInt(st.nextToken())
int var2 = Integer.parseInt(st.nextToken());
Integer[][] people = new Integer[var1][];
for(int i = 0; i < var2; i++)
f.readLine();
for(Integer i = 0; i < var1; i++)
{
StringTokenizer line = new StringTokenizer(f.readLine(), " \t\n\r\f,");
line.nextToken();
Integer[] list = new Integer[line.countTokens()];
for(int j = 0; j < drinks.length; j++)
list[j] = Integer.parseInt(line.nextToken());
people[i] = list;
}
这是相关的time 输出:
sammysmbp:fridgemadness_lean sfishman$ time java fridgemadness
real 0m0.311s
user 0m0.277s
sys 0m0.056s
只是我,还是真的,真的很慢。在这个例子中,它只经过 51 行输入。
【问题讨论】:
-
这取决于输入文件。有多大?
-
@dark_charlie "51 行输入"
-
您是否尝试过在您的应用中测量时间?然后您将忽略 java 运行时启动成本。 “java -version”在我的机器上需要 0.1 秒。
-
@Michael,线条可能会很长...
-
@Bart K. @dark_charlie,线条很短。每个字符 30 个左右。
标签: java performance file-io