การปรับปรุง Serialization ชุดข้อมูลและประสิทธิภาพการทำงานของ Remoting

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 829740 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

สรุป

บทความนี้อธิบายเกี่ยวกับประสิทธิภาพการปรับให้เหมาะสมสำหรับ.NET Framework ที่ใหญ่ขึ้นSystem.Data.DataSetคลา และให้การคลาสที่ wrapper serialization ตัวอย่างที่ได้รับการออกแบบ serialize และ deserialize ใหญ่ขึ้นได้อย่างมีประสิทธิภาพชุดข้อมูลคลาสที่

ข้อมูลเพิ่มเติม

เมื่อคุณส่งต่อเป็นSystem.Data.DataSetวัตถุระหว่างกระบวนการ ใช้.NET Framework Remoting serialize การขนส่ง และ deserializeชุดข้อมูลคลาสที่ ถ้าคุณส่งตัวชุดข้อมูลคลากลับจากแบบ.NET บริการเว็บ ภายใน Microsoft .NET FrameworkSystem.Xml.Serialization.XMLSerializerมีใช้คลาเพื่อ serializeชุดข้อมูลข้อมูลกลับไปยังไคลเอนต์ ถ้าคุณส่งตัวชุดข้อมูลจากวัตถุที่ได้รับการจัดการที่โฮสต์ใน COM + กลับไปBinaryFormatterมีใช้คลา ด้วย.NET Framework Remoting คำนึงถึงกลไก remoting ที่ใช้.NET Framework,ชุดข้อมูลคลาแปลงข้อมูลภายในให้ XML เสมอเมื่อ serializing ข้อมูล

กระบวนการชุดข้อมูลใช้งานคลาสที่มีอยู่ ด้วย Microsoft .NET Framework 1.0 และ ด้วย.NET Framework 1.1 ได้อย่างมีประสิทธิภาพสำหรับ serializing ยอดเงินที่ขนาดเล็กของข้อมูล (เป็นร้อย ๆ รายการของแถว) ในการชุดข้อมูลผ่าน Remoting กรอบงานการ.NET กลไก serialization คือ inefficient กับข้อความมีขนาดใหญ่ชุดข้อมูล(หน่วยพันของแถว) และ incurs การปันส่วนการหน่วยความจำ (lived สั้น) transient ขนาดใหญ่ การปันส่วนการหน่วยความจำเหล่านี้ลด scalability แอพลิเคชัน

หมายเหตุ:การจัดสรรหน่วยความจำ transient ถูกจัดสรรหน่วยความจำ short-lived ที่เกิดขึ้นในระหว่างการประมวลผลบางส่วนของรหัส ดังนั้น ใน ระหว่างการ serialization ใน ระหว่างการ remoting และ ระหว่าง deserialization ของคำชุดข้อมูลคลา ต่าง ๆ จัดการวัตถุที่ถูกปันส่วน และ deallocated ภายใน โดย Remoting Framework .NET การประมวลผลการร้องขอ remoting การปันส่วน และ deallocating มีขนาดใหญ่ และมีขนาดใหญ่ได้รับการจัดการวัตถุใส่ไวต่อแรงกดเพิ่มเติมบนระบบการจัดการหน่วยความจำของ.NET และลด scalability โดยรวม ตัวอย่างเช่น โปรแกรมประยุกต์ที่มีเมธอด in-flight invocations จำนวนมากที่สร้างการปันส่วนของหน่วยความจำขนาดใหญ่ที่ transient สามารถเรียกใช้หน่วยความจำไม่เพียงพอก่อนที่จะดำเนินการเรียกวิธีทั้งหมด

คุณสามารถปรับปรุงประสิทธิภาพสำหรับ serialization และ remoting ได้เป็นอย่างมากมีขนาดใหญ่DataSetsโดยใช้การออกแบบอย่างถูกต้อง surrogate ชนิดหรือ serialization wrapper คลาส สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้กลไกการ surrogate กลไกการ wrapper (หรือทั้งสองอย่าง) ด้วย.NET Frameworkชุดข้อมูลคลาส เยี่ยมชมเว็บไซต์ของ Microsoft สำหรับนักพัฒนาเครือข่าย (MSDN) ต่อไปนี้:
http://msdn.microsoft.com/msdnmag/issues/02/12/cuttingedge
อย่างไรก็ตาม บทความนี้ไม่มีตัวอย่างสมบูรณ์เกี่ยวกับวิธีการที่นำมาใช้กับชุดข้อมูลชนิด surrogate หรือคลาสที่ wrapper serialization

บทความนี้ประกอบด้วยคลาสที่ wrapper serialization ตัวอย่างที่ได้รับการออกแบบ serialize และ deserialize ใหญ่ขึ้นได้อย่างมีประสิทธิภาพDataSets. คลาลดการปันส่วนของหน่วยความจำ transient และ remoting แบบปกติมากชุดข้อมูล. reductions ขนาดใหญ่ในการปันส่วนของหน่วยความจำ transient เพิ่มเวลาสิ้นสุดเพื่อสิ้น remoting และปรับปรุง scalability เมื่อใช้มีขนาดใหญ่เช่นกันชุดข้อมูล.

ตัวอย่างแสดงคลา wrapper serialization ที่ชื่อDataSetSurrogate. กระบวนการDataSetSurrogateมีใช้คลาสเป็นคลา wrapper เป็นสาเหตุใดชุดข้อมูลที่คุณต้องการระยะไกล คอมโพเนนต์ของเซิร์ฟเวอร์ส่งผ่านนั้นชุดข้อมูลที่คุณต้องการDataSetSurrogateสร้าง และจากผ่านไปยังDataSetSurrogateคลากลับไปยังไคลเอนต์ บนฝั่งไคลเอ็นต์DataSetSurrogate.ConvertToDataSetใช้วิธีการขยายชุดข้อมูลจากนั้นDataSetSurrogateคลาสที่

กระบวนการDataSetSurrogateคลาถูกทำเครื่องหมายserializableและฟิลด์ทั้งหมดที่อยู่ในนั้นDataSetSurrogateคลาสที่จะยังคลาสที่ serializable ดังนั้น เมื่อคุณใช้ระยะไกลDataSetSurrogateวัตถุ โครงสร้างพื้นฐาน remoting serializes และ deserializes โดยอัตโนมัติDataSetSurrogateวัตถุและฟิลด์ทั้งหมด ประโยชน์ serialization คีย์ของการDataSetSurrogateคลาสผ่านทางการชุดข้อมูลคลาคือที่DataSetSurrogateคลา serializes ข้อมูลในรูปแบบไบนารี serializing โดยใช้รูปแบบไบนารีคือมากประสิทธิภาพทั้ง ในหน่วยความจำและ CPU นอกเหนือจากที่มีอยู่ชุดข้อมูลจัดรูปแบบ serialization xml

หมายเหตุ:เมื่อต้องการให้มากที่สุดสวัสดิการประสิทธิภาพของคลาสนี้ wrapper serialization ใช้.NET FrameworkSystem.Runtime.Serialization.Formatters.Binary.BinaryFormatterคลาสเมื่อ remoting remoting โดยใช้.NET FrameworkSystem.Runtime.Serialization.Formatters.Soap.SoapFormatterคลาสที่ไม่มีประสิทธิภาพได้เมื่อคุณใช้การDataSetSurrogateคลาสที่

แฟ้มต่อไปนี้สามารถดาวน์โหลดได้จากศูนย์ดาวน์โหลดของ Microsoft::
ยุบรูปภาพนี้ขยายรูปภาพนี้
ดาวน์โหลด
ดาวน์โหลดแพคเกจ SurrogateSample.exeสำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการดาวน์โหลดแฟ้มสนับสนุนของ Microsoft โปรดคลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base::
119591วิธีรับแฟ้มการสนับสนุนของไมโครซอฟท์จากบริการออนไลน์
Microsoft สแกนแฟ้มนี้เพื่อหาไวรัส Microsoft ใช้ซอฟต์แวร์ตรวจสอบไวรัสล่าสุด ณ วันที่มีการประกาศแฟ้มนั้นๆ แฟ้มดังกล่าวจะถูกเก็บในเซิร์ฟเวอร์เพิ่มการรักษาความปลอดภัย ซึ่งช่วยป้องกันการเปลี่ยนแปลงแก้ไขแฟ้มโดยไม่ได้รับอนุญาต

การเข้าถึงแฟ้มตัวอย่าง

บันทึกแฟ้ม SurrogateSample.exe ไปยังไดรฟ์ C บนคอมพิวเตอร์ของคุณ จากที่นี่ คุณสามารถแยกโครงสร้างของโฟลเดอร์ ไม่ใช่แฟ้ม readme ในแต่ละโฟลเดอร์ที่ประกอบด้วยคำแนะนำเพิ่มเติม

คุณสมบัติ

หมายเลขบทความ (Article ID): 829740 - รีวิวครั้งสุดท้าย: 18 ตุลาคม 2553 - Revision: 2.0
ใช้กับ
  • Microsoft .NET Framework 1.0
  • Microsoft .NET Framework 1.1
Keywords: 
kbdownload kbinfo kbmt KB829740 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:829740

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com