ปรับปรุงประสิทธิภาพของ Aspose.PSD โดยใช้แคชที่ปรับแต่งได้
ปรับปรุงประสิทธิภาพด้วยแคชที่ปรับแต่งได้
Aspose.PSD ใช้แคชเพื่อเก็บข้อมูลชั่วคราว กลไกการใช้งานง่าย สามารถปรับแต่งได้และโปร่งใส ทำให้มั่นใจได้ว่าจะไม่มีปัญหาเรื่องประสิทธิภาพขณะประมวลผลภาพ บทความนี้อธิบายวิธีการปรับแต่งแคชด้วย API ของ Aspose.PSD สำหรับ .NET
การปรับแต่งแคช
เมื่อกระบวนการต้องการพื้นที่เก็บข้อมูลชั่วคราว เพื่อเก็บข้อมูลชั่วคราวนั้นจะถูกจัดสรรในแคช แคชสามารถเป็นพื้นที่ในหน่วยความจำหรือในดิสก์ และจะถูกตั้งค่าโดยผู้ใช้ เมื่อข้อมูลชั่วคราวไม่ได้ใช้อีกต่อไป พื้นที่จะถูกปล่อย สถิติของพื้นที่ที่ได้รับการจัดสรรสามารถถูกตรวจสอบได้ในทุกเวลา วิธีการที่ Aspose.PSD จัดสรรและใช้แคชสามารถถูกปรับแต่งได้ ในส่วนนี้จะอธิบายการตั้งค่าต่าง ๆ และค่าเริ่มต้นของพวกมัน โค้ดตัวอย่างด้านล่างแสดงวิธีการใช้งาน
การตั้งค่าว่าแคชจะถูกจัดสรรที่ไหน
เพื่อปรับแต่งว่าที่จะจัดสรรพื้นที่แคช ตั้งค่าคุณสมบัติ CacheType โดยค่าเริ่มต้นแคชจะถูกจัดสรรในหน่วยความจำและเมื่อไม่มีพื้นที่ว่างในหน่วยความจำอีกต่อไป มันจะถูกจัดสรรไปยังดิสก์ พฤติกรรมนี้ถูกจับไว้โดยโหมดอัตโนมัติ โหมดอัตโนมัติเป็นโหมดที่ยืดหยุ่นและสูงสุดประสิทธิภาพ ยังมีโหมดอื่น ๆ ด้วย:
- โหมด CacheOnDiskOnly: จัดสรรไปยังดิสก์เท่านั้น
- โหมด CacheInMemoryOnly: จัดสรรไปยังหน่วยความจำเท่านั้น
การเลือกโหมด CacheOnDiskOnly อาจส่งผลให้ประสิทธิภาพต่ำ
การตั้งค่าขนาดของแคช
ตั้งค่าพื้นที่สูงสุด (ในไบต์) ที่สามารถจัดสรรได้บนดิสก์หรือหน่วยความจำโดยกำหนดค่า MaxDiskSpaceForCache และ MaxMemoryForCache ตามลำดับ โดยค่าเริ่มต้นทั้งสองค่าถูกตั้งเป็น 0 หมายความว่าไม่มีข้อจำกัดบนด้านบนได้
ควบคุมการจัดสรรแคชอีกครั้ง
หากมีพื้นที่ไม่เพียงพอในหน่วยความจำ (ตามที่ระบุโดยคุณสมบัติน์ MaxMemoryForCache) เมื่อมีการจัดสรรแคชใหม่ แคชจะถูกจัดสรรไปยังดิสก์ หากมีพื้นที่ไม่เพียงพอบนดิสก์ จะถูกโยนข้อยกเว้น กระบวนการจัดสรรแคชจะเคลื่อนที่จากหน่วยความจำไปยังดิสก์ แต่จะไม่เคลื่อนกลับ คุณสมบัติน์ ExactReallocateOnly ใช้ควบคุมการจัดสรรหน่วยความจำใหม่ การจัดสรรอาจเกิดขึ้นได้สำหรับแคชที่ถูกจัดสรรไว้ล่วงหน้า มันสามารถเกิดขึ้นเมื่อระบบสรุพสิ้นใจว่าพื้นที่ที่ถูกจัดสรรจะไม่เพียงพอ หาก ExactReallocateOnly ถูกตั้งค่าเป็นค่าเริ่มต้น ซึ่งคือ False พื้นที่จะถูกจัดสรรใหม่ในตำแหน่งเดียวกัน เมื่อตั้งค่าเป็น True การจัดสรรใหม่ไม่สามารถเกินพื้นที่สูงสุดที่ระบุไว้ ในกรณีนี้แคชในหน่วยความจำที่ถูกจัดสรรไว้ (ซึ่งต้องการการจัดสรรใหม่) จะถูกปลดว่างและจะมีการจัดสรรพื้นที่ขยายบนดิสก์