C++ yeniyim

Başlatan KillerB, 16 Aralık 2010 - 21:24:15

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

sem

C++ satır tamponlu olarak çalışmıyor mu? Eğer öyle ise \n ifadesi otomatik olarak stdout'u boşaltacaktır. C öyle çünkü...  Ya da derleyiciden de ayarları değiştirilebiliyordu yanlış hatırlamıyorsam.

Eğer öyle değilse de yani C'den farklı olsa dahi, böyle bir cout silsilesinde \n karakterinden önce ya da sonra tampon boşaltılması sonucu etkilemeyecektir. İstenen; "bütün her şeyin ekrana yazdırılması" çünkü. O nedenle ayrıca flush uygulamak yerine endl daha kestirme olacaktır.
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

Erdem

Alıntı yapılan: sem0900 - 22 Nisan 2011 - 19:35:42
Eğer öyle değilse de yani C'den farklı olsa dahi, böyle bir cout silsilesinde \n karakterinden önce ya da sonra tampon boşaltılması sonucu etkilemeyecektir. İstenen; "bütün her şeyin ekrana yazdırılması" çünkü. O nedenle ayrıca flush uygulamak yerine endl daha kestirme olacaktır.

Benim de anlatmak istediğim o zaten std::endl kullanınca gereksiz yere çıkış akımının belleği boşaltılıyor. Yani ayrıca flush uyguluyor. O yüzden çoğu durumda sadece \n kullanmak yeterli olur diye düşünüyorum.

Örneğin şöyle bir programda gereksiz yere 26 kere çıkış akımının belleği temizleniyor. Yani flush uyguluyor. Ama eğer \n kullanılmış olsaydı sadece bir kere ve program sonlanırken belleği temizleyecekti.

#include <iostream>
#include <fstream>

using namespace std;

int main() {
    ofstream cikisAkimi("alfabe.txt", ios::out);

    for (char harf = 'A'; harf <= 'Z'; ++harf) {
        cikisAkimi << harf << endl;
    }

    return 0;
}

Eğer Arch Linux tabanlı bir dağıtıma geçmek isterseniz Arcolinux D sürümünü buradan indirebilirsiniz.

Elektronik

sem

Ben şunu demek istiyorum; satır tamponlu olarak çalıştığımız için doğal olarak tamponlar boşaltılmış oluyor \n karakteri ile de...
#include <iostream>

using namespace std;

int main()
{
cout << "sem" << endl;
sleep(5);


}



Ya da
#include <iostream>

using namespace std;

int main()
{
cout << "sem\n" ;
sleep(5);


}



İkisinde de sleep çağrısından önce yazıyı görüyor musunuz siz de?
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

Erdem

sem0900 çıktının ekrana yazılmasıyla, çıkış akımının belleğinin boşaltılması çok farklı şeyler. Senin de bildiğin gibi bellek işlemleri çok hızlıdır.  Yazdığın her iki kod da çıktıyı ekrana gönderiyor. Daha sonra endl kullanan bir de akım arabelleğini boşaltıyor.

cout << "sem" << '\n' << flush; (endl versiyonunun aynısı)

O flush da yeni satır newline yazıldıktan sonra işletilir. Ayrıca bellek işlemleri çok hızlı olduğu için bu flush için geçen süreyi ölçebilirmisin bilmiyorum. Ama sleep'le olmayacağı kesin. Onun yerine çok hassas bir süre ölçen zamanlayıcı koyup onu cout'dan önce çalıştırıp endl ya da \n den sonra durduracak şekilde ölçebilirsin sanırım. Ama onun içinde oldukça çok sayıda bir istek göndermen lazım. Sanırım bir for döngüsü ile yapabilirsin.

Benim tahminim endl kullanımının performansla ilgili dezavantajı geçen süreden ziyade sürekli belleğin meşgul edillmesinden olabilir. Yukarda yazdığım örnekte gerekmediği halde çıkış akımının belleğini 26 kere temizledik.

C++ FAQ Lite'de de bu sorunun yanıtını bulabilirsin:

http://www.parashift.com/c++-faq-lite/input-output.html#faq-15.7
Eğer Arch Linux tabanlı bir dağıtıma geçmek isterseniz Arcolinux D sürümünü buradan indirebilirsiniz.

Elektronik

sem

Alıntı yapılan: Erdem - 23 Nisan 2011 - 01:04:45
sem0900 çıktının ekrana yazılmasıyla, çıkış akımının belleğinin boşaltılması çok farklı şeyler

Aslında tam olarak anlamadım diyebilrim. İki kod örneği ile göstermek istediğim ise endl hızı değil... Tamponun  \n karakteri ile de boşaltıdığıydı... Şöyle göstereyim;

