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