Ekstrak ungkapan
Dalam proses pembangunan perisian, pengaturcara boleh dengan mudah membiarkan kod melakukan beberapa "kerja berulang" secara sengaja atau tidak sengaja Dalam kebanyakan kes, disebabkan arahan komputer untuk run , "Usaha berulang" ini tidak menimbulkan ancaman besar kepada prestasi, tetapi jika prestasi sistem dimaksimumkan, agak bermakna untuk mengekstrak "usaha berulang" ini.
Lihat kes ujian berikut:
@Test public void test(){ long start = System.currentTimeMillis(); ArrayList list = new ArrayList(); for (int i = 0;i<100000;i++){ System.out.println(list.add(i)); } //以上是为了做准备 for (int i = 0;i<list.size();i++){ System.out.println(list.get(i)); } System.out.println(System.currentTimeMillis() - start);//5444 }
Jika kita mengekstrak kaedah list.size(), kod yang dioptimumkan adalah seperti berikut:
@Test public void test(){ long start = System.currentTimeMillis(); ArrayList list = new ArrayList(); for (int i = 0;i<100000;i++){ System.out.println(list.add(i)); } //以上是为了做准备 int n = list.size(); for (int i = 0;i<n;i++){ System.out.println(list.get(i)); } System.out.println(System.currentTimeMillis() - start);//3514 }
Pada mesin saya, yang pertama mengambil masa 5444ms, dan yang kedua mengambil 3514ms, perbezaan kira-kira 2s Dapat dilihat bahawa mengekstrak operasi berulang adalah agak bermakna.
Atas ialah kandungan terperinci Bagaimana untuk mengekstrak ungkapan dalam java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!