Dosyayı daha hızlı okuma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Dosyayı daha hızlı okuma
ustalarım merhaba tar dosyalarını bir dizine çıkarmak istiyorum.Kullandığım delphi sürümü xe 10.Büyük boyutlu tar dosyalarında formda donmalar meydana gelıyor ve çok geç çıkartıyor.
Kullandığım companent budur.
http://destructor.de/libtar/libtar.zip
farklı filestreamlar kullandığım halde genede aynı keza cok gec cıkarıyor.Bilğiniz bir eklenti varmı yada daha hızlı nasıl dosya okumasını sağlayabilirim ?
Kullandığım companent budur.
http://destructor.de/libtar/libtar.zip
farklı filestreamlar kullandığım halde genede aynı keza cok gec cıkarıyor.Bilğiniz bir eklenti varmı yada daha hızlı nasıl dosya okumasını sağlayabilirim ?
Re: Dosyayı daha hızlı okuma
Merhaba,
Windows bilgisayar üzerindeki RAM kullanımını bir miktarını disk işlemlerine ayırarak gerçekleştirir. Eğer sizin açmak istediğiniz TAR dosyaları işletim sisteminin dosya işlemlerini CACHE amaçlı belirlediği değeri geçiyor ise, aynı zamanda fiziki disk üzerindeki CACHE miktarlarını da geçiyor ise bu noktada sabit diskin hızı ile sınırlanmış olacaksınız. Bunu daha fazla hızlandırma imkanınız maalesef yoktur. Bu noktada klasik diskten SSD diske geçme veya RAID 0 gibi donanımsal çözümlere gitmek gerekmektedir.
Ancak bu sınırlama disk işlemleri için geçerli olacaktır. İşletim sistemi içinde diğer kısımlar çok büyük ölçüde hala kullanılabiliyor olacaktır.
Bu bilgi ışığında farklı yöntemler kullanarak sorunu çözmeniz mümkün olabilir. İlk aklıma gelenleri aşağıda sıralamaya çalıştım.
1- TAR işlemlerini uygulamanızın direk kendisi yapmasın. Standart, ücretsiz komut satırından çalışan TAR uygulamasını aşağıdaki linkteki örnek ile birlikte kullanın. Timer ile işlemin bittiğini kontrol edin.
viewtopic.php?f=2&t=36022&p=194487#p194487
2- Kendiniz ikinci bir konsol uygulaması geliştirerek ana uygulamanız içinden dosya açma komutunu ikincil uygulamanıza göndererek işlem bittiği zaman sıkıştırılmış dosya adını değiştirebilirsiniz. Ana uygulama Timer ile dosya var mı kontrolü yaparak dosya adı değiştiğinde dosyayı bulamadığı zaman işlemin bitmiş olduğunu anlayabilirsiniz.
3- Kullandığınız bileşen thread safe ise (readme.htm dosyasında belirtilmemiş) uygulamanız içinde bir thread içinde komutu çalıştırabilirsiniz.
Size uygun olduğunu düşündüğünüz bir yöntem varsa çözüm üretmeye çalışabiliriz.
Windows bilgisayar üzerindeki RAM kullanımını bir miktarını disk işlemlerine ayırarak gerçekleştirir. Eğer sizin açmak istediğiniz TAR dosyaları işletim sisteminin dosya işlemlerini CACHE amaçlı belirlediği değeri geçiyor ise, aynı zamanda fiziki disk üzerindeki CACHE miktarlarını da geçiyor ise bu noktada sabit diskin hızı ile sınırlanmış olacaksınız. Bunu daha fazla hızlandırma imkanınız maalesef yoktur. Bu noktada klasik diskten SSD diske geçme veya RAID 0 gibi donanımsal çözümlere gitmek gerekmektedir.
Ancak bu sınırlama disk işlemleri için geçerli olacaktır. İşletim sistemi içinde diğer kısımlar çok büyük ölçüde hala kullanılabiliyor olacaktır.
Bu bilgi ışığında farklı yöntemler kullanarak sorunu çözmeniz mümkün olabilir. İlk aklıma gelenleri aşağıda sıralamaya çalıştım.
1- TAR işlemlerini uygulamanızın direk kendisi yapmasın. Standart, ücretsiz komut satırından çalışan TAR uygulamasını aşağıdaki linkteki örnek ile birlikte kullanın. Timer ile işlemin bittiğini kontrol edin.
viewtopic.php?f=2&t=36022&p=194487#p194487
2- Kendiniz ikinci bir konsol uygulaması geliştirerek ana uygulamanız içinden dosya açma komutunu ikincil uygulamanıza göndererek işlem bittiği zaman sıkıştırılmış dosya adını değiştirebilirsiniz. Ana uygulama Timer ile dosya var mı kontrolü yaparak dosya adı değiştiğinde dosyayı bulamadığı zaman işlemin bitmiş olduğunu anlayabilirsiniz.
3- Kullandığınız bileşen thread safe ise (readme.htm dosyasında belirtilmemiş) uygulamanız içinde bir thread içinde komutu çalıştırabilirsiniz.
Size uygun olduğunu düşündüğünüz bir yöntem varsa çözüm üretmeye çalışabiliriz.
Re: Dosyayı daha hızlı okuma
hocam evet harici olarak 7z var programı winrarında aynı keza ama onlarda malasef cok gec acıyor.Örneğin benim programım ıle aynı ıslemı yapan farklı bir program var saniyesine acıyor ve yazıyor.Aynı dosyayı ben 1 dakıka acarken onun 10 sanıye bıle surmuyor kaldıkı boyutu 10 gb bile olsa aynı keza 10 sanıye surmuyor...Aslında formu dondurmasa bu program cok harıka ama formda donmalar meydana gelıyor o yuzden sıkıntı yasıyorum buda aynı keza foksiyon oldugu ıcın bir turlu thread olarak ayarlıyamadım.O konularda pek ılerı degılım hocam
Re: Dosyayı daha hızlı okuma
Eğer bahsettiğiniz hızlı uygulama dos komut satırından çalıştırılabiliyor ise;
- Yukarıdaki cevabımda 1 numaralı madde içindeki link bir forum iletisine ait.
- Forum iletisinin bir eki mevcut. Redirect adında. Bu eki indirip derlemeyi deneyin.
- Redirect uygulamasının EXE dosyası ile aynı yere hızlı çalışıyor dediğiniz uygulamayı kopyalayın (tek başına çalışıyor ise eğer)
- Redirect uygulamasını çalıştırıp hızlı çalışan uygulamayı komut kısmına yazarak kullanabiliyor musunuz test edin.
Çalışır ise sorununuzu bu yöntem ile çözmeniz mümkün olabilir. İleti ekindeki örnek uygulama thread kullanarak DOS komutları çalıştırır ve bilgileri ekranda gösterir.
- Yukarıdaki cevabımda 1 numaralı madde içindeki link bir forum iletisine ait.
- Forum iletisinin bir eki mevcut. Redirect adında. Bu eki indirip derlemeyi deneyin.
- Redirect uygulamasının EXE dosyası ile aynı yere hızlı çalışıyor dediğiniz uygulamayı kopyalayın (tek başına çalışıyor ise eğer)
- Redirect uygulamasını çalıştırıp hızlı çalışan uygulamayı komut kısmına yazarak kullanabiliyor musunuz test edin.
Çalışır ise sorununuzu bu yöntem ile çözmeniz mümkün olabilir. İleti ekindeki örnek uygulama thread kullanarak DOS komutları çalıştırır ve bilgileri ekranda gösterir.
Re: Dosyayı daha hızlı okuma
hocam algoritma var elimde,yukarda verdiğim componant ıle yazıyorlar onlarda lakin dosyayı hızlı okuyorlar.Yani file streamları hızlı sanırsam.Ekstra bir exe olarak yok onlarda bu yontemle gidiyorlar.Hocam birde eğerki incelediyseniz libtarı hep foksiyon bende foksiyonu thread olarak nasıl ayarlıcam onu cozemedım daha malasef.Aslıda bu libtarda oluyor ama asıl sorun form dondurdugu ıcın o yuzden sıkıntım.ertank yazdı:Eğer bahsettiğiniz hızlı uygulama dos komut satırından çalıştırılabiliyor ise;
- Yukarıdaki cevabımda 1 numaralı madde içindeki link bir forum iletisine ait.
- Forum iletisinin bir eki mevcut. Redirect adında. Bu eki indirip derlemeyi deneyin.
- Redirect uygulamasının EXE dosyası ile aynı yere hızlı çalışıyor dediğiniz uygulamayı kopyalayın (tek başına çalışıyor ise eğer)
- Redirect uygulamasını çalıştırıp hızlı çalışan uygulamayı komut kısmına yazarak kullanabiliyor musunuz test edin.
Çalışır ise sorununuzu bu yöntem ile çözmeniz mümkün olabilir. İleti ekindeki örnek uygulama thread kullanarak DOS komutları çalıştırır ve bilgileri ekranda gösterir.
Re: Dosyayı daha hızlı okuma
Bu program ile test edilemiyor mu acaba benim tarif etmeye çalıştığım şekilde?seci20 yazdı:...aynı ıslemı yapan farklı bir program var...
Yoksa böyle bir program yok ancak sadece algoritması mı var?
Re: Dosyayı daha hızlı okuma
Şöyle bir yöntem test ettiniz mi ? Tek büyük hacimli dosya. O zaman sürelere ne oluyor. Acaba winrar ya da diğerleri el gözden hızlıdır diyip. TAR içindeki dosya listesini alır ve farklı threadlere tek tek çıkartma işlemi yapabilir mi ?
....
Re: Dosyayı daha hızlı okuma
hocam bahsettiğim programda benim gibi telefon yazılımı yüklüyor harici bir program çalıştırmıyor yani.Ama libtar kullandıklarını biliyorum.Yani benim yukarda verdiğim componantı kullanıyorlar ama dosyayı hızlı okuyor o biçimde ayarlamıslar hugefile stream ile david diye birisi algorıtma yazmıs ama onalrda 1 sanıye farkettırdı sadece.ertank yazdı:Bu program ile test edilemiyor mu acaba benim tarif etmeye çalıştığım şekilde?seci20 yazdı:...aynı ıslemı yapan farklı bir program var...
Yoksa böyle bir program yok ancak sadece algoritması mı var?
Re: Dosyayı daha hızlı okuma
hocam listelemededen bahsedıyorsanız dırek lıstelıyor onda sorun yok.Ama dedıgım program harıcı bır exe kullanmıyor belki thread olarak ayarlamıs olabılırler dedıgınız gıbı ama ben yukardakı lıbtarı thread olarak ayarlıyamadım daha dogrusu foksıyonu oyle ayarlıyamıyorum.boreas yazdı:Şöyle bir yöntem test ettiniz mi ? Tek büyük hacimli dosya. O zaman sürelere ne oluyor. Acaba winrar ya da diğerleri el gözden hızlıdır diyip. TAR içindeki dosya listesini alır ve farklı threadlere tek tek çıkartma işlemi yapabilir mi ?