こんにちは、ArrayList ソース コードを java.util パッケージから自分のパッケージにコピーしました。しかし、元の java.util.ArrayList よりも適切に実行されていることがわかりました。
テストコード:
@Test
public void jdkApiPerformance() {
long startTime = System.nanoTime();
java.util.ArrayList<Object> list = new java.util.ArrayList<Object>();
long costTime = System.nanoTime() - startTime;
System.out.println("jdkPerformance cost " + costTime + "ns.");
}
@Test
public void myApiPerformance() {
long startTime = System.nanoTime();
question.jdk.ArrayList<Object> list = new question.jdk.ArrayList<Object>();
long costTime = System.nanoTime() - startTime;
System.out.println("apiPerformance cost " + costTime + "ns.");
}
このテストの出力は次のとおりです。
jdkPerformance コストは 10263ns です。 apiPerformance コストは 1244158ns です。
明らかに、私の API は JDK API よりも遅く実行されます。
次に、このテスト用に @Before メソッドを追加しました。
@Before
public void setUp() {
new java.util.ArrayList<Object>();
new question.jdk.ArrayList<Object>();
}
この場合の出力は次のように変更されます。
jdkPerformance コストは 9932ns です。 apiPerformance コストは 1324ns です。
私の API は JDK API よりも高速に実行されます!!?
私はこの状況について本当に混乱しています.Plsは私を助けてくれます.ありがとう.