#include <iostream>

using namespace std;

int main()
{
cout << "sem" ;
sleep(5);


}


Bu şekilde yazarsak kodu sem yazısını 5 saniye sonra görürüz. Çünkü sem yazısı tamponda duruyor ve boşaltılmıyor. Fakat sonuna \n karakteri koyarsak sem yazısını görebiliyoruz. Demek ki bellek boşaltılıyor. Yani satır tamponlama kullanıldığı için satır sonu görülünce zaten tampon boşaltılıyor.Fakat dediğiniz gibi

İkisi arasındaki farka şu şekilde bakalım;
#include <iostream>

using namespace std;

int main()
{
int i;

for(i = 0;  i!= 10000;++i )
        cout << "sem\n";
}


Programı derleyip "time" uygulaması ile çalıştıralım... Sonuç;

Alıntı Yapreal   0m0.162s
user   0m0.004s
sys   0m0.028s


Şimdi endl ekleyelim;

#include <iostream>

using namespace std;

int main()
{
int i;

for(i = 0;  i!= 10000;++i )
        cout << "sem" << endl;
}




Alıntı Yapreal   0m0.103s
user   0m0.000s
sys   0m0.032s


Not: Bunlar ilk deneme sonuçlarımdır. Fakat her yapışımda farklı sonuçlar alıyorum... Örneğin en son dememdeki endl sonucunu aktarıyorum;
Alıntı Yapreal   0m0.100s
user   0m0.012s
sys   0m0.020s

Bu da \n sonucu

Alıntı Yapreal   0m0.103s
user   0m0.000s
sys   0m0.032s


Şimdi hızlar  fark edebiliyor gördüğümüz gibi... Benim asıl söylemek istediğim ise şu aslında; satır tamponlamalı kullanılan bir bellekte \n karakteri zaten belleği boşaltıyor. Çıktının ekrana yazılması ile akım belleğinin boşaltılması çok farklı demişsiniz.

Benim kafama takılan bu oldu. Tampon boşaltılmadan ekrana nasıl yazılıyor. Ekrana bir şeyler  yazılması cout tamponunun boşaltılması demek değil mi? O kadar farklı işlemler ise bu ikisi, aşağı kodda neden sem yazısını 5 saniye görüyoruz....

#include <iostream>

using namespace std;

int main()
{
cout << "sem" ;
sleep(5);


}



Şimdiden teşekkür ederim cevaplarınız için....

".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

Erdem

#80
Hımm.. Aslında '\n' in her zaman tavsiye edildiğini biliyorum. Ama bu konu benim boyumun üzerine çıktı. Konunun ayrıntılarına girince .. O alıntı yaptığın kısım da  yanlış olmuş sanırım, diğerleri doğru :)


int main() {
   
    cout << "test ";

    // cout << "ediyoruz" un aynısı
    operator<< (cout, "ediyoruz");
   
    endl(cout);
    // bu da cout << endl in aynısı 2
    return 0;
}


Örneğin çıkış akımının çalışma mantığı bu şekilde. Yani cout << test << endl; İki satır yazmak gibi. cout << test ve 2.ci yorum gibi,

Dediğim gibi endl vs \n konusunun ayrıntıları birazcık karışık.

Örneğin comp.lang.c++ haber grubunda tartışılmış. Bjarne amca bile cevap yazmış  :D

comp.lang.c++ "endl" vs. "\n"

Ben bu konuyu bir bizim forumlarda sorayım. Sonra cevap yazarım.


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 23 Nisan 2011 - 14:08:07

Alıntı yapılan: sem0900 - 23 Nisan 2011 - 11:16:13

#include <iostream>

using namespace std;

int main()
{
int i;

for(i = 0;  i!= 10000;++i )
        cout << "sem\n";
}


Programı derleyip "time" uygulaması ile çalıştıralım... Sonuç;

Alıntı Yapreal   0m0.162s
user   0m0.004s
sys   0m0.028s

Not: Bunlar ilk deneme sonuçlarımdır. Fakat her yapışımda farklı sonuçlar alıyorum.

Ben de dün boost::progress_timer kullanarak denedim. Şimdi düşününce o ilk düşündüğüm şekilde bir for döngüsü ile endl ve \n i karşılaştırmanın pek mantıklı olmadığını düşünmeye başladım. Dediğin gibi her zaman farklı sonuç çıkıyor.
Eğer Arch Linux tabanlı bir dağıtıma geçmek isterseniz Arcolinux D sürümünü buradan indirebilirsiniz.

Elektronik

sem

