ホームページ >Java >&#&チュートリアル >System.currentTimeMillis() メソッドを使用して Java でプログラムの実行時間を計算する方法

System.currentTimeMillis() メソッドを使用して Java でプログラムの実行時間を計算する方法

WBOY
WBOY転載
2023-05-14 23:46:041942ブラウズ

Java で提供されている System.currentTimeMillis() メソッドは、現在のコンピュータ時刻を取得するために使用されます。時刻の表現形式は、現在のコンピュータ時刻と GMT 時刻 (グリニッジ標準時) です。1970 年 1 月 1 日 0:00:00ミリ秒単位の違い。

System.currentTimeMillis() メソッドの戻り値の型は long で、現在時刻をミリ秒単位で表します。

開発プロセス中、多くの人は通常、new Date() を使用して現在時刻を取得することに慣れています。 new Date() が行うことは、実際には System.currentTimeMillis() メソッドを呼び出すことです。ミリ秒数のみが必要な場合は、 new Date() の代わりに System.currentTimeMillis() を使用すると、より効率的になります。

[例]String型とStringBuilder型の文字列を連結する際に時間がかかる場合を計算します。

/**
 * Java使用System.currentTimeMillis()方法计算程序运行时间
 * @author pan_junbiao
 **/
public class CurrentTimeTest
{
    /**
     * 使用String类型拼接字符串耗时
     */
    public static void testString()
    {
        String s = "Hello";
        String s1 = "World";
        long start = System.currentTimeMillis();
        for(int i=0; i<10000; i++)
        {
            s+=s1;
        }
        long end = System.currentTimeMillis();
        long runTime = (end - start);
        System.out.println("使用String类型拼接字符串耗时:" + runTime + "毫秒");
    }
 
    /**
     * 使用StringBuilder类型拼接字符串耗时
     */
    public static void testStringBuilder()
    {
        StringBuilder s = new StringBuilder("Hello");
        String s1 = "World";
        long start = System.currentTimeMillis();
        for(int i=0; i<10000; i++)
        {
            s.append(s1);
        }
        long end = System.currentTimeMillis();
        long runTime = (end - start);
        System.out.println("使用StringBuilder类型拼接字符串耗时:" + runTime + "毫秒");
    }
 
    public static void main(String[] args)
    {
        testString();
        testStringBuilder();
    }
}

実行結果:

System.currentTimeMillis() メソッドを使用して Java でプログラムの実行時間を計算する方法

追加の知識ポイント:

画像より上記の実行結果から、文字列を結合するプロセスで String オブジェクトの代わりに StringBuilder オブジェクトが使用されていることがわかります。これは、String が不変オブジェクトであり、文字列が変更されるたびに新しい String オブジェクトが作成されるのに対し、StringBuilder は String の文字列バッファーと同様に変更可能な文字シーケンスであるためです。したがって、文字列が頻繁に変更される場所では StringBuilder を使用する方が String より効率的です。

この点における実行速度は、StringBuilder > StringBuffer > String です。

スレッド セーフの観点から見ると、StringBuilder はスレッド セーフではありませんが、StringBuffer はスレッド セーフです。

以上がSystem.currentTimeMillis() メソッドを使用して Java でプログラムの実行時間を計算する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。