ÔÇťBÔÇŁ bask─▒s─▒ neden ÔÇť#ÔÇŁ yazd─▒rmas─▒ndan ├Ânemli ├Âl├ž├╝de daha yava┼č?


Al─▒nan cevaba git


─░ki matris 1000 x olu┼čturdum 1000 :

─░lk Matris: O ve # .
─░kinci Matris: O ve B .

A┼ča─č─▒daki kodu kullanarak, ilk matrisin tamamlanmas─▒ 8.52 saniye s├╝rd├╝:

 Random r = new Random();
for (int i = 0; i < 1000; i++) {
    for (int j = 0; j < 1000; j++) {
        if(r.nextInt(4) == 0) {
            System.out.print("O");
        } else {
            System.out.print("#");
        }
    }

   System.out.println("");
 }
 

Bu kodla, ikinci matrisin tamamlanmas─▒ 259.152 saniye s├╝rd├╝:

 Random r = new Random();
for (int i = 0; i < 1000; i++) {
    for (int j = 0; j < 1000; j++) {
        if(r.nextInt(4) == 0) {
            System.out.print("O");
        } else {
            System.out.print("B"); //only line changed
        }
    }

    System.out.println("");
}
 

Dramatik olarak farkl─▒ ├žal─▒┼čma zamanlar─▒n─▒n arkas─▒ndaki sebep nedir?


Yorumlarda ├Ânerildi─či gibi, bask─▒ yaln─▒zca saniyeler System.out.print("#"); s├╝rer 7.8871 , oysa System.out.print("B"); verir still printing... .

Bunun normal bir ┼čekilde i┼če yarad─▒─č─▒n─▒ belirten di─čerleri gibi, ├Ârne─čin Ideone.com'u denedim ve her iki kod da ayn─▒ h─▒zda ├žal─▒┼čt─▒r─▒ld─▒.

Test Ko┼čullar─▒:

  • Bu testi Netbeans 7.2'den ├ž─▒kt─▒s─▒n─▒ alarak konsoluna koydum.
  • System.nanoTime() ├ľl├ž├╝mler i├žin kulland─▒m

2650









Cevap say─▒s─▒n─▒ say: 3






Saf spek├╝lasyon , karakter sarmalamak yerine kelime sarma yapmaya ├žal─▒┼čan bir terminal kulland─▒─č─▒n─▒z ve B bir kelime karakteri olarak de─čil # , kelime olmayan bir karakter olarak davrand─▒─č─▒n─▒zd─▒r . B├Âylece bir ├žizginin sonuna ula┼čt─▒─č─▒nda ve ├žizgiyi k─▒racak bir yer arad─▒─č─▒nda, # neredeyse an─▒nda g├Âr├╝r ve orada mutlu bir ┼čekilde k─▒r─▒l─▒r; bununla birlikte, B daha uzun s├╝re aramaya devam etmesi gerekir ve sar─▒lacak daha fazla metne sahip olabilir (baz─▒ terminallerde pahal─▒ olabilir, ├Ârne─čin, geri bo┼čluklar─▒ ├ž─▒kt─▒rarak, sonra sar─▒lan harflerin ├╝zerine yazmak i├žin bo┼čluklar ├ž─▒karabilir).

Ama bu saf spek├╝lasyon.


3980







Her ikisi de Java s├╝r├╝m├╝ 1.8 olan Eclipse vs Netbeans 8.0.2 ├╝zerinde testler yapt─▒m; System.nanoTime() ├ľl├ž├╝mler i├žin kulland─▒m .

Eclipse:

Her iki durumda da ayn─▒ zaman─▒ buldum - yakla┼č─▒k 1.564 saniye .

NetBeans:

  • "#" Kullanarak: 1.536 saniye
  • "B" kullanarak: 44.164 saniye

Dolay─▒s─▒yla, Netbeans'in konsola yazd─▒r─▒rken k├Ât├╝ bir performans─▒ var gibi g├Âr├╝n├╝yor.

Daha fazla ara┼čt─▒rmadan sonra, sorunun, Netbeans'in ( komutla s─▒n─▒rl─▒ olmad─▒─č─▒ ) maksimum tamponunun sat─▒r-sarg─▒s─▒ oldu─čunu, System.out.println bu kodla g├Âsterildi─čini anlad─▒m :

 for (int i = 0; i < 1000; i++) {
    long t1 = System.nanoTime();
    System.out.print("BBB......BBB"); \\<-contain 1000 "B"
    long t2 = System.nanoTime();
    System.out.println(t2-t1);
    System.out.println("");
}
 

Zaman sonu├žlar─▒ , zaman sonucunun 225 milisaniye civar─▒nda oldu─ču her be┼činci yineleme hari├ž her yinelemenin 1 milisaniyesinden daha azd─▒r . Gibi bir ┼čey (nanosaniye i├žinde):

 BBB...31744
