stringbuilder花时间存储字符串值

edqdpe6u  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(387)

我将日志存储到stringbuilder对象中。几乎有214873行正在被存储。每次代码发现错误时,错误消息都存储在stringbuilder对象中,并附加到下一个错误中,以此类推。
最后,当所有的错误信息都被记录时。stringbuilder对象中的行被写入hdfs。我面临的问题是,将完整的错误消息存储到stringbuilder对象需要6个小时。是否有任何方法可以减少存储时间,以便在生产集群中运行code fatser?
提前谢谢。

huus2vyu

huus2vyu1#

我可以添加到stringbuilder的最大大小是integer.max\u size-2

public static void main(String[] args) {
    int maxSize = Integer.MAX_VALUE - 2;
    long start = System.currentTimeMillis();
    StringBuilder sb = new StringBuilder(maxSize);
    while (sb.length() < maxSize)
        sb.append(' ');
    long time = System.currentTimeMillis() - start;
    System.out.println("Took " + time / 1e3 + " second to create a StringBuilder of " + sb.length());
}

这个指纹

Took 7.415 second to create a StringBuilder of 2147483645

这是一次只写一个字符,所以它确实需要更长的时间。

相关问题