Durumun şöyle olduğunu düşünüyorum;

C'deki stdin ve stdout C++ da cin ve cout olarak kullandığımız standart çıkış ve giriş dosyaları (Linux'ta biliyoruz ki herşeyimiz bir dosya =)) satır tamponlamalı olarak çalışıyor. 3 çeşit tampon vardı yanlış hatırlamıyorsam. Satır tamponlamalı, tamponsuz ve diğerini anımsayamadım.

Satır tamponlu kullanılan dosyaların akımları, satır sonu görülünce boşaltılıyor (tabii EOF gibi diğer birimler de buna etken).  Biz burada \n karakterini satır tamponu kullanan bir dosya içerisinde kullandığımız için doğal olarak akım boşaltılmış oluyor.

Asıl önemli olan sanırım \n karakterini görünce boşaltılan tamponun hangi yolla boşaltıldığı... flush ile aynı şekilde boşaltılıyorsa eğer, endl ile ikisi arasında cout için kullanılırken bir fark olacağını sanmıyorum...
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

Erdem

Ama cout << '\n' kullanınca her durumda programdan çıkılırken akım belleği boşaltılıyor. Ama endl'li kullanımda harfleri yazan programa bakarsan gereksiz yere 26 kere flush çağrılıyor. \n li kullanımda ise bir kere dosyayı açıyor ve yazıyor. Programdan çıkmazdan önce bir kere flush çağrılıyor.  Bence arasında fark var.
Eğer Arch Linux tabanlı bir dağıtıma geçmek isterseniz Arcolinux D sürümünü buradan indirebilirsiniz.

Elektronik

sem

Alıntı yapılan: Erdem - 23 Nisan 2011 - 14:23:08
Bence arasında fark var.

Ben normalde "aralarında fark yok gibi görünüyor" derdim rahatça. 26 kere flush çağrılıyor evet, fakat \n karakterini görünce tampon ne şekilde boşaltılıyor? flush çağrılmadığından emin miyiz?

Bu durumlar şu an muallak. Asıl önemlisi ise "endl vs \n" başlıkları çokca var Google'da.. Ve göndermiş olduğunuz iletide yanlış okumadıysam bir kitaptaki "endl vs \n" bölümünden bahsediliyor. Bu kadar üzerinde durulduğuna için ve bazı konular muallak olduğu için kesin bir şahsi görüş bildiremeyeceğim...

Fakat dediğiniz gibi \n karakteri görülünce flush'tan farklı ve daha hızlı bir yöntem ile tampon boşaltılıyor olabilir. Fakat tampon bu şekilde boşaltılabiliyorsa, o zaman neden yavaş olan bir flsuh yazılmış? Gibi soru işaretleri çıkıyor insanın kafasında =)

Dediğim gibi, bu konular muallak iken şahsi görüşüm şimdilik belirsiz =)
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

Erdem

#84
Alıntı yapılan: Erdem - 23 Nisan 2011 - 14:23:08
Ben şöyle olduğunu düşünüyorum. '\n' kullanan örnekte veriler çıkış akımının belleğinde saklanıyor ve programdan çıkılırken ekrana yazılıyor. Yani bir kere boşaltılıyor.

O kısmı düzeltiyorum :)

Ben şöyle olduğunu düşünüyorum. '\n' kullanan örnekte veriler çıkış akımının belleğinde saklanıyor .Yani çıkış akımının belleği sadece bir kere boşaltılıyor. Diğerinde ise 26 kere boşaltılıyor.

'\n' karakter dizgisinin sonuna bir yeni satır karakteri ekler ve veriler direkt ekrana gönderilir.
flush ile çıkış akımının belleği boşaltılır. Bu da verilerin ekrana yazılmasına neden olur.
endl karakter dizgisinin sonuna bir yeni satır karakteri ekler, çıkış akımının belleğini boşaltır, verileri ekrana yazar.

Ben yukarıdaki karakterleri yazdıran programı şöyle düşünüyorum. Örneğin bir salata yapıyoruz. Belleği salatalık ve tabağı ekran olarak düşünürsek endl'li versiyon adeta bir salatalığı bir bıçakla doğramak gibi parçaları tabağın içine atıyor. Yani eğer bellek yığıt gibi bir yapıysa örneğin Y karakterini yazdırdığımızda bellekte sadece Y karakteri vardır. Ama \n li versiyonda en üstte Y altta X W U T vs A'ya kadar tüm karakterlerin hala çıkış akımının belleğinde durduğunu düşünebiliriz.
Eğer Arch Linux tabanlı bir dağıtıma geçmek isterseniz Arcolinux D sürümünü buradan indirebilirsiniz.