BBB...31744
BBB...31744
BBB...31744
BBB...226365807
BBB...31744
BBB...31744
BBB...31744
BBB...31744
BBB...226365807
.
.
.
 

Ve bunun gibi..

├ľzet:

  1. Eclipse "B" ile m├╝kemmel ├žal─▒┼č─▒r
  2. Netbeans, ├ž├Âz├╝lebilen bir ├žizgi sarma sorununa sahiptir (├ž├╝nk├╝ sorun eclipse'da ortaya ├ž─▒kmaz) (B ("B") 'den sonra bo┼čluk eklemeden).

192







Evet su├žlu kesinlikle kelime sarg─▒l─▒. ─░ki program─▒n─▒z─▒ test etti─čimde NetBeans IDE 8.2 bana a┼ča─č─▒daki sonucu verdi.

  1. ─░lk Matris: O ve # = 6.03 saniye
  2. ─░kinci Matris: O ve B = 50.97 saniye

Kodunuza yak─▒ndan bakmak, ilk d├Âng├╝ sonunda bir sat─▒r sonu kulland─▒n─▒z. Ancak, ikinci d├Âng├╝de herhangi bir sat─▒r sonu kullanmad─▒n─▒z. B├Âylece ikinci d├Âng├╝de 1000 karakterden olu┼čan bir kelime basacaks─▒n─▒z. Bu bir kelime sarma sorununa neden olur. B'den sonra "" kelimesi olmayan bir karakter kullan─▒rsak , program─▒ derlemek sadece 5.35 saniye s├╝rer . Ve 100 veya 50 de─čeri ge├žtikten sonra ikinci d├Âng├╝de bir sat─▒r sonu kullan─▒rsak, s─▒ras─▒yla yaln─▒zca 8,56 saniye ve 7,05 saniye s├╝rer .

 Random r = new Random();
for (int i = 0; i < 1000; i++) {
        for (int j = 0; j < 1000; j++) {
            if(r.nextInt(4) == 0) {
                System.out.print("O");
            } else {
                System.out.print("B");
            }
            if(j%100==0){               //Adding a line break in second loop      
                System.out.println();
            }                    
        }
System.out.println("");                
}
 

Ba┼čka bir tavsiye ise NetBeans IDE ayarlar─▒n─▒ de─či┼čtirmektir. Her ┼čeyden ├Ânce NetBeans Ara├žlar─▒'na gidin ve Se├ženekler'i t─▒klay─▒n . Bundan sonra Edit├Âr'e t─▒klay─▒n ve Bi├žimlendirme sekmesine gidin. Ard─▒ndan se├žmek Anywhere i├žinde Hatt─▒ Wrap Se├žene─či. Program─▒n derlenmesi yakla┼č─▒k% 6.24 daha az zaman alacakt─▒r.


NetBeans Edit├Âr Ayarlar─▒


3



─░lgili yay─▒nlar


Erken d├Ân├╝┼č neden di─čerlerinden daha yava┼č?

Neden stdout'a yazd─▒rmak bu kadar yava┼č? H─▒zland─▒r─▒labilir mi?

Neden (bir% 256) neden (a & 0xFF) 'den farkl─▒?

Mockito ve JMockit aras─▒ndaki kar┼č─▒la┼čt─▒rma - neden Mockito JMockit'ten daha iyi oy kullan─▒yor? [kapal─▒]

Neden dize biti┼čtirme, dizi birle┼čtirmeden daha h─▒zl─▒?

C#, C++ 'dan ├žok daha yava┼č m─▒?

CSS3 Ge├ži┼čler: ÔÇťGe├ži┼č: hepsiÔÇŁ ÔÇťGe├ži┼č: xÔÇŁ den daha m─▒ yava┼č?

Neden lodash.each her biri i├žin do─čaldan daha h─▒zl─▒?

Neden bu g├Âr├╝nt├╝ i┼čleme testinde Swift neden C'den 100 kat daha yava┼č? [├žift]

Neden senkronize blok senkronize y├Ântemden daha iyidir?

Etiketle ilgili di─čer sorular [java]


'Varl─▒klar' klas├Âr├╝n├╝ Android Studio'da nereye yerle┼čtirebilirim?

Git'i do─čru bir ┼čekilde nas─▒l zorlayabilirim?

jQuery's jquery-1.10.2.min.map bir 404'├╝ tetikliyor (Bulunamad─▒)

Android'deki ge├žerli saati ve tarihi al─▒n

HTML formlar─▒n─▒ yuvalayabilir misiniz?

Sabit ─░tfa S├╝resi

Simge rengini, boyutunu ve Yaz─▒ Tipi Ba┼čar Simgeleri g├Âlgesini stilleme

Visual Studio'da ayn─▒ anda iki proje y├╝r├╝tmek

─░ki tarih aras─▒ndaki aylardaki fark

JavaScript ile bir g├Âr├╝nt├╝n├╝n ger├žek geni┼čli─čini ve y├╝ksekli─čini al─▒n? (Safari / Chrome'da)