IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   mIRC Scripting Sorunları (https://www.ircforumlari.net/mirc-scripting-sorunlari/)
-   -   ( ların ve | lerin zamana etkisi? hangisi hızlı! (https://www.ircforumlari.net/mirc-scripting-sorunlari/1702-larin-ve-lerin-zamana-etkisi-hangisi-hizli.html)

Alience 11 Mart 2005 17:41

( ların ve | lerin zamana etkisi? hangisi hızlı!
 
ilk önce yaptığım deneyin mantığını açıklıyım bayağı yüksek ms (milisaniye) çıkarabilecek bir döngü yaptım örneği aşağıda
whiletest {
var %ticks-old = $ticks
var %i = 1
while (%i < 15000) {
inc %i 1
}
var %ticks-now = $ticks
echo - Şimdiki: %ticks-now Eskisi: %ticks-old Fark-ms: $calc(%ticks-now - %ticks-old)
}

bu döngüyü her değişimim için 6 defa çalıştırdım, ve cıktılarını ilk önce zamanlamaları sonrada kodu gelecek şekilde yazıyorum:

- Şimdiki: 3660590 Eskisi: 3657442 Fark-ms: 3148
- Şimdiki: 3664485 Eskisi: 3661341 Fark-ms: 3144
- Şimdiki: 3668215 Eskisi: 3665056 Fark-ms: 3159
- Şimdiki: 3671825 Eskisi: 3668667 Fark-ms: 3158
- Şimdiki: 3675450 Eskisi: 3672291 Fark-ms: 3159
- Şimdiki: 3679145 Eskisi: 3675982 Fark-ms: 3163
whiletest {
var %ticks-old = $ticks
var %i = 1
while (%i < 15000) {
inc %i 1
}
var %ticks-now = $ticks
echo - Şimdiki: %ticks-now Eskisi: %ticks-old Fark-ms: $calc(%ticks-now - %ticks-old)
}


- Şimdiki: 3712100 Eskisi: 3708971 Fark-ms: 3129
- Şimdiki: 3716155 Eskisi: 3713035 Fark-ms: 3120
- Şimdiki: 3719910 Eskisi: 3716805 Fark-ms: 3105
- Şimdiki: 3723615 Eskisi: 3720513 Fark-ms: 3102
- Şimdiki: 3727260 Eskisi: 3724156 Fark-ms: 3104
- Şimdiki: 3730910 Eskisi: 3727809 Fark-ms: 3101
whiletest {
var %ticks-old = $ticks
var %i = 1
while %i < 15000 {
inc %i 1
}
var %ticks-now = $ticks
echo - Şimdiki: %ticks-now Eskisi: %ticks-old Fark-ms: $calc(%ticks-now - %ticks-old)
}



- Şimdiki: 3773670 Eskisi: 3770352 Fark-ms: 3318
- Şimdiki: 3777810 Eskisi: 3774502 Fark-ms: 3308
- Şimdiki: 3781655 Eskisi: 3778379 Fark-ms: 3276
- Şimdiki: 3785470 Eskisi: 3782191 Fark-ms: 3279
- Şimdiki: 3789185 Eskisi: 3785906 Fark-ms: 3279
- Şimdiki: 3793076 Eskisi: 3789787 Fark-ms: 3289
whiletest {
var %ticks-old = $ticks | var %i = 1 | while %i < 15000 { inc %i 1 } | var %ticks-now = $ticks
echo - Şimdiki: %ticks-now Eskisi: %ticks-old Fark-ms: $calc(%ticks-now - %ticks-old)
}



evet farklardan anlaşılacağı gibi ( ) parantezlerinin hemen hemen saniyede etkisi yok ama kullanılmamaları bize birkaç milisaniye kazandırdı işin şaşırtıcı noktasi ise | ler ile kodu birleştirince herkezin sandığının aksine süre kısalmadı 200 ms kadar uzadı! yorum sizin, bağzı arkadaşlar ezbere gidiyor bu hızlı bu değil başkaların yazdıklarından faydalanıyor sizde kodersiniz deneyebilirsiniz örneğide yukarıda.

Not: arka planda birşey çalışmaması tavsiye olunur yoksa stabil sonuç alamassınız :)

DefauLt 11 Mart 2005 18:26

Parantezlerin zamana etkisi yoktur Alience :) 15.000 döngüde zaten kesin sonuc
alabilmen imkansiz.
mIRC'te kodlarin okunma hizini arttirmak icin kodlar mumkun olabildigince tek satira
yazilmali. Cunku bir alt satiri okumak icin mIRC ekstra bir islem yapiyor. Okuma sistemi,
line by line.

Alience 11 Mart 2005 18:27

Demekki etkisi varmış az da olsa, yeterli olasılığı sağladığı kanısındayım nasıl okursa okusun pratikte gözüken o line by line okuyor ama demekki | leri kendisi ayırıyor ;). 15000 line yeterlidir bence 6 tane arasında fazla fark olmadığına göre yeterli.

DefauLt 11 Mart 2005 18:30

| karakterini okurken en azindan o satirda devam ettigi icin, kodun uzunluguna gore kazanilan zaman artacaktir.

DefauLt 11 Mart 2005 18:34

15.000 dongu yeterli, hatta yeterliden fazlasi :) Zaten fazla oldugu icin kesin sonuc alamazsin. Kesin bir islem olmaz. Parantezlerin sagladigi bir iki sey var, kodun duzenli gozukmesi, ne yaptigina bakip hemen anlayabilmek. Fakat -sahsi olarak- kod yazma hizimi dusuruyor :)

Alience 11 Mart 2005 18:40

tamam boşuna tartışmayalım sende dene pratikte ki gördüğüm sonuç ve elde edeceğim sonuçta odur değilmi?. 15000 tane çoksa ki ms cinsinden bilgisayarın bir loopu yapabilmesi micro sn lere eşit olduğundan (yani bir şehir şebekesi bile sn de 50hz clock cycle ile çalışıyor ve bu bilgisayarda daha çok hızlı bir frekansta bir clock ile işlemci çalıştırılıyorsa ki 1 sn de yapacağı işlemi düşün) o kadar çok loop ile denemem gayet normal elle tutulur bir saat farkı alabilmem için, ki bir scriptede bir loop olmayabiliyor.
sonuçta gözüken 0 bariz olmasada ayrı hali daha hızlı! ki o da 200 ms gibi fark etti yani 1 sn nin 5 te 1'i. Niye tartışıyoz anlamadım hala sonuçlar ortada.

Bu arada parantez sana yarıyacak yokken daha hızlı çalıştı :)

AzagThoth 11 Mart 2005 18:40

Arkadaşlar Guzelde line by line nedir bize de acıklarsanız bu olay'ı sevincem :D

Alience 11 Mart 2005 18:42

satır satır anlamında yani satırları tek tek okur.
Biz moda girdik sizi unuttuk ;) pardon.

DefauLt 11 Mart 2005 18:42

Kodlarin satir satir okunmasi. Alience öneri; iki farkli alias olustur ve ayni anda calistir.

Alience 11 Mart 2005 19:17

Okadar sağlam loopa girerki otekini çalıştıramazsın, bitince ancak çalışır. Sonsuz döngü misali. ki çalıştırsanda yien birisininki fazla vericek sn yi hangisi olduğu belli. zaten bilgisayarda işlemcide aynı anda 2 işlem yaptırman zor 1 tane ya devam edeni yaptıracak yada onu bir anlık durdurup otekini yaptıracak.


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 12:38.

Powered by vBulletin® Version 3.8.8 Beta 3
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2024 IRCForumlari.Net