Elektronik

sem

Alıntı yapılan: Erdem - 23 Nisan 2011 - 14:47:58
Ben şöyle olduğunu düşünüyorum. '\n' kullanan örnekte veriler çıkış akımının belleğinde saklanıyor ve programdan çıkılırken ekrana yazılıyor. Yani bir kere boşaltılıyor.

Bu durumda programın önce 10 saniye bekleyip sonra cout tamponunu boşalttıktan sonra sonlanması gerekirdi. Fakat önce ilgili çıktılar alınıyor, 10 saniye bekleniyor ve daha sonra sonlanıyor =)


#include <iostream>

using namespace std;

int main()
{
int i;

for(i = 0;  i!= 100;++i )
        cout << "sem\n";

sleep(10);
}

".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

Erdem

#86
Yanlışlıkla üstteki mesajı düzenle demişim    :)

D dilinde de bu konuya cevap verilmiş. Merak ettiğin başka şeyler varsa sende sohbete katılabilirsin  ;)

http://ddili.org/forum/post/3846


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 23 Nisan 2011 - 18:01:10

Alıntı yapılan: Erdem - 23 Nisan 2011 - 14:47:58
Alıntı yapılan: Erdem - 23 Nisan 2011 - 14:23:08
Ben şöyle olduğunu düşünüyorum. '\n' kullanan örnekte veriler çıkış akımının belleğinde saklanıyor ve programdan çıkılırken ekrana yazılıyor. Yani bir kere boşaltılıyor.

O kısmı düzeltiyorum :)

Ben şöyle olduğunu düşünüyorum. '\n' kullanan örnekte veriler çıkış akımının belleğinde saklanıyor .Yani çıkış akımının belleği sadece bir kere boşaltılıyor. Diğerinde ise 26 kere boşaltılıyor.

Bir kere daha düzeltiyorum :)

\n kullanan örnekte veriler çıkış akımının belleğinde saklanıyor. Programdan çıkarken değil (daha önce böyle olduğunu yazmıştım) ama C++'nin çalışma sistemi tarafından belirli bir zamanda, buna C++'nin çalışma sistemi karar veriyor boşaltılıyor. Örneğin çıkış akımı belleği dolmuş olabilir. Böyle bir düşünceyle \n kullanan örneğin bir ya da bir kaç kere çıkış akımının belleğini boşalttığını düşünebiliriz.

endl'li örnekte ise 26 kere boşaltıyoruz ve çıkış akımının belleğini her seferinde boşaltmaya açıkça zorluyoruz.


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 24 Nisan 2011 - 01:02:58

Üstte alfabe'yi yazan programı değiştirip dosyaya 1.000.0000 sayı yazacak şekilde değiştirince std::endl ve \n in performans farkını görebildim. İlk denediğimiz örnek bellek kullandığı için çok hızlı yazdırılıyor ve bir fark oluşmuyordu. Burada yaklaşık bende arasında 4 saniyelik bir fark oluştu.

#include <iostream>
#include <fstream>

using namespace std;

int main() {
    ofstream cikisAkimi("sayilar.txt", ios::out);

    for (int i = 0; i < 1000000; ++i) {
        cikisAkimi << i << endl;
    }

    return 0;
}


Sonuçlar da şu şekilde oldu.

(endl kullananan örnek)
Alıntı Yap
$ time ./sayiyaz

real    0m4.699s
user    0m0.552s
sys    0m4.144s

(\n kullananan örnek)
Alıntı Yap$ time ./sayiyaz

real    0m0.241s
user    0m0.212s
sys    0m0.024s
Eğer Arch Linux tabanlı bir dağıtıma geçmek isterseniz Arcolinux D sürümünü buradan indirebilirsiniz.

Elektronik

sem

Alıntı Yapsem0900@debian:~$ time ./yaz

real   0m6.309s
user   0m0.764s
sys   0m5.536s
sem0900@debian:~$ time ./yaz2

real   0m0.326s
user   0m0.300s
sys   0m0.024s

yaz endl yaz2 \n kullanılan... Bende de epey fark oluştu... İyice merak uyandırdı konu bende şu anda =)
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

travego0403

@sem0900 ve @Erdem
Gerçektende çok ilginç bir konuyu tartışıyorsunuz bende tartışmanıza (araştırmanıza) kulak misafiri oldum. :) Şimdi sormak istediğim bu tampon diye bahsettiğiniz, bellek oluyor sanırsam.
endl kullanıldığı zaman ufak bir bellek kullanılıyor ama her seferinde bellek işlemleri yapıldığı için hızmı kaybettiriyor?
\n kullanıldığı zaman hepsi bellekte tutulup tek bir bellek işlemi ve buda hız kazancı olarak mı geri dönüyor?

Acaba doğru mu anlamışım?
"Matematik bir dildir ve bu dilde şairlere fizikçi denir." Richard Feynman

sem

Bir tampon var ekrana yazacaklarımız doğrudan ekrana yazılmıyor. Önce bu tampona yazdırılarak bazı durumlarda bolaştılıyor.
#include <iostream>

using namespace std;

int main()
{

        cout << "sem";

sleep(10);
}


Mesela bu programı çalıştırınca program kapanırken,cout tamponunu boşalttığını göreceksinizz. Yani program çalıştıktan 10 saniye sonra ekranda sem yazacak.


cout'a endl gönderdiğimizde için tamponlar boşaltılıyor. tampona flush() uygulanıyor. Ve imleç satır başına yönlendirilmiş oluyor...
#include <iostream>

using namespace std;

int main()
{

        cout << "sem" << endl;

sleep(10);
}



Yani yukarıdaki kodda ekrana doğrudan sem yazılıyor ve satır başına konumlandırılıyor imleç... Çıktıdan ikisi arasındaki farkı rahatça göreilirsin....


Kafamızı karıştıran ise şahsi olarak konuşayım ya da; kafama çok takılan konu ise aşağıdaki kod;

#include <iostream>

using namespace std;

int main()
{

        cout << "sem\n";

sleep(10);
}



Bu kodda endl yerine \n karakteri ekleniyor. Ve ekrana doğrudan sem yazıyor ve 10 saniye sonra kapanıyor program. Yani görünüm itibari ile bir önceki kod ile aynı görünümü sağlıyor.  Yani bellekte tutulam "sem" yazısı yazılıyor yani yine bir şekilde tampon boşaltılıyor ve alt satır başına imleç konumlandırılıyor.

Fakat 2. ve 3. kod arasında uzun işlemlerde hız farkı oluşuyor. Enteresan bir durum =) Yani iki durumda farklı şekillerde tampon boşaltılıyor, ya da endl ek olarak başkı işlevleri de yerine getiriyor... Orası bir muallak =)


Eğer cevap ikinci alternatif ise yani endl farklı işlemler yaptırıyor olsa dahi, bu işlemlerin ne olduğunu öğrenmeden şimdilik endl'yi rafa kaldıracğaım sanırım =) Gerek yok gibi görünüyor benim yazdığım kodlar arasında...

İkinci bir emre kadar Erdem arkadaşımızın tavsiyesine uyuyorum yani  =) Her ne kadar mantığını anlamasak da =)


".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

Erdem

    cout << "birseyler" << endl;

    cout << "birseyler" << '\n' << flush;


Şimdi yukarıdaki kod alttakinin aynısı. Yani endl kullandığımız durumda çıkış akımının belleğini boşaltmaya zorluyoruz.

Bunu ben şöyle anlatmaya çalışayım. Belleği bir havuza benzetirsek. Amacımız 5 ton su pompalamak olsun. Bellek havuzumun kapasitesi de 1 ton olsun. Eğer endl kullanırsak ve gönderilen veri miktarı fazlaysa 5 ton burada ciddi bir performans farkı oluşuyor. endl kullanımı şunun gibi bir şey:

  • havuza 1 litre su doldur
  • havuzdan 1 litre su boşalt
  • havuza 1 litre su doldur
  • havuzdan 1 litre su boşalt
  • ...
  • ...
Bu şekilde her seferinde gereksiz yere verilen 1 litre  su boşalt komutları yüzünden performans kaybı olmuş oluyor.

\n kullanan versiyon da şunun gibi bir şey. Burada havuzun yarı otomatik olduğunu düşünelim. Havuza diyoruz ki boşaltma işlemleri ile sen ilgilen. Gerekli gördüğün zaman havuzu otomatik olarak boşalt. Ve havuzun da aynı anda 1 ton su boşaltma kapasitesi olduğunu düşünelim. Tek yapmamız gereken saniyede işte 1 litre su pompalamaya başlamak. Boşaltma işlemi ile ilgilenmiyoruz.

  • havuza 1 litre su doldur
  • havuza 1 litre su doldur
  • havuza 1 litre su doldur
  • havuza 1 litre su doldur
  • ...
  • ...
  • havuza 1 litre su doldur  // 1 ton oldu
  • [havuz ]: 1 ton suyu boşaltıyorum
  • havuza 1 litre su doldur
Eğer Arch Linux tabanlı bir dağıtıma geçmek isterseniz Arcolinux D sürümünü buradan indirebilirsiniz.

Elektronik