Performans Ayarlaması
Render ve belleği optimize edin
Doconut'un kaynak profili üç şey tarafından hâkimdir: render DPI, önbellekte ne kalır ve oturumların ne kadar süre yaşadığı. Bu kılavuz, etki sırasına göre kaldıraçları açıklar.
Çözünürlük — en büyük kaldıraç
ImageResolution (25–300 DPI) hem render süresini hem de görüntü boyutunu belirler. Çoğu format varsayılan olarak 200 DPI; görüntüler ve PSD varsayılan olarak 100 DPI kullanır.
// A document list preview doesn't need print quality
var token = await viewer.OpenDocumentAsync(path, new PdfConfig { ImageResolution = 100 });DPI'yi yarıya indirmek, sayfa başına piksel sayısını yaklaşık olarak dörtte birine düşürür — daha hızlı render, daha küçük transferler, daha az önbellek belleği. Yakınlaştırma ağırlıklı kullanım durumları (CAD, mühendislik çizimleri) için 250–300 DPI ayırın.
Yoğun gömülü görseller içeren PDF'ler için PdfConfig daha ince ayarlar ekler: CompressImages + CompressQuality, ResizeImages + ResizeResolution ve CompressFast. Düz görüntüler için ImageConfig.MaxImagePixelSize (varsayılan 3000 piksel) çıkış boyutunu sınırlar.
Sayfa önbellekleme — bellek vs. yeniden render
BaseConfig.CachePages (varsayılan true) oturum süresi boyunca her render edilmiş sayfayı bellekte tutar. Bu, etkileşimli görüntüleme için doğru varsayılandır — kullanıcılar ileri geri kaydırır. Şu durumlarda kapatın:
- belgeler çok büyük ve bir kez, baştan sona görüntüleniyorsa,
- çok sayıda eşzamanlı oturum önbellekli sayfaları katlayacaktır,
- RAM tutmak yerine görüntü başına CPU harcamayı tercih ediyorsanız.
var token = await viewer.OpenDocumentAsync(path, new PdfConfig { CachePages = false });İstemci tarafında, ViewerConfig.CacheEnabled = true tarayıcı belleğinde yaklaşan sayfa görsellerinin küçük bir hareketli penceresini önceden yükler. Bu, görüntü başına bir önceden getirme önbelleğidir, kalıcı localStorage değildir.
Oturumlar — görmediğiniz bellek
Açık her oturum, ayrıştırılmış belge modelini ve (CachePages ile) render edilmiş sayfalarını, kayan TimeOut (varsayılan 60 dakika) son istekten itibaren dolana kadar tutar. Bu durumu kontrol altında tutan iki alışkanlık:
- İşiniz bittiğinde kapatın.
viewer.CloseDocument(token)motoru hemen serbest bırakır, boş bekleme penceresini beklemek yerine. - Zaman aşımını uygun boyuta ayarlayın. Kullanıcıların iki dakika baktığı bir önizleme bir saatlik oturuma ihtiyaç duymaz:
var token = await viewer.OpenDocumentAsync(path, new DocOptions { TimeOut = 10 });Değiş tokuşu unutmayın: süresi dolduktan sonra widget Document session not found. Please re-open document. mesajını gösterir — gerçek okuma oturumlarıyla eşleşen bir zaman aşımı seçin.
Formata özgü ayarlar
- Excel:
MemoryOptimizationPreferencevarsayılan olarak açıktır ve çok büyük çalışma kitaplarını render ederken bellek ayak izini azaltır — açık bırakın, ya da hafızayı küçük bir hız kazancı için takas etmek istersenizfalseolarak ayarlayın;SheetNames/PrintArearender'ı önemli olanlarla sınırlamaya yarar. - Yönlendirme modu önceden bir maliyet gerektirir:
DefaultRender = falsebelgeyi açma sırasında tamamen PDF'ye dönüştürür. Yerel metin tabanlı arama sağlar, ancak 500 sayfalık bir belgede açma çağrısı bu dönüşümü taşır — otomatik olarak etkinleştirmeyin. - Word/PPT Linux/Docker üzerinde: eksik yazı tipleri yavaş geri dönüş taraması ve hatalı ölçümlere neden olur;
FontFolders'ı yazı tiplerinizin bulunduğu bir dizine yönlendirin. - Linux/macOS üzerindeki sunumlar: PPT/PPTX/PPS/POT/ODP dosyaları açılabilir, ancak mevcut sunum motoru ile render etmek yerel
libgdiplusve çalışma zamanı anahtarıSystem.Drawing.EnableUnixSupport=truegerektirir. Diğer format aileleri normal çapraz platform render yolunu kullanır.
İstemci tarafı stratejileri
LargeDoc = true— çok büyük belgeler için tembel yükleme stratejisi; sayfalar kullanıcı yaklaştıkça yüklenir.AutoLoad = false(varsayılan) —View(token)çağırana kadar render etmeyin.ShowThumbs = false— tek sayfalı veya gömülü önizlemeler için küçük resim oluşturmayı/isteklerini atlayın.FixedZoom'ı etkinleştirmek serbest zoom değişikliklerini önler; bir C#ViewerConfigeşlediğinizde, küçük ekranlar içinFixedZoomPercentMobile'ı (C# varsayılanı 75) ayarlayın.
Tek seferlik başlangıç, istek başına değil
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance) Program.cs içinde yer almalıdır — kod sayfalarını istek başına kaydetmek gereksiz bir iştir; tamamen unutulması eski kod sayfası belgelerini bozar.
Bir ayarlama kontrol listesi
ImageResolution'ı UX'inizin kabul edebileceği en düşük değere ayarlayın.- Etkileşimli görüntüleme için
CachePages'ı açık tutun; tek geçiş veya yüksek eşzamanlılık senaryoları için kapatın. - Oturumları açıkça kapatın; kullanım dalgalı olduğunda
TimeOut'u kısaltın. - Büyük belgeler için istemci tarafında
LargeDoc+ varsayılanAutoLoad = falsekullanın. DefaultRender = false'ı yalnızca metin içeren bir PDF projeksiyonuna ihtiyacınız olduğunda kullanın.
Bu sayfa yardımcı oldu mu?