Dosya dosyalarını değiştirmeden HDD dosyalarını sanal bellekte tutma


1

Sanırım sorum çok spesifik ama umarım zaten bir çözüm olabilir.

Birkaç klasörü sanal bellekte kullanılabilir yapmak istiyorum, ancak sanal bellekteki dosyaları kopyalayacak ve GÇ işlemini bu dosyalara sanal belleğe yönlendirecek sanallaştırma aracı gibi erişilme biçimlerini değiştirmek istemiyorum.

Sık sık maven tarafından derlenen büyük kaynak klasörlerim var ve bu kaynakları hdd yerine ram'de bularak genel derleme hızını artırmak istiyorum.

ImDisk'e aşinayım ancak kaynakları kaynaklara göre değiştirerek ortamı bozamam (önceden yapılandırılmış çok sayıda araç var).

Öyleyse soru şudur: yukarıda açıklanan problem için herhangi bir çözüm var mı?

Saygılarımızla


Yanlış terimi kullanıyorsunuz. Sanal bellek, bellek adresinin fiziksel RAM ile eşlenmesini veya sabit sürücüdeki bir sayfa dosyasına yönlendirilmesini sağlayan işlemdir. Aradığın şey bir çeşit şeffaf Ram Disk
Scott Chamberlain

@ScottChamberlain üzgünüm yanlış terim kullandım, gerçekten fiziksel RAM demek. Yine de mümkün mü? Demek istediğim, IO işlemlerini yönlendirmek için izin alacak bir araç yazılabilir mi? (Sistemin böyle bir izin
verdiğinden

Sandboxie gibi yazılımların IO yönlendirmesini yaptığını biliyorum, ancak aradığınız performans artışını size verecek mi bilmiyorum.
Scott Chamberlain

Yanıtlar:


3

Olası çözüm

Bunu varsayarak:

  • Zaten atanmış fiziksel bellekte bir RAM sürücüsü oluşturdunuz R:(başka bir harf de iyidir).
  • Klasörü C:\Folder1daha hızlı erişim için RAM’de kullanılabilir yapmak
  • Folder1 yerel bir NTFS biçimli biriminde depolanır.

Değişiklikleri uygulama

  1. Erişebilecek tüm programları kapatın Folder1.
  2. Rename Folder1için Folder1.zTarget(gerçek adı sürece durum farklı kadar önemli değildir).
  3. Folder1.zTargetRAM sürücüsüne kopyala ( R:).
  4. İşaret adlı bir dizin bağlantı oluşturun .Folder1R:\Folder1.zTarget

Bundan sonra, C:\Folder1gerçekte erişmekte olduğunuza her eriştiğiniz zaman RAM sürücüsünde ( R:\Folder1.zTarget) depolanan verilerdir .

Geri döndürme

  1. Erişebilecek tüm programları kapatın Folder1(şimdi bir dizin bağlantı linki).
  2. İçindeki herhangi bir dosya Folder1değiştirilmişse, değişiklikleri korumak için Folder1.zTargetRAM'dan ( R:) diske ( C:) kopyalayın .
  3. Adlı dizin bağlantı bağlantısını silin Folder1.
  4. Folder1.zTargetGeri adını değiştir Folder1.

Toplu otomasyon

Adımların çoğu elle gerçekleştirilebilse de, dizin bağlantı bağlantıları oluşturmak için yerleşik bir yol yoktur, ancak komut satırı arayüzünden ( mklink). Biz varken, tüm süreci otomatikleştirerek zaman kazanabiliriz.

Örnek komut dosyası

Kısa bir başlatma işleminden sonra, komut dosyası, adı özel soneki içeren bir klasör olup olmadığını kontrol eder. Ardından, foldersdeğişkende ayarlanan her klasör için değişiklikleri yukarıda açıklanan şekilde uygulayın veya geri alın - "tüm programları kapat" adımları hariç.

@echo off
set folders="C:\Folder1","C:\Some other\folder"
set suffix=zTarget
set ramdisk=R:

for %%G in (%folders%) do (
dir "%%~dpG" /a:d | find ".%suffix%" >nul
goto :check
)

:check
if "%errorlevel%"=="0" goto :revert

:apply
for %%G in (%folders%) do (
if exist "%%~G\" (
ren "%%~G" "%%~nG.%suffix%"
xcopy "%%~G.%suffix%" "%ramdisk%%%~pnG.%suffix%" /e /i /f /h /r /k /y /j
mklink /j "%%~G" "%ramdisk%%%~pnG.%suffix%"
echo.
))
goto :end

:revert
for %%G in (%folders%) do (
if exist "%%~G.%suffix%\" (
xcopy "%ramdisk%%%~pnG.%suffix%" "%%~G.%suffix%" /e /i /f /h /r /k /y /j 
rd "%%~G"
ren "%%~G.%suffix%" "%%~nG"
echo.
))

:end
pause
exit /b

Bu gibi toplu komut dosyası öğrenmek için iyi bir kaynak önerebilir misiniz?
vach


Sonuçlara ilgi duyanlar için çok teşekkür ederim, projelerim 16 yerine 2dk inşa
ediyorlar

Teknik özellikleriniz neler?
ve31415,

Win7: intel xeon e5-1620 3.60GHz, 16GB Ram, projelerim gerçekten çok ağır, çok sayıda maven projesi iç içe geçmiş ve her seferinde derlenen toplam kaynaklar 1 GB'ın üzerinde ... CPU'um% 10 daha yüksek değilken maven yapımı , ama şimdi düzgün çalıştığını görebiliyorum ... (paralel yapı kullanmıyor)
vach
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.