From: Serdar KOYLU (skoylu@gizemcafe.net)
Date: Tue 15 Jul 2003 - 13:54:02 EEST
Selamlar..
Sal 15 Tem 2003 10:05 tarihinde şunları yazmıştınız:
> Kuram1; Linux, sunuculukta hizli, masaustunde yavastir!
X Windows benzer makinede Windows tan aslinda daha hizli calisir. Bunun temel
sebebi X'in Windows GUI'den cok daha yalin olmasidir.
Peki sizin refresh hizinin dusmesi nereden kaynaklanir ? Bunu size soyle
aciklayayim. Windows GUI uzerinde ekranda gordugunuz her sey bir penceredir.
Yani bir dialog uzerindeki dugme, textbox vs. hepsi bir pencere sinifidir ve
dogrudan GUI'ye ilintilidir. Halbuki X Windows icin pencerelerin sadece
kendisi bir penceredir, icindeki dugmeler vs. tamamen uygulamanin
sorumlulugundadir. Bu noktada refresh (paint/repaint) istekleri birinde
dogrudan dugme uzerine birakilirken, digerinde uygulamanin kendine birakilir.
Ayrica, dugmeler vs. her biri Windows'ta dogrudan sistemden event alabilir.
Oysa X Windows'ta alamaz.
Hal boyle olunca Windows refresh edilecek bolgeyi daha iyi kestirebilir. Ama x
Windows pencerenin tamamini refresh ettirmek ister, cunku icinde ne olup
bittigini bilmez.
Peki bu X-Windows icin kabahatmidir ? Hayir. Cunku diger turlu calisma bir
uygulamanin diger uygulamaya erisebilmesini (event yollamasini) mumkun kilar.
Hatta onun eventlerinide bloke/modifiye edebilir. Kisacasi bu bir guvenlik
sorunudur herseyin basinda. Diger yandan Windows yaklasimi X gibi bir server
icin pek uygun olmaz..
Diger taraftan KDE ve GNOME Gibi pencere yoneticileri isi bir GUI/Window
manager olmaktan cok otelere tasimislardir. OLE/COM modelinin UNIX modeli
uzerine tam oturtulamamasi nedeniyle uygulamalar arasi iletisim zordur. Gerek
KDE gerek GNOME bunu asmak icin son derece grift mekanizmalar kullanirlar.
Peki neticede ne olur ? Windows (D)COM modeli ile isi bitirmismidir ? Ati
alip uskudari gecmismidir ? Hayir. Bilhassa KDE ekibi bu ekstralari sistem
altyapisi uzerinde daha fazla is yapmak yonuyle kullanmistir. Evet, teknik
olarak KDE API, Windows'tan cok daha ileridir. Ama, maalesef, uygulamalarin
bunu kullanabilme kabiliyetleri, uygulamalardan dolayi kisitlidir, yani
kullanmamaktadirlar.
Genel toplamda bakarsaniz, masustunde temel bazi bir kac islevki, siradan bir
kullanicinin yaptiklarinin %80'ini olusturur, Windows uzerinde daha hizlidir.
Ornegin bir dizine bakmak. Windows kabaca dosya adlarina bakar, birer ikon
koyar gecer. Oysa Konqueror, bu dosyalari teker teker acar, icine bakar, bu
neymis diyerek. Hatta cogu zaman ikon yerine dosyanin bir preview'ini
koyuverir. Ama is mesela CD yazarken muzik dinleyip bir seyler oynamak olunca
Windows oracikta size "game over" diyebilir..
>> Kuram*/bulgu(2); Windows, kes(ş)lemede her alanda dunya lideri. Access'de
bile kesleme var ayrintisine inince! ;)
:)))
Isin ic yuzunu bilmeyince oyle gorunur. Windows disk cache kullaniminda iyi
degildir o kadar. Fakat, bir uygulama acilirken DLL'leri vs. daha sonra
yukler. Yani, uygulama icinde DLL fonksiyonu cagrilinca DLL erisimi
gerceklesir. Linux ise uygulamayi yuklerken gereken tum DLL'leri de birlikte
yukler. Yani, runtime esnasinda DLL'leri link eder. Bu yuzden Linux
uygulamasi acilirken daha yavastir. Windows'ta calisirken daha yavas.. Mutlak
farketmissinizdir, Word acilir, yazmaya basladiniz mi bir takilir, gerer
soyle makineyi..
Asil surpriz calisan bir program icin mevcuttur. Linux'ta memory fragmentation
yok. Yani ne kadar bos bellek varsa hepsini tek bir blok olarak
kullanabilirsiniz. Ama boyle olmasi elbette alloc/free cagrilarinda kucuk bir
latency olusturabilir. Diger yandan bir buyuk surpriz ise calisan
programlarin ayni bellek alani uzerinden, yeniden yuklenmeden/link edilmeden
yeni bir kopyasinin olusturulabilmesidir. Bu, bilhassa yogun yukteki sistemde
buyuk performans ve bellek kazanci saglar.
Simdi, sizce, ayni yontem/algoritma kullanildigi, kodlamada beceriksizlik
yapildigi icinmi bu performans farklari olusuyor ? Hayir, performans
farklarini getiren kodlama degil, kullanilan yontemler, algoritmalar. Windows
oyle yapmis. Cunku onun yaklasimi All-in-one. Hersey DCOM ve API uzerinden
grift olarak birbirine entegre edilir. Tek bir urun her seyi yapmaya cikar.
UNIX/Linux tarafinda ise, "Modus Operande" yaklasimi gecerlidir. Burada basit
ve tek bir is yapan ama o isi cok iyi yapan bir uygulama bulunur. Kabaca
stream I/O (stdin/stdout) ve basit IPC cagrilari ile bu uygulamalar
birlestirilir ve is yapan bir sey cikar. Yani, entegrasyonu kullanici
gerceklestirir. Bu sayede en iyi optimizasyon kullanicin o anki imkan ve
isteklerine gore saglanir. Ama bu asla otomatikman yapilamaz, ne Windows, ne
de Linux'ta.. Linux'un bu yaklasimi, daha kucuk, basit, guclu, guvenilir ve
hizli uygulamalar getirir. Windows'un yaklasimi ise, hantal,
ozellestirilemez, genisletilemez, olceklenemez, zor ama tek tikla bir ton sey
yapan uygulamalar cikarir. Sonucta baslangicta Windows kolay gorunur ama o
koca cusseyi zaptetmek bir beladir. Ikide birde dumen kilitler, kayaya
oturur. Iste o durumda benim diyen kaptan o gemiyi kurtaramaz hale gelir.
Cunku geminin makine dairesi kaptanin (siz oluyorsunuz) denetiminde degil,
geminin kendi basina buyruktur..
Saygi ve sevgiler..
linux-sohbet listesinden cikmak ve tum listeci islemleri icin
http://liste.linux.org.tr/ adresini kullanabilirisniz.
Bu listeden cikmak icin
<a href="mailto:linux-sohbet-request?Subject=unsubscribe"> tiklayiniz </a>