ข้อกำหนดหน่วยความจำ
Aspose.Words มีคุณสมบัติมากมายในการทำงานกับเอกสารในรูปแบบต่างๆ สิ่งสำคัญคือต้องทราบว่าไม่มีการจำกัดขนาดสูงสุดของไฟล์เอกสารที่ Aspose.Words สามารถประมวลผลหรือแสดงผลได้ ข้อจำกัดเพียงอย่างเดียวคือจำนวน RAM (หน่วยความจำ) ที่มีอยู่ในฝั่งของคุณ
Aspose.Words ต้องการหน่วยความจำเท่าใด
โดยปกติ Aspose.Words ต้องใช้หน่วยความจำมากกว่าขนาดเอกสารหลายเท่าเพื่อสร้างแบบจำลองของเอกสารในหน่วยความจำ ตัวอย่างเช่น หากเอกสารของคุณมีขนาด 1 MB Aspose.Words จะต้องมี RAM 10-20 MB เพื่อสร้าง Document Object Model (DOM) ในหน่วยความจำ ตัวคูณขึ้นอยู่กับรูปแบบเนื่องจากบางรูปแบบมีขนาดกะทัดรัดกว่ารูปแบบอื่นๆ ตัวอย่างเช่น DOCX มีขนาดกะทัดรัดกว่า DOC และ RTF และ DOC มีขนาดกะทัดรัดมากกว่า RTF
ไม่มีวิธีที่แน่ชัดในการประมาณจำนวนหน่วยความจำที่ Aspose.Words ใช้งานจริงในระหว่างการประมวลผลไฟล์เอกสารใดๆ ดังที่คุณอาจทราบแล้วว่า .NET เก็บข้อมูลไว้ในคลาส แต่ละอินสแตนซ์ของคลาสจะใช้หน่วยความจำบางส่วนเพื่อวัตถุประสงค์ภายในของ CLR ดังนั้นย่อหน้าหรือข้อความที่จัดรูปแบบใดๆ (แม้จะประกอบด้วยอักขระตัวเดียว) ต้องใช้หน่วยความจำเพิ่มเติมหลังจากโหลดลงใน DOM นอกจากนี้ กลไกตัวรวบรวมขยะ .NET ยังใช้อัลกอริธึมที่ซับซ้อนเพื่อกำหนดเวลาที่ดีที่สุดในการดำเนินการรวบรวมหน่วยความจำ ทำให้ยากต่อการพิจารณาปริมาณการใช้หน่วยความจำจริง
วิธีการคำนวณจำนวนหน่วยความจำ
พิจารณาเอกสารสองฉบับ:
- เอกสาร DOCX “A” – ขนาด 0.35 MB (2 พันหน้า) เฉพาะข้อความเท่านั้น
- เอกสาร DOCX “B” – ขนาด 0.35 MB (เพียง 1 หน้า) พร้อมรูปภาพ PNG อยู่ภายใน
ดังที่คุณทราบ รูปแบบสมัยใหม่มากมาย เช่น DOCX, ODT ฯลฯ เป็นไฟล์ ZIP แบบธรรมดา ดังนั้นเราจึงได้อัลกอริธึมการคำนวณดังต่อไปนี้:
- การคลายซิป แตกไฟล์เอกสาร “A” มีขนาด 20 MB เอกสาร “B” มีขนาด 0.4 MB
- การโหลดเอกสารลงในโมเดล (สร้าง Document Object Model – DOM):
- การสร้าง DOM ของเอกสารแรก “A” ต้องใช้ขนาด 49 MB
- การสร้าง DOM ของเอกสารที่สอง “B” ต้องการขนาดเพียง 2 MB
- การวัดจำนวนหน่วยความจำที่ต้องการเพื่อแสดงเอกสารเหล่านี้เป็น PDF สำหรับการดำเนินการนี้ Aspose.Words กำหนดให้มีสิ่งต่อไปนี้
- 294 MB สำหรับเอกสาร “A”
- 7 MB สำหรับเอกสาร B
อย่างที่คุณเห็น ไม่มีการพึ่งพาเชิงเส้นตรงกับขนาดเอกสารอินพุต มีปัจจัยหลายประการที่อาจส่งผลต่อขนาด RAM ที่ต้องการ เช่น รูปแบบเอกสาร ความซับซ้อนและโครงสร้าง จำนวนภาพและรูปแบบ และปัจจัยอื่นๆ อีกมากมาย
วิธีการคำนวณตัวคูณหน่วยความจำอย่างแม่นยำที่สุด
การทดลองกับเอกสารจริงหลายพันฉบับแสดงให้เห็นว่าโดยทั่วไปแล้ว Aspose.Words ต้องใช้หน่วยความจำมากกว่าขนาดเอกสารโดยเฉลี่ยหลายเท่าเพื่อสร้างโมเดลเอกสารในหน่วยความจำ และดำเนินการง่ายๆ เช่น การแปลงระหว่างรูปแบบโฟลว์, mail merge, แยกวิเคราะห์, แทนที่ และอื่นๆ บางครั้งเรากำลังพูดถึงตัวคูณ 2 และบางครั้ง 20
การดำเนินการที่ซับซ้อนมากขึ้น เช่น การเรนเดอร์ (การแปลงเป็นรูปแบบเพจคงที่) การอัปเดตฟิลด์ การแบ่งหน้า และอื่นๆ สำหรับเอกสารบางฉบับต้องใช้ทรัพยากรมากกว่าหน่วยความจำที่จัดสรรโดยเอกสารที่โหลดใน Aspose.Words DOM ถึง 20 เท่า
หากผลการโปรไฟล์ของคุณบ่งชี้ถึงปัญหาหน่วยความจำที่อาจเกิดขึ้นใน Aspose.Words โปรดติดต่อ การสนับสนุนทางเทคนิค ของเราและรวมข้อมูลการวินิจฉัยทั้งหมดไว้ด้วย