THotPDF Windowed Local File Mapping
Kiểm soát ánh xạ bộ nhớ chỉ đọc có giới hạn được dùng bởi LoadFromFile cho các tài liệu cục bộ lớn
Khai báo
property LocalFileMappingThreshold: Int64;
property LocalFileMappingWindowSize: Integer;
property LocalFileMappingCacheWindows: Integer;
property LocalFileMappingAdaptiveGeometry: boolean;
property LastLoadUsedMemoryMapping: boolean;
function GetLastMappedFileStatistics(
out Statistics: THPDFMappedFileStatistics): boolean;
Giá trị mặc định
| Cài đặt | Mặc định | Ý nghĩa |
|---|---|---|
LocalFileMappingThreshold | 8 MiB | Kích thước nguồn tối thiểu chọn ánh xạ bộ nhớ; không vô hiệu hóa ánh xạ |
LocalFileMappingWindowSize | 16 MiB | Byte được bao phủ bởi một chế độ xem căn chỉnh theo mức phân bổ |
LocalFileMappingCacheWindows | 4 | Số chế độ xem thường trú tối đa được giữ bởi bộ đệm LRU |
LocalFileMappingAdaptiveGeometry | True | Phân phối lại cùng giới hạn byte được ánh xạ cho truy cập tuần tự hoặc ngẫu nhiên bền vững |
Thống kê
THPDFMappedFileStatistics = record
FileSize: Int64;
ConfiguredWindowSize: Int64;
ConfiguredCacheWindowCount: Integer;
WindowSize: Int64;
CacheWindowCount: Integer;
MappedByteLimit: Int64;
CurrentMappedBytes: Int64;
PeakMappedBytes: Int64;
GeometryChangeCount: Int64;
SequentialReadCalls: Int64;
RandomReadCalls: Int64;
AdaptiveGeometry: Boolean;
SequentialGeometryActive: Boolean;
RandomGeometryActive: Boolean;
ReadCalls: Int64;
BytesRead: Int64;
MapCount: Int64;
CacheHits: Int64;
FallbackReadCalls: Int64;
FallbackBytes: Int64;
DirectTransferCalls: Int64;
DirectTransferBytes: Int64;
end;
GetLastMappedFileStatistics trả về True chỉ khi thao tác LoadFromFile gần nhất chọn ánh xạ
MapCount đếm các chế độ xem mới và CacheHits đếm các lần đọc được phục vụ bởi một chế độ xem hiện có, cho phép ứng dụng và điểm chuẩn tinh chỉnh hình học cửa sổ theo các mẫu truy cập thực
MappedByteLimit vẫn cố định trong khi WindowSize và CacheWindowCount báo cáo hình học đang hoạt động; byte ánh xạ đỉnh, số đếm mẫu và cờ chế độ làm cho mọi sự thích nghi đều quan sát được
Loại nguồn nâng cao
THPDFMappedFileSource sở hữu handle tệp dùng chung, đối tượng ánh xạ, cửa sổ LRU đồng bộ, bộ đếm tham chiếu và đường dẫn dự phòng theo vị trí
THPDFMappedFileStream phơi bày một lát có thể tìm kiếm có giới hạn trên nguồn đó, còn THPDFMappedFileWindow mô tả một chế độ xem nội bộ được lưu trong bộ đệm
Hành vi
- Các chế độ xem chỉ được ánh xạ khi một lần đọc đến phạm vi của chúng và được trục xuất theo thứ tự ít được dùng gần nhất
- Tám quan sát tiến bền vững chọn cửa sổ tuần tự lớn hơn, còn tám quan sát xa hoặc lùi chọn tối đa 16 cửa sổ truy cập ngẫu nhiên nhỏ hơn
- Hình học thích nghi không bao giờ vượt quá giới hạn byte suy ra từ kích thước và số lượng bộ đệm đã cấu hình
- Các lần đọc vượt qua ranh giới cửa sổ được sao chép trong các đoạn có giới hạn mà không tạo bộ đệm toàn tệp
HPDFTransferStreamghi các lát được ánh xạ trực tiếp từ mỗi cửa sổ thường trú và ghi lại số lệnh gọi chuyển trực tiếp và byte riêng khỏi các lần đọc trình phân tích- Luồng trình phân tích và thân luồng PDF lười biếng không sửa đổi chia sẻ một handle tệp, đối tượng ánh xạ và bộ đệm cửa sổ an toàn luồng
- Nguồn cho phép đổi tên hoặc xóa nguyên tử trong khi hoạt động, còn ánh xạ hiện có của nó giữ một chế độ xem ổn định của các byte đã mở
- Thất bại khi tạo ánh xạ chọn triển khai
TFileStreamgốc, còn lần thất bại cấp phát chế độ xem sau đó chuyển nguồn dùng chung sang đọc tệp theo vị trí có khóa - Kích thước cửa sổ dưới 64 KiB và số lượng bộ đệm ngoài 1 đến 32 nâng
ERangeError
Xem thêm: LocalFileMappingAdaptiveGeometry, LoadFromFile, Tải Có Khả Năng Mở Rộng, HPDFTransferStream, LoadedStreamMemoryThreshold