Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在没有大量开销的情况下获得格式良好的时间戳?_Java_Android_Time_Formatting - Fatal编程技术网

Java 在没有大量开销的情况下获得格式良好的时间戳?

Java 在没有大量开销的情况下获得格式良好的时间戳?,java,android,time,formatting,Java,Android,Time,Formatting,在我的应用程序中,我有一个文本视图,其中包含来自我的应用程序的实时消息,当事情发生时,消息会打印到此文本框中。每条消息都带有时间戳HH:MM:SS 到目前为止,我还一直在寻找一个似乎是内存泄漏的东西,但事实证明,这只是我的时间戳格式化方法(见下文),它显然会生成数千个对象,这些对象后来会被gc处理。对于每秒1-10条消息,我看到GC在使用此方法时每秒收集500k-2MB的垃圾。移除它之后,就不再有垃圾问题了(恢复到大约30秒的时间间隔,通常只有几k垃圾) 因此,我正在寻找一种新的、更轻量级的方法

在我的应用程序中,我有一个文本视图,其中包含来自我的应用程序的实时消息,当事情发生时,消息会打印到此文本框中。每条消息都带有时间戳HH:MM:SS

到目前为止,我还一直在寻找一个似乎是内存泄漏的东西,但事实证明,这只是我的时间戳格式化方法(见下文),它显然会生成数千个对象,这些对象后来会被gc处理。对于每秒1-10条消息,我看到GC在使用此方法时每秒收集500k-2MB的垃圾。移除它之后,就不再有垃圾问题了(恢复到大约30秒的时间间隔,通常只有几k垃圾)

因此,我正在寻找一种新的、更轻量级的方法来生成HH:MM:SS时间戳字符串:)

旧代码:

/**
 * Returns a string containing the current time stamp. 
 * @return - a string. 
 */
public static String currentTimeStamp() {
    String ret = "";

    Date d = new Date();

    SimpleDateFormat timeStampFormatter = new SimpleDateFormat("hh:mm:ss");

    ret = timeStampFormatter.format(d);

    return ret;
}

让你的
SimpleDateFormat
成为
static final
,而不是每次都创建一个。

让你的
SimpleDateFormat
成为
static final
,而不是每次都创建一个。

伙计,我犯了一个愚蠢的错误。谢谢你指出我的错误。老兄,我犯了个愚蠢的错误。谢谢你指出我的错误。