Merhabalar, Projemde kullancıya Speed opsiyonu verip Fast Medium ya da slow gibi üç seçenek vermek istiyorum.ThreadPool yapısını kullanıyorum.Şu anda ne fazla 10 tane download eklenebiliyor havuza .Bununla ilgili bir şey mi download speed?ThreadPool sizenı değiştirmek hızı nasıl etkiler?Ya da başka hangi yollarla speed kontrolünü sağlayabilirim?Teşekkürler.

soruldu: 27 Nis '13, 02:27

ipek's gravatar image

ipek
226172025
cevap kabul oranı: 100%

değiştirildi: 29 Nis '13, 05:52

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183


Token Bucket Algoritması diye bişey buldum. İşinizi görür mü bilmem. Ancak bandwidth limit için bunu tavsiye ediyorlar.

Bu adreste de örnek uygulaması var.

Ayrıca Bu adreste de threadlere ara verdirerek download hızını limitlemeyi denemiş.

permanent link

cevaplandı: 29 Nis '13, 02:51

Fatih's gravatar image

Fatih
51761021
cevap kabul oranı: 40%

değiştirildi: 29 Nis '13, 02:56

Bunun için Google Guava kütüphanesindeki RateLimiter sınıfını kullanabilirsiniz. RateLimiter sınıfı thread uyumlu bir şekilde saniyede kabul edeceğiniz istek sayısını ayarlayabilmenizi sağlar.

Dokümanda verilmiş örnek:

final RateLimiter rateLimiter = RateLimiter.create(2.0); // rate is "2 permits per second"
void submitTasks(List<Runnable> tasks, Executor executor) {
  for (Runnable task : tasks) {
    rateLimiter.acquire(); // may wait
    executor.execute(task);
  }
}

Bu sınıfı kullanarak örneğin soketten saniyede N byte okunmasını sağlayabilirsiniz.

permanent link

cevaplandı: 30 Nis '13, 00:42

nurettin's gravatar image

nurettin
2.2k2441
cevap kabul oranı: 14%

değiştirildi: 30 Nis '13, 00:43

Merhaba. Bu konu sadece Thread ile çözülebilecek bir konu değil. Şu şekilde açıklayayım.

1mbps sorunsuz bağlantınız var. karşıdaki sunucunun da 1mbps sorunsuz bağlantısı var ve sadece siz downlaod yapıyorsunz. O zaman isterseniz 50 Thread açın hızınız artmaz hatta (http header, connection süreleri vb sebeplerden dolayı) düşer. Fazladan indirme kanalı açmak bağlantı probleminiz varsa veya sunucu çok meşgul bir sunucu ise size hız kazandırır.

Bahsettiğiniz gibi bir hız kontrolü yapmak istiyorsanız okuduğunuz byte sayısını periyodik olarak kontrol edip fazladan byte okumayarak slow ve fast medium seçeneklerini oluşturabilirsiniz.

permanent link

cevaplandı: 29 Nis '13, 02:22

myururdurmaz's gravatar image

myururdurmaz
2.2k11027
cevap kabul oranı: 23%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1,079
×2

Soruldu: 27 Nis '13, 02:27

Görüntüleme: 601 kez

Son güncelleme: 30 Nis '13, 00:43

powered by BitNami OSQA