บีบอัดวัตถุแคชในหน่วยความจำ

ฉันกำลังสร้างแอปพลิเคชัน MVC ASP.NET ระดับองค์กรซึ่งจัดเก็บวัตถุขนาดใหญ่ไว้ในแคชหน่วยความจำโดยใช้ไลบรารีองค์กร 4.1

ขนาดออบเจ็กต์มีตั้งแต่ 18-22MB สำหรับผู้ใช้แต่ละคน อาจมีผู้ใช้พร้อมกัน 530 คนเมื่อใดก็ได้ ฉันกังวลเล็กน้อยเกี่ยวกับขนาดของวัตถุในหน่วยความจำ ใครช่วยกรุณาแนะนำรูปแบบใด ๆ ที่ฉันสามารถใช้เพื่อบีบอัดวัตถุในหน่วยความจำ? ฉันไม่เห็นบทความใดที่กล่าวถึงว่า Ent Lib 4.1 รองรับแคชหน่วยความจำที่บีบอัดนอกกรอบหรือไม่

การลดขนาดข้อมูลของออบเจ็กต์แคชไม่ใช่ทางเลือก เนื่องจากเราต้องจัดเก็บข้อมูลมูลค่า 3 ปีไว้ในหน่วยความจำเพื่อหลีกเลี่ยงการโทรไปกลับที่บริการเว็บ

ขอบคุณ.


person Nil Pun    schedule 09.01.2013    source แหล่งที่มา
comment
ฉันรู้ว่ามันฟังดูไร้สาระนิดหน่อย แต่... ตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ของคุณมี RAM เพียงพอหรือไม่ ผู้ใช้ 22MB x 530 น้อยกว่า 12GB และ RAM มีราคาถูก (ค่อนข้าง) นอกจากนี้ การบีบอัดใดๆ จำเป็นต้องคลายการบีบอัดก่อนใช้งาน ซึ่งหมายความว่าค่าใช้จ่ายที่คุณมักจะไม่ได้รับ มันอาจจะดีกว่าถ้าได้รับ RAM เพิ่มขึ้น 20% แทนที่จะพยายามลดขนาดของวัตถุลง 20%   -  person Damovisa    schedule 09.01.2013
comment
คุณยังคงสามารถใช้แคชดิสก์ในเครื่องบนเว็บเซิร์ฟเวอร์หรือแม้แต่ฐานข้อมูลแคชในเครื่องได้ (เช่น SQL Server Compact 4.0: microsoft.com/en-us/download/details.aspx?id=17876) หรือบางอย่างเช่น memcached (หรือฉันกล้าพูดว่า AppFabric Caching) อีกครั้ง 530 * 22MB มีเพียง ~ 11.5 กิกะไบต์ดังนั้นเว็บเซิร์ฟเวอร์สมัยใหม่ที่มี RAM 16 หรือ 24 GB ไม่น่าจะมีปัญหาใด ๆ ตราบใดที่คุณใช้ ASP.net 64 บิตและไม่เกิน 2 GB Object Limit (ซึ่งสามารถปรับแต่งได้ แต่ฉันคิดว่าในที่สุดประสิทธิภาพของ GC ก็ต้องถูกจิกกัด)   -  person Michael Stum    schedule 09.01.2013


คำตอบ (1)


บล็อกแคช Entlib ไม่รองรับการบีบอัดในหน่วยความจำ (หรือบนดิสก์สำหรับเรื่องนั้น)

person Chris Tavares    schedule 11.01.2013