Kütüphaneler: DLL olmadan Dosya Eşleme - sayfa 2

 

Alex, bir dosyaya artık ihtiyaç duyulmadığında belleği nasıl boşaltıyorsun?

Demek istediğim, çok sayıda dosya olabileceği için RAM'i megabaytlar ve gigabaytlarla doldurmak zorunda kalmamam için.

 
CloseHandle yardımcı olur mu?
 
sergeev:

CloseHandle yardımcı olur mu?

CloseHandle, Close() içinde çağrılır, ancak belleği serbest bırakmaz ve yeniden açarak (oluşturmadan) kaydedilen bilgileri alabilirsiniz.

Bu RAM'in dolu olduğu anlamına gelir.

void CMemMapFile::Close()
  {
   if(m_hmem!=NULL) CloseHandle(m_hmem); m_path=""; m_hmem=NULL; m_size=0; m_pos=0; m_mode=-1; // tutamacı kapat
  }
 

Garantili bellek serbest bırakma için dosya boyutunu 0 olarak değiştirmenin daha iyi olacağını düşünüyorum.

Ayrıca boyutu artırmak için Grows, ayrılan belleği sıfırlayarak dosyayı öldürmek için Delete eklenebilir.

 

Teşekkür ederim. Çok gerekli bir şey.

Ve belki de konu dışı bir soru: Dosya Eşleme, optimize ederken standart genetik yerine harici genetiği (örneğin, terminalde çalışan bir komut dosyası) kullanacak şekilde uyarlanabilir mi?

 
joo:

Teşekkür ederim. Çok gerekli bir şey.

Ve belki de konu dışı bir soru: Dosya Eşleme, optimize ederken standart genetik yerine harici genetiği (örneğin, terminalde çalışan bir komut dosyası) kullanacak şekilde uyarlanabilir mi?


Yarı otomatik olmadığı sürece, birinin test cihazını başlatması ve durdurması gerekir (bu, claud kullanmayı düşünüyorsanız).

Ve claude olmadan test cihazı kullanmanın bir anlamı yoktur.

 
Urain:

CloseHandle, Close() içinde çağrılır, ancak belleği serbest bırakmaz ve yeniden açarak (oluşturmadan) kaydedilen bilgileri geri alabilirsiniz.

Sanırım birisi yeniden yazana kadar orada kalıyor. Böyle bir şey yaşadım. Yazan uygulama tanıtıcıyı kapatıyor ve okuyan uygulama kapatmıyor. Ancak verileri okuyabilir. Ancak Windows'ta bazı işlemlerden sonra dosyadaki veriler değişiyor.

Bu da RAM'in dolu olduğu anlamına geliyor.

Emin değilim.
 

joo:

Dosya Eşleme muhtemelen optimizasyon sırasında standart genetik yerine harici genetik (örneğin terminalde çalışan bir betik) kullanmak üzere uyarlanabilir mi?

Ara verileri depolamak için dosyaları kullanırsanız, elbette yapabilirsiniz. Önemli olan, verileri bazı referans noktalarında diske sıfırlamaktır, çünkü bir şey olursa, bilgi geri alınamaz bir şekilde kaybolacaktır.
 
sergeev:

Sanırım biri yeniden yazana kadar orada kalıyor. Böyle bir şey yaşadım. Yazan uygulama tanıtıcıyı kapatıyor ve okuyan uygulama kapatmıyor. Ancak verileri okuyabilir. Ancak Windows'ta bazı işlemlerden sonra dosyadaki veriler değişiyor.

Emin değilim.
Belki de bunu garantili bir şekilde kontrol etmemiz gerekiyordur. Ama nasıl yapacağımı bilmiyorum.
 
Urain:

Yarı otomatik olmadığı sürece, birinin test cihazını çalıştırması ve durdurması gerekir (bu, bir claud kullanmayı düşünüyorsanız).

ZY ve claud olmadan test cihazı kullanmanın bir anlamı yoktur.

Evet, claud ile ilgili bir sorun var....

Kullanıcının komut dosyasını grafik üzerinde çalıştırdığını ve ardından test cihazında optimizasyonu başlattığını kastetmiştim (komut dosyası, Dosya Eşleme yoluyla gerekli değişkenleri optimize edilmiş Uzman Danışmana "kaydırmaya" başlar ). Ve optimizasyonun nasıl, ne zaman ve hangi koşullar altında durdurulacağı başka bir sorudur (örneğin, Uzman Danışman "hazır" bayrağını alır ve Uzman Danışmanın doldurması çalışmayı durdurur, bu nedenle test cihazı kalan çalıştırmaları boşta modda yapar - böylece kalan çalıştırmaları hızlı bir şekilde çalıştırır).

Bu şekilde devam eder.