Fose ihtiyacı var. Kekleme ve/veya performansı iyileştirir.
Dökme kekeleme giderici
Sürüm 4.0.7
Skyranger-1 tarafından
Forum iş parçacığı: http://www.bethsoft.com/bgsforums/index.php? showtopic = 1069833
Tesnexus sayfası: http://www.fallout3nexus.com/downloads/file.php? id = 8886
Bu bir fose eklentisi ve yalnızca fose 1.2 beta 1 veya daha sonraki versiyonlarla çalışır.
Bu sadece fallout 3 sürümü 1.7 ile çalışır.
0. İçerik:
====================================
0. İçerik
1. Genel Bakış
2. Kurulum
3. Kaldırma
4.Ortak ayar değişiklikleri
5. Tüm ayarlar
6. Sürüm geçmişi
7. Bu nasıl çalışıyor
8. Kredi
1. Genel bakış:
Bu eklentisi fallout 3'ü o kadar "kekeleme" yapmaz ve genellikle daha pürüzsüz hisseder veya daha iyi performans gösterir. Kekleme ve kare hızları ile ilgili bazı sorunları önler veya hafifleter ve kekleme ile ilgili çökmelerin sıklığını azaltabilir. Daha fazla ayrıntı için bkz. Bölüm 7: Nasıl çalışır.
Bununla birlikte, bunun genellikle sürücülerinizin, donanımınızın veya kodeklerinizin yanlış hiçbir şeyi düzeltmeyeceğini unutmayın-kötü performans için temel nedenleriniz varsa, bu muhtemelen çok yardımcı olmayacaktır.
Bu, çökme için çalışan unutulmuş kekeleme gidericisinin (OSR) bir portudur. Şimdiye kadar, orijinal unutma kekeleme giderici kadar iyi çalışmıyor, ancak bazılarına yardımcı olmalıdır.
Bu her şeyle uyumlu olmalıdır. Tek uyarı, fps'yi izleyen modların, bu eklenti tarafından ayarlanan hedef aralığın dışındaki fpses'i doğru bir şekilde ölçemeyeceğidir (varsayılan olarak 10 ila 30). Aslında, sadece fsr hedeflerine yakın olan fpses bile ölçülmesi zor olabilir.
2. Kurulum:
====================================
Kurulum süreci şundur:
1. A. Yüklediğiniz fsr sürümü. zip dosyası olarak geliyorsa, "veri" klasörünü zip'ten unutulma klasörünüze sürükleyin.
1. B. Yüklediğiniz fsr sürümü. zip dosyası olarak gelmezse, sr_fallout_stutter_remover.dll dosyasını fallout\Data\fose\plugins klasörünüze yerleştirmeniz gerekir. Böyle bir klasörünüz yoksa, oluşturun. Eski bir fsr sürümünüz yükleniyorsanız, ini dosyasını silin (Data\fose\plugins\sr_Fallout_Stutter_Remover.ini). Mevcut fsr ini dosyası yoksa, bir sonraki fallout çalıştırdığınızda fsr sürümünüze uygun ayarlarla yeni bir ini dosyası oluşturur.
3. Kaldırma:
Sr_fallout_stutter_remover.dll dosyasını data\fose\plugins klasöründen silin.
Bu dosyayı başka bir dizine taşımak da yeterli olacaktır.
4.Ortak ayar değişiklikleri
====================================
Genel olarak, fsr iyi varsayılan ayarlara sahip olmaya çalışır, böylece kullanıcıların onlarla birlikte maymun yapması gerekmez. Bununla birlikte, varsayılan değerlerin zevklerinize uymadığı veya fsr bilgisayarınız hakkında yanlış varsayımlar yaptığı için varsayılan değerlerin sizin için uygun olmayabileceği birkaç ayar vardır.
Fsr ayarlarını data\fose\plugins\sr_Fallout_Stutter_Remover.ini dosyasında tutar
Bu dosya mevcut değilse, fsr yüklenmiş fallout'u başlatın ve fsr fsr sürümünüz için varsayılan ayarlara sahip yeni bir dosya oluşturur. Ayarlarınızda bir şeyi bozmuşsanız veya varsayılan ayarlara geri dönmek istiyorsanız, bu ini dosyasını silin ve sonuçları başlatın.
Bölüm 5'te ayarlar hakkında genel bilgileri ve her bireysel ayar hakkında daha eksiksiz bilgileri bulabilirsiniz.
Değiştirmek istediğiniz ayarlar şunlardır:
FPS_Management\MaximumFPS: (varsayılan olarak 30, 0 veya diğer değerlere değiştirmeyi düşünün)
Bazı insanlar kare hızlarının sınırlı olmasını istemiyor. Bunu 0'a ayarlayarak fps sınırlamasını kapatabilirsiniz. Ayrıca, çalma sırasında ekran yenileme hızınız 60 hertz değilse, bunu ekran yenileme hızınıza veya ekran yenileme hızınızın yarısına veya ekran yenileme hızınızın üçte birine değiştirmeye çalışabilirsiniz. Master\bmanagefps 0'a değiştirilirse, bu ayarın hiçbir etkisi olmayacak.
Hashtables\bAllowDynamicResizing: (varsayılan değer 0, 1 olarak değiştirmeyi düşünün)
Bunu açmak, büyük ölçüde modifiye edilmiş oyunlarda genel performans/fps'i önemli ölçüde artırabilir. Ne yazık ki, özellikle belirli fose komutlarını kullanan komut dosyaları her çerçeveyi çalıştırdığında, yarış koşullarına ve genel kargaşaya neden olabilir. Sorun olasılığını sıfıra düşürmeye çalıştım ama... Daha fazla çalışma gerektirebilir. Bu arada bu özellik varsayılan olarak devre dışı bırakılır. Master\bhookhashtables 0'a değiştirilirse, bu ayarın hiçbir etkisi olmayacak.
Kritik bölüm bastırma: (özel)
Varsayılan olarak fsr, düşüş olmadan daha iyi çalışıyor gibi görünen belirli bir kritik bölümü bastırır. Bazı kullanıcıların sorun neden olmadan bastırabileceği gibi görünen ilgili başka bir kritik bölüm var, ancak diğer kullanıcılar bastırıldığında iç dış geçişlerde ctds veya diğer sorunlar yaşarlar. Kekemede sadece küçük bir iyileşme sağlar, bu yüzden genellikle bastırmayı tavsiye etmiyorum, ama isterseniz yapabilirsiniz. Bastırmak için, ini dosyanızda "calleradress = 0x70172A" yazan satırı bulun ve hemen ardından "Mode = 5" yazan yeni bir satır ekleyin. Davanın orada önemli olduğunu unutma... "Mod" değil, "mod" olmalı. Master\bhookcriticalsections veya criticalsections\buseoverrides 0 olarak ayarlanırsa, bu ayarın hiçbir etkisi olmayacaktır.
Not: readme'nin hemen üstünde çıkarılan kısmı, çökme değil, unutma içindir; Dökülme için eşdeğer bir değer var, ancak henüz kesin değerleri aramadım. Şimdilik, bunu görmezden gelin.
5. Tüm ayarlar
====================================
Fsr ayarlarını data\fose\plugins\sr_Fallout_Stutter_Remover.ini dosyasında tutar
Bu dosya mevcut değilse, fsr yüklenmiş fallout'u başlatın ve fsr fsr sürümünüz için varsayılan ayarlara sahip yeni bir dosya oluşturur. Ayarlarınızda bir şeyi bozmuşsanız veya varsayılan ayarlara geri dönmek istiyorsanız, bu ini dosyasını silin ve sonuçları başlatın.
Fsr ini dosyalarının biçiminin fsr'nin ana sürümleri arasında değiştiğini unutmayın-fsr2'de fsr sürümü 2 vb. ile bir fsr sürümü 1 ini dosyası kullanmamalısınız, ini dosyası "SectionName{SettingName=Value}" gibi bölümlerde organize edilmiştir. Farklı bölümlerdeki aynı adlara sahip diğer ayarlardan ayırt etmek için belirli bir ayara sectionname\settingname olarak atıfta bulunabilir. Genel olarak, "i" ile başlayan adlarla ayarlar tamsayı değerleridir (yani ondalık noktası olmayan sayılar), "b" ile başlayan adlarla ayarlar boolean değerleridir (yani 0 veya 1) ve "f" ile başlayan ayarlar ondalık noktaları olabilecek sayılardır (yani 3.14). Bazı ayarlar bu harflerden biriyle başlamaz, bu durumda uygun değer türünün ne olduğu açık olmayabilir.
Bunlar ayarlar ve geçerli varsayılan değerleri (% 100 güncel olmayabilir):
Bölüm: Master {}
Bu bölüm, fsr'nin her ana alt sistemini devre dışı bırakma seçeneği ve fsr'nin herhangi bir alt sistemine ait olmayan şeyler için birkaç ayarı içerir.
Master\bManageFPS (varsayılan: 1)
Bunu 0'a ayarlamak tüm fps yönetim şeylerini devre dışı bırakır ve fps_management bölümündeki her ayarı anlamsız hale getirir.
Master\bHookCriticalSections (varsayılan: 1)
Bunu 0'a ayarlamak tüm kritik bölüm şeylerini devre dışı bırakır ve kritik bölümlerdeki her ayarı anlamsız hale getirir.
Master\bHookLightCriticalSections (varsayılan: 1)
Bunu 0'a ayarlamak tüm hafif kritik bölüm şeylerini devre dışı bırakır ve hafif kritik bölümlerdeki her ayarı anlamsız hale getirir.
Master\bHookHashtables (varsayılan: 1)
Bunu 0'a ayarlamak, tüm karma tablosu şeylerini devre dışı bırakır ve kritik bölümlerdeki her ayarı anlamsız hale getirir.
Master\bReplaceHeap (varsayılan: 0)
Bunu 1 olarak ayarlamak, yığın değiştirmesini etkinleştirecek ve yığın bölümündeki ayarları anlamlı hale getirecektir.
Master\ bLogToConsole (varsayılan: 0)
Fsr, günlük dosyasına çeşitli bilgi bitlerini kaydeder. Bu ayarı 1 olarak değiştirmek fsr'nin bu bilgileri de konsole yazdırmasına neden olur.
Günlük dosyası fallout dizinindeki sr_fallout_stutter_remover.log. Fsr yüklendiğinde her fallout çalıştığında oluşturulur veya üzerine yazılır.
Master\bFix64Hertz (varsayılan: 1)
Bunu 1 olarak ayarlamak, "mikro kekemeye" neden olan çöktü sorununu düzeltir. Bu sorun bazen "64 hertz sorunu" olarak bilinir. Özellikle sorun, çökme oyununun mantık zamanlamasının genellikle saniyenin 1/64 çözünürlüğünde meydana gelmesidir ve ekran yenileme oranı genellikle vsync sınırlandığında çökmenin saniyede 60 kare çizmesine izin verir. Bu kombinasyon, kare hızı azaltıldığında, her saniyede 4 kare 56 kare kadar iki kat daha fazla oyun süresine sahip olan bir tür atış frekansı oluşturur. Fsr, saniyenin 1/64 çözünürlüğü yerine saniyenin 1/1000 çözünürlüğünde zaman kullanmak için zorlayan çökme uygulamasını düzeltir.
Master\bFlushLog (varsayılan: 1)
Bu, fsr'a belleğe arabellek etmek yerine dosyasına herhangi bir günlük mesajını derhal yazmasını söyler. Daha fazla disk erişimi nedeniyle performansı biraz azaltabilir, ancak çökmeden kısa bir süre önce meydana gelen sorunlarla ilgili herhangi bir mesajın günlük dosyasına başarıyla yazılması olasılığını artırır.
Master\iSchedulingResolution (varsayılan: 1)
Fsr, Windows zamanlayıcısının bu milisaniye kadar çözünürlüğünde çalışmasını isteyecektir. Bu küme 1'de olduğunda, fsr ve fallout genellikle daha iyi çalışır. Ancak bu dizüstü bilgisayarın pil ömrünü biraz azaltabilir.
Bölüm: FPS_Management {}
Bu bölüm, fsr'nin kare hızınızı ve oyun süresinizi nasıl yönettiğini ayarlayan ayarlar içerir.
FPS_Management\bAllowSlowMotion (varsayılan: 1)
Bunu 0 olarak ayarlamak, fsr'nin normal oyun süresi akışını geçersiz kılmaya çalışmasını engelleyecektir. Geçmişte, arison'un fsr'dan bunu yaptığı (en kötü şöhreti yakın-npcs-drop-dead-on-celle-transitions hatası), ancak bunların şimdi düzeltildiğine inanılıyor. Bir sorun olabileceğinden şüpheleniyorsanız, bu ayarı tüm fsr oyun süresi ayarlamalarını zorla devre dışı bırakmak için kullanabilirsiniz. Adına rağmen, bunu 0'a ayarlamak fsr'nin oyun süresini hızlı bir şekilde iletmesini engelleyecektir, ancak fsr bunu sadece çok nadir ayarlar ve koşullar kombinasyonunda yapmaya çalışır.
FPS_Management\MaximumFPS (varsayılan: 30)
Bu maksimum fps'dir ve fsr çökmenin aşılmasına izin vermeyecektir. Genellikle bunu yeterince yüksek bir kare hızına ayarlarım ve saniyede ekstra kare umursamayacağım. Fsr'nin burada gerçekten "saniyede kare" ile ilgilenmediğini unutmayın, bunun yerine bu değeri kare başına milisaniye bir sayıya dönüştürür ve her kare ayrı ayrı dikkate alır. Bir çerçeve çok hızlı tamamlanırsa, fsr doğru milisaniye geçene kadar ana iş parçacığının uyumasına neden olur. Ana iş parçacığının uykuya sokulması, arka plan iş parçacıklarının veya arka planda çalışabilecek diğer programların kullanımı için kaynakları serbest bırakabilir. Eğer hiçbir şey ekstra kaynakları kullanmak istemiyorsa, CPU'nunuz ve/veya gpu'nunuz daha soğuk çalışacak ve daha az elektrik kullanacaktır.
FPS_Management\MinimumFPS (varsayılan: 10)
Bu asgari fps'dir ve fsr düşüş sonuçlarının altına girmesine izin vermeyecektir. Bununla birlikte, gerçek saniyelerle uğraşmak yerine, saniyeler oyun süresiyle uğraşıyor. Bu yüzden bilgisayarınız gerçekten yavaş ise yine de 1 fps'e sahip olabilirsiniz, ancak bu oyun süresini normal% 10'una yavaşlatır, böylece oyun süresinin saniyede her zaman en az 10 kare olur. Oradaki tüm sayılar, örneğin, gerçek fps 1 ve minimum fps 10 ayarına (varsayılan değer) dayanarak vardır. Ayrıca, maximumfps gibi, bunun aslında saniyede kare yerine kare başına milisaniye işleyen tek kare temelinde çalıştığını unutmayın.
Genellikle bunu uzaktan oynatılabileceğim düşük fps'ye ayarlarım. Bu ayarın büyük amacı, fps çok düşük olduğunda oyun mantığının delirmesini önlemektir. Bunun önlediği sorunlar arasında düşman çerçeveler arasında etrafınızda daireler koşabileceği için mümkün olmayan savaşlar, kontrolleri bozan çünkü fallout saldırı tuşlarının tüm çerçeve boyunca aşağı veya tüm çerçeve boyunca aşağı olmadığını düşünüyor, bu da bir saldırı amaçlandığında güç saldırısına neden olabilecek ve benzer diğer birçok sorun içerir.
FPS_Management\iSmoothFrames (varsayılan: 0)
Bu 0 olarak ayarlanırsa, "yumuşatma" mantığı hiçbir şey yapmaz. Yumuşatma mantığını açmak için bunu 2 olarak ayarlamayı deneyin. Bununla birlikte, raporlar yumuşatma mantığının gerçekten hiçbir şeye değmeyeceğini gösteriyor. Yumuşatma mantığı, kekeleme ve kare hızındaki diğer hızlı değişikliklerden kaynaklanan çeşitli sorunları önlemeyi amaçlamaktadır. Ballowmotion 0 ise, yumuşatma mantığının hiçbir etkisi yoktur.
FPS_Management\iSmoothMode (varsayılan: 0)
Bu 0, 1, 2 veya 3 olmalı. 0 veya 1 ise, kekleme olaylarını zaman akışından filtrelemeye çalışan bazı ekstra mantığı etkinleştirir. Bu mantık, fps'de ani bir düşüş varsa, geçen toplam oyun süresi geçen gerçek zamanla tam olarak eşit olmayabilir. Eğer 2 veya 3 ise, bu ekstra mantık parçası devre dışı bırakılır. 0/2 ve 1/3 arasındaki fark, hangi çerçevelerin aralarında nasıl yeniden dağıtıldığına dair çok ince bir sorundur.
FPS_Management\iSleepExtra (varsayılan: 2)
Fsr, her saniyede bu kadar milisaniye uyumaya zorlayacak. Bu, arka plan iş parçacıkları veya diğer işlemler için kaynakların serbest bırakılmasına veya bilgisayar bileşenlerinin sıcaklığını ve güç tüketiminin biraz azaltılmasına yardımcı olabilir. Ana fayda, bazı arka plan iş parçacığı, ana iş parçacığının sıkıştırdığı belirli bir kaynağı elde etmek için mücadele ediyorsa, bu ona zaman zaman o kaynağı elde etme fırsatı verebilir.
Bu -1 olarak ayarlanırsa, fsr fps yönetim kodu asla sonuçları uykuya sokmaz-aksi takdirde fps maksimum fps'yi aşarsa, fsr boşta bir döngüde zaman kaybeder. Bu mod sadece test amacıyla sağlandığından tavsiye edilmez.
FPS_Management\bFPSConsoleSPAM (varsayılan: 0)
Bu, fsr'nin her çerçevenin tamamlanması için gereken süreyi kaydetmesine neden olur. Bunu çerçeve başına bir kez yapar ve büyük sayıda kayıt süresi oluşturur.
FPS_Management\iSchedulingParanoia (varsayılan: 1)
Bu ayarlar milisaniye birimlerinde. Maksimum fps kodunun zamanlayıcı hakkında ne kadar paranoyak olduğunu belirler. Değer yüksekse, maksimum fps kodu asla uyumayacak, bunun yerine boş döngüde zaman kaybetmeyecektir. Değer 0 ise, maximumfps kodu zamanlayıcıya ana iş parçacığının yürütülmesini tam olarak istediği zamanda devam edeceğine güvenir. Genellikle zamanlayıcı hakkında bir paranoya için 1'de uzlaşıyorum, ancak yine de boş zamanın çoğunun yapıcı kullanılmasına izin veriyorum.
FPS_Management\iHardMaxFrametime (varsayılan: 200)
Bu milisaniye birimindedir. Zaman akışı ayarlama kodum yanlış zamanda çok büyük bir zaman koyduğunda garip şeyler olacağı bulundu. Kötü şeyler. Tıpkı yakındaki npcs rastgele öldü. Bu ayar, fsr'nin normal işler sırasında aynı anda geçmesine izin veren milisaniye sayısına mutlak maksimum ayarlayarak bunu önler. Normalde bu sınıra ulaşmadan önce minimum fps vurursunuz, ancak bazı koşullar altında minimum fps, dudak hareketleri sesle eşzamanlama gibi yan etkileri önlemek için feragat edilir, bu yüzden bu ikinci seviye minimum fps, i-gerçekten ortaya çıkarılan minimum fps işlevi. Bunu çok düşük ayarlamak, konuşmada dudak hareketlerinin eşzamanlanmasına neden olabilir ve çok yüksek ayarlamak npcs-dropping-deed-rastgele gibi böceklere izin verebilir. 200'ü uzlaşma olarak ayarladım-bir konuşma sırasında kare hızınız 5'in altına düşmedikçe dudakların eşzamanlanmasına neden olmamalıdır. Eğer kare hızı 5'ten az olursanız, ciddi yardıma ihtiyacınız var.
Bölüm: kritik bölümler {}
Bu bölüm, fsr'nin fallouts critical_sections üzerinde yaptığı tüm değişiklikleri ele alır. Critical_section nesneleri hakkında bilgi edinmek ister misin? Fallout, çeşitli ipliklerinin yanlışlıkla birbirlerini öldürmesini önlemek için onları kullanır. Microsoft onlar için kodlar sağlar. Fallout, hangi pencere sürümünde çalıştığına bağlı olarak biraz farklı sürümleri kullanır. MSDN'de onlar hakkında daha fazla bilgi okuabilirsiniz.
CriticalSections\bEnableProfiling (varsayılan: 0)
1 olarak ayarlanırsa, fsr kritik bölüm işlemlerinin zamanlaması/performansı hakkında bilgileri kaydeder. Bunu yapmak, performans için küçük ama önemli bir ceza verir. Fsr bilgileri günlük dosyasına kaydeder. Bu, çöküşünüzün neden kekelendiğine veya yavaş çalıştığına dair yararlı bilgiler üretebilir. Bu bilgiler fsr ini dosyasının geçersiz kılma bölümünü ayarlamak için kullanılabilir.
CriticalSections\bEnableMessages (varsayılan: 0)
1 olarak ayarlanırsa, fsr kritik bölümlerin bazı zamanlaması/performans olayları hakkında bilgileri kaydeder. Bunu yapmanın çok az performans maliyeti vardır, ancak günlük dosyasını dağınıklığa uğratabilir ve orada kritik olmayan bölüm bilgilerini bulmayı zorlaştırır.
CriticalSections\bUseOverrides (varsayılan: 1)
Eğer bu 1 olarak ayarlanırsa, fsr belirli kritik bölümlere ne yapılması gerektiğini belirlemek için ini'nin geçersiz kılma bölümündeki ayarları kullanır.
CriticalSections\iDefaultMode(varsayılan: 2)
Bu, fsr'nin geçersiz kılma listesinde mod girişi olmayan kritik bölümlere ne yaptığını belirler.
1: kritik bölümü yaklaşık normal davranışta bırakır.
2: Üretim pahasına adaleti artırmak için kritik bölümü ayarlar. Bu, bir iş parçacığının kritik bölümü çok fazla tutmasını önleyebilir, ancak bu kritik bölümle işlemlerin gerçekleştirilebileceği net hızı olabilir.
3: Adalet ve verim arasındaki uzlaşma girişimi, genellikle verim için optimize edilir, ancak zaman zaman davranışı adalet için optimize etmek için değiştirir.
5: o kritik bölüm bastırıldı. Kritik bölümlerin bastırılması genellikle çökmeye neden olur, ancak genellikle performansı artırır. Ancak bazı kritik bölümler farklı şekilde etkilenebilir.
6: ana iş parçacığının kritik bölüm için öncelik alması.
7: arka plan iş parçacığı o kritik bölüm için öncelik alır.
CriticalSections\iDefaultSpin (varsayılan: 500)
Bu, bir iş parçacığının kritik bölüme girmeye ne kadar süre devam edeceğini etkiler, zamanlayıcıdan kritik bölüm kullanılabilir olana kadar onu uykuya sokmasını ister. Teorik olarak, çok küçük bir değer çok fazla zamanlayıcı yükü oluştururken, çok büyük bir değer CPU döngüsünün boşa gitmesine neden olur. 500 aslında küçük bir değer olduğunu düşünüyorum. İdeal değer, sahip olduğunuz çekirdeğ/donanım iş parçacığı sayısıyla artabilir.
CriticalSections\iStutterLevel (varsayılan: 4)
Bu parametre, kritik bölüm modu 2'nin davranışını ne sıklıkla değiştirdiğini etkiler. Kritik bölüm modu 2 hakkında daha fazla bilgi için ideal mode'ye bakın. Daha küçük sayılar sık anahtarlar anlamına gelir ve daha büyük sayılar sık anahtarlar anlamına gelir. İdeal değer muhtemelen 3 ila 6 aralığında olmalıdır.
Section: LightCriticalSections {}
Bu bölüm, fsr'nin kritik_section'a benzer amaçlara hizmet eden ancak daha hafif olan bir çökme nesnesi kategorisinde yaptığı tüm değişiklikleri ele alır.
LightCriticalSections\bFullHooks (varsayılan: 0)
1 olarak ayarlanırsa, ışık kritik bölüm kancalarının daha eksiksiz sürümünü açar. Ne yazık ki, daha eksiksiz sürüm hala hatalıdır, bu yüzden şu anda varsayılan olarak devre dışı bırakılmıştır.
LightCriticalSections\bEnableProfiling (varsayılan: 0)
Eğer 1 olarak ayarlanırsa, fsr çöktüğünde hafif kritik bölüm işlemlerinin zamanlaması/performansı hakkında bilgileri kaydeder. Bunu yapmak, performans için küçük ama önemli bir ceza verir. Fsr bilgileri günlük dosyasına kaydeder. Bu, çöküşünüzün neden kekelendiğine veya yavaş çalıştığına dair yararlı bilgiler üretebilir. Bu bilgiler fsr ini dosyasının geçersiz kılma bölümünü ayarlamak için kullanılabilir.
LightCriticalSections\bEnableMessages (varsayılan: 1)
1 olarak ayarlanırsa, fsr ışık kritik bölümlerinin bazı zamanlamalar/performans olayları hakkında bilgileri kaydeder. Bunu yapmanın çok az performans maliyeti vardır, ancak günlük dosyalarını dağınıklığa uğratabilir ve orada kritik olmayan bölüm bilgilerini bulmayı zorlaştırır.
LightCriticalSections\bUseOverrides (varsayılan: 1)
Eğer bu 1 olarak ayarlanırsa, fsr belirli kritik bölümlere ne yapılması gerektiğini belirlemek için ini'nin geçersiz kılma bölümündeki ayarları kullanır. Tam lcs kancaları etkinleştirilmedikçe (yukarıdaki bfullhooks) geçersiz kılma etkisi olmayacak.
LightCriticalSections\iDefaultMode(varsayılan: 2)
Bu, geçersiz kılma listesinde mod girişi olmayan kritik bölümleri aydınlatmak için fsr'nin ne yaptığını belirler. Kritik bölümlere benzer bir mod numaralandırma şeması kullanmaya çalışır-daha fazla bilgi için yukarıdaki kritik bölümler\ idefaultmode'ye bakın. Bfullhooks etkinleştirilip etkinleştirilmediğine bağlı olarak, bazı modlar oldukça farklı davranabilir.
LightCriticalSections\iDefaultSpin (varsayılan: 500)
Bu, geçersiz kılma listesinde dönüş girişi olmayan kritik bölümleri aydınlatmak için fsr'nin ne yaptığını belirler. Kritik bölümlere benzer anlamlara sahip olmaya çalışır-daha fazla bilgi için yukarıdaki kritik bölümler\ idefaultspin'e bakın. Dönme anlamı bfullhooks etkinleştirilip etkinleştirilmediğine bağlı olarak biraz farklı olabilir.
LightCriticalSections\iStutterLevel (varsayılan: 4)
Bu parametre, hafif kritik bölüm modu 2'nin davranışını değiştirme sıklığını etkiler. Kritik bölüm modu 2 hakkında daha fazla bilgi için ideal mode'ye bakın. Daha küçük sayılar sık anahtarlar anlamına gelir ve daha büyük sayılar sık anahtarlar anlamına gelir. İdeal değer muhtemelen 3 ila 6 aralığında olmalıdır.
Bölüm: yığın {}
Bu şeyler henüz gerçekten işe yaramıyor. Kullanmayın.
Bölüm: karma tabloları {}
Fallout, her türlü şeyi aramak için bir sürü karma tablosu içerir. Genellikle korkunç bir karma tablosu uygulaması kullandılar, ancak asıl sorun karma tablosunun boyutlarını asla değiştirmezlerdir. Bir karma tablosu aşırı olduğunda performans düşer. Bir karma tablosu altındaysa, küçük bir bellek boşa çıkabilir ve önbellek tutarlılığı azalabilir. Ne yazık ki, karma tablosu kodunun çoğu her yerde sıralandır ve fose karma tablosu hakkında çeşitli varsayımlar yapar ve ilgili iş parçacığı modelinin ne olması gerektiğini hiç bilmiyor, bu yüzden onları güvenli bir şekilde değiştirmek oldukça zordur. Yine de bazı hashtablo kankalarım var ve yavaş yavaş iyileşiyorlar.
Hashtables\bAllowDynamicResizing (varsayılan: 0)
Bu 1 olarak ayarlanırsa, fsr karma tablolarının boyutunu artırır. Bununla birlikte, boyutlarını değiştirme eylemi sorunlarla doluy-çökmelere veya arızalara neden olabilir ve bunu önlemek için kullandığım yöntemler küçük performans kekelemesine veya diğer çökmelere veya arızalara neden olabilir. Yine de, şu anda biraz iyi işe yarayabileceğini düşünüyorum.
Hashtables\bUseOverrides (varsayılan: 0)
Şu anda bir karma tablosu geçersiz kılma yoktur ve bunları belirtmek için sözdizimi utanç vericidir ve yanlış değer girerseniz sessizce başarısız olma ve başka bir şey yapma potansiyeline sahiptir. Bu sonunda düzeltilecek, ancak ini dosyası tarafından belirtilen kancaların en önemli karma tablolarının başlatılmasına izin verecek, böylece daha sonra boyutlarını değiştirmek zorunda kalmak yerine uygun bir boyutta başlamalarını sağlar.
Hashtables\bEnableProfiling (varsayılan: 0)
Bu, karma tablosunu izleyecek ve ne kadar dolu oldukları ve ne kadar erişildikleri hakkında bilgileri kaydeder.
Hashtables\bEnableMessages (varsayılan: 0)
Eğer bu 1 ise, karma tablosu kodu zaman zaman ne yaptığı mesajları kaydedebilir.
Hashtables\iHashtableResizeScale1 (varsayılan: 2)
Hashtables\iHashtableResizeScale2 (varsayılan: 4)
Eğer ballowdynamicresizing 1 ise ihashtableresizescale1 bir karma tablosunun boyutunun yeniden boyutlandığı minimum dolgu seviyesini belirler ve ihashtableresizescale2 yeni boyutunun ne kadar büyük olacağını belirler. Her iki sayı da aslında 2'ye uygulanan üstlerdir, yani 3 ayarı 8 faktörü ve 5 ayarı 32 faktörü anlamına gelir. Teorik olarak ihashtableresizescale1'i 1'e indirmek performansı daha fazla artırabilir, çünkü daha fazla karma tablosunun boyutunu artırabilir. Ihashtableresizescale2 ihashtableresizescale1'den 1 veya 2 daha fazla ayarlanmalıdır.
Hashtables\iHashtableResizeDelay (varsayılan: 20)
Bu, bir karma tablosu boyutunu ayarlarken fsr'nin durduracağı birkaç milisaniyedir. Fikir, başka bir iş parçacığının karma tablosuna meşgul olduğumda erişmesini engelleyemeseme rağmen, umarım karma tablosuna erişmeye başlamalarını engelleyebilirim. Bu yüzden yeterince uzun süre geciktiriyorum, belki de hashtabloya zaten erişen herkes bitirecek ve sonra işimi yapacağım. Bu maalesef fose üzerinde çalışmaz, çünkü fose fallout ile aynı şeyi yapmaz, ayrıca yaptığında bile bunları yapmak için vtables kullanmaz. Ama ATM, fose onlara yalnızca ana iş parçacığından erişebileceğini düşünüyorum, bu yüzden boyutlandırıcım ana iş parçacığında çalışırsa, fose hakkında endişelenmek zorunda değildir. Belki de.
Bölüm: geçersiz kılıyor {}
Bu bölüm, fsr'a fsr'ın bildiği çeşitli nesne türlerinin belirli örnekleri nasıl bulacağını ve bu belirli örnekleri bu nesne türünün varsayılan ayarlarından farklı şekilde ele almanın yollarını anlatan bilgiler içerir. Şu anda burada listelenen sadece şeyler, çoğundan farklı davranışlara sahip birkaç belirli kritik bölümdür.
6. Sürüm geçmişi:
====================================
FPS Kapatıcı Sürüm 1:
Buna fps kapağı denir. Tek yaptığı fps yönetimi. Bu sürüm değiştirilmiş bir obse dll kümesine entegre edildi.
FPS Kapatıcı Sürüm 2:
Bu, obse'den ayrılan kendi dll'i olan ilk sürümdür. Buna fps kapağı denir. Tek yaptığı fps yönetimi.
Unutma Kekeleme Giderici Sürüm 3 Beta 1:
Unutma kekeleme giderici olarak adlandırılan ilk sürüm. Bazen ana menüde birkaç dakika donar. NPC ses ve yüz hareketleri diyalog sırasında berbat olabilir.
Sürüm 3 beta 2: NPC ses ve yüz hareketleri diyalogda bozabilir.
Unutma Kekeleme Giderici Sürüm 3 Beta 6:
Beta 5 ve beta 6 arasında uzun bir gecikme vardı ve birçok alfa sürümü dolduruldu. Bu, ortalama kullanıcılar için kekemeyi gerçekten azaltmak için gerçekten iyi bir iş çıkaran fsr'nin ilk sürümü. Bunun nedeni yeni özellikler: kritik bölüm adaleti ayarlaması, kritik bölüm bastırma ve yığın değiştirilmesi. Ne yazık ki, birçok kullanıcı için yığın değiştirilmesi hala büyük sorunlara sahiptir. Bfix64hertz ini'de varsayılan olarak 0'a ayarlandı ve bunun yerine 1 olmalıdır.
Not: 3. sürüm finali hiç olmadı. Yeterli talep varsa, birkaç düzeltme ile 3. beta 6 kaynak koduna dayanarak bir tane oluşturabilirim.
Kekeleme giderici sürüm 1 beta 1:
Osr'un başlangıç portu çökme.
Unuttu/Dökülme Kekeleme Giderici Sürüm 4.1.0:
Büyük değişiklik:
1.Aynı kod tabanında çökme ve unutmayı destekleyin:Dökülme 3'te çok fazla fayda sağlamaz, ancak yardımcı olur.
2.. ini dosyası: Tamamen farklı ini dosya formatı
3.Karma tablosu boyutu değiştirme: Performansı iyileştirmek için yeni özellik
4.Kritik bölüm ve hafif kritik bölüm:Kritik bölümler için birçok özel durum genelleştirildi ve şimdi ini dosyasından çok daha ayarlanabilir. Hafif kritik bölüm kodunun "tam kanca" hala hatalı.
5.Yığın değiştirme: Birkaç hatayı düzeltti, ama sanırım hala sorunları var. Dökülme üzerinde hala hiç işe yaramıyor.
6.Sürüm Adlandırma:Tesnexus'a yayınlanan sürümlere artık beta sürümleri yerine sürüm sürümleri denir. FTP sunucumda yayınlanan sürümlere şimdi alfa sürümleri yerine beta sürümleri denir. Sürüm numarasının ilk basaması yalnızca yapılandırma veya dağıtım biçiminde büyük değişiklikler yapıldığında arttırılır. Sürüm numarasının ikinci basaması her sürüm sürümünde artar. Sürüm numarasının 3. basaması her beta sürümü için bir kez arttırılır. Bir sayı arttığında, sağdaki tüm sayılar 0'a sıfırlanır.
7. Bu nasıl çalışıyor:
Bu bir fose eklentisi dll. Temel olarak hücre sonuçları yapıyor.
7.1: fps yönetimi:
Fps yönetim kodu kare hızını izler ve oyun zamanı akışını ayarlar. Kekemeyi hafifletmek için oyun mantığının kekemeyi atlamamasını sağlar. Etkili bir şekilde, uzun süre süren çerçeveler sonunda yavaş hareketli olur. Bu, ifpsclamp'ın minimumfps olarak ayarlanmış gibi hareket ettirerek, ancak yalnızca minimumfps'den daha yavaş olan çerçeveler için yapılır. Bu da istikrarı artırabilir. Ayrıca maksimum bir kare hızı getirebilir-bazı insanlar, kare hızının yenileme hızının yarısını aşmasını önlediğinde, çökmenin daha pürüzsüz olduğunu düşünür ve bu, çökmenin ikincil iş parçacığı için kaynakların serbest bırakılmasına yardımcı olur.
Fps yönetim kodu ayrıca bazı insanların kekemesini iyileştirmek için kısa bir süre boyunca ana iş parçacığını uydurabilir (ancak bu işlev bu eklentin yaptığı diğer şeyler nedeniyle gereksiz hale getirilmiş olabilir).
7.2: kritik bölümler:
Kritik bölümler, iş parçacıklarının yanlışlıkla birbirlerini bozmamasından emin olmak için dahili olarak kullanılan Microsoft tarafından sağlanan iş parçacığı senkronizasyon ilkeleridir. Varsayılan olarak fsr, çoğu kritik bölümün verim pahasına bile adil bir şekilde oynamaya çalışmasını sağlar, böylece hiçbir iş parçacığının diğer iş parçacıklarının ihtiyaç duyduğu kaynak domuzlarından emin olmaz. Bununla birlikte, biraz daha az adil bir yöntem kullanmak için belirli bir kritik bölüm geçersiz kılınır ve başka bir belirli kritik bölüm hiçbir etkisi olmayacak şekilde bastırılır. Hepsi ini dosyasından yapılandırılabilir. Ayrıca spincounts de geçerli olur.
7.3: Yığın değiştirme:
Bu özellik henüz fallout 3'te düzgün çalışmıyor.
7.4: Karma tablosu:
Fallout, her türlü şeyi aramak için bir sürü karma tablosu içerir. Genellikle korkunç bir karma tablosu uygulaması kullandılar, ancak asıl sorun karma tablosunun boyutlarını asla değiştirmezlerdir. Bir karma tablosu aşırı olduğunda performans düşer. Bir karma tablosu altındaysa, küçük bir bellek boşa çıkabilir. Ne yazık ki, karma tablosu kodunun çoğu her yerde sıralandır ve fose karma tablosu hakkında çeşitli varsayımlar yapar ve bana ilgili iş parçacığı modelinin ne olması gerektiği hiç net değildir, bu yüzden onları güvenli bir şekilde değiştirmek oldukça zordur.
Yine de bazı hashtablo kankalarım var ve yavaş yavaş iyileşiyorlar. Fsr, hashtabloların boyutunu artırabilir ve hashtabloların boyutunu artırabilir. Bununla birlikte, boyutlarını değiştirme eylemi sorunlarla doluy-çökmelere veya arızalara neden olabilir ve bunu önlemek için kullandığım yöntemler küçük performans kekelenmesine veya diğer çökmelere veya arızalara neden olabilir. Yine de, şu anda biraz iyi işe yarayabileceğini düşünüyorum. Gelecekte bunu belirli karma tablolarının başlangıç boyutlarını geçersiz kılarak değiştirebilir veya tamamlayabilirim.
====================================
8. Kredi:
====================================
Bu eklentim benim (Christopher Doty-Humphrey) tarafından yapıldı.
Fose ekibinin büyük çabaları olmadan mümkün olmazdı. Ayrıca, Ian Patterson (Fose ekibi adamı) sorun yaşadığım birçok yerden geçmeme yardım etti.
Bu eklentiyi başlatmamı isteyen orijinal iş parçacığı deviuscreed tarafından başlatıldı.
Birçok test cihazı yararlı geri bildirim sağladı. Özellikle Mashani'nin hangi ayarların onun için hangi sonuçları ürettiği hakkındaki bilgileri, bunun ilk sürümlerinin neden beklenmedik faydalar sağladığını anlamama yardımcı oldu ve daha sonraki sürümlerde bazı özelliklere ve ayarlara yol açtı.
Ayrıca badhair'e performans sorunlarının bir nedeni olarak aşırı dolu karma tablosunu işaret ettiğiniz için teşekkür etmek istiyorum.
Bu eklentiyi üretirken aşağıdaki araçlar kullanılmıştır:
Bethesda tarafından unutulmuş/çökülmüş
OBSE/fose ve OBSE/fose kaynak kodu
Microsoft Visual C++ 2008 Express Edition
Da free (etkileşimli hata ayıklayıcı, ücretsiz sürüm, 4.9 sürüm)
Dolandırma motoru (sürüm 5.4)
Artık Windows XP, not defter ve firefox gibi bariz şeyler.
Unutma/fallout ve windows xp hariç, bunların hepsi ücretsiz olarak kullanılabilir.
Ayrıca hex atölyesi ve ollydbg bana tavsiye ettim, ama henüz denemedim.