Cải thiện số liệu Serialization và Remoting hiệu suất

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch máy của Microsoft chứ không phải do con người dịch. Microsoft cung cấp các bài viết do con người dịch và cả các bài viết do máy dịch để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng ngôn ngữ của bạn. Tuy nhiên, bài viết do máy dịch không phải lúc nào cũng hoàn hảo. Loại bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, giống như một người nước ngoài có thể mắc sai sót khi nói ngôn ngữ của bạn. Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra. Microsoft cũng thường xuyên cập nhật phần mềm dịch máy này.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này:829740
Bài viết này đã được lưu trữ. Bài viết được cung cấp "nguyên trạng" và sẽ không còn được cập nhật nữa.
TÓM TẮT
Bài viết này thảo luận về tối ưu hóa hiệu suất cho lớn hơn .NET Framework System.Data.DataSet các lớp học và cung cấp một mẫu serialization wrapper lớp mà là tối ưu hóa nhiều hơn nữa hiệu quả serialize và deserialize lớn hơn Số liệu các lớp học.
THÔNG TIN THÊM
Khi bạn vượt qua một System.Data.DataSet đối tượng giữa các quy trình.NET Framework Remoting là sử dụng serialize, vận tải, và deserialize các Số liệu lớp học. Nếu bạn vượt qua một Số liệulớp trở lại từ một.NET Web dịch vụ, trong nội bộ của Microsoft.NET Framework System.xml.serialization.XMLSerializer lớp học được sử dụng để serialize các Số liệu dữ liệu trở lại cho khách hàng. Nếu bạn vượt qua một Số liệu trở lại từ một đối tượng được quản lý được lưu trữ trong COM +, các BinaryFormatter lớp này được dùng.NET Framework Remoting. Bất kể của cơ chế remoting được sử dụng bởi các.NET Framework, các Số liệu lớp học luôn chuyển dữ liệu nội bộ XML khi serializing các dữ liệu.

Các Số liệu lớp học được bao gồm với Microsoft.NET Framework 1.0 và với các.NET Framework 1.1 hoạt động hiệu quả cho serializing một lượng nhỏ dữ liệu (hàng trăm hàng) trong các Số liệu qua.NET Framework Remoting. Cơ chế serialization là không hiệu quả với một lớn hơn Số liệu (hàng ngàn hàng) và phải gánh chịu lớn cấp phát bộ nhớ (ngắn hạn sống) thoáng qua. Các cấp phát bộ nhớ giảm khả năng mở rộng ứng dụng.

Chú ý Cấp phát bộ nhớ tạm thời một là một cấp phát bộ nhớ ngắn ngủi xảy ra trong khi chế biến một số đoạn Mã. Vì vậy, trong thời gian serialization, trong remoting và trong deserialization của một Số liệu lớp, khác nhau quản lý các đối tượng đang được giao và deallocated trong nội bộ bằng .NET Framework Remoting để xử lý yêu cầu remoting. Phân bổ và deallocating lớn hơn và lớn hơn các đối tượng được quản lý đặt thêm áp lực trên các.NET hệ thống quản lý bộ nhớ và làm giảm khả năng mở rộng tổng thể. Ví dụ, một ứng dụng có nhiều phương pháp trong chuyến bay invocations mà tạo ra lớn bộ nhớ thoáng qua phân bổ có thể chạy ra khỏi bộ nhớ trước khi hoàn thành tất cả các cuộc gọi phương pháp.

Bạn có thể đáng kể cải thiện serialization và remoting hiệu suất cho lớn hơn DataSets bằng cách sử dụng một thiết kế chính xác thay thế loại hoặc serialization wrapper lớp. Để biết thêm về cách sử dụng một cơ chế thay thế hoặc một wrapper cơ chế (hoặc cả hai) với các.NET Framework Số liệu lớp, ghé thăm Web site sau của Microsoft Developer Network (MSDN): Tuy nhiên, bài viết này không cung cấp một mẫu hoàn chỉnh như thế nào để thực hiện một Số liệu thay thế loại hoặc một serialization wrapper lớp.

Bài viết này chứa một mẫu serialization wrapper lớp mà là tối ưu hóa hiệu quả hơn serialize và deserialize lớn hơn DataSets. Các lớp một cách đáng kể làm giảm phân bổ thoáng qua bộ nhớ so với remoting một điển hình Số liệu. Cắt giảm lớn ở cấp phát bộ nhớ tạm thời cũng cải thiện thời gian kết thúc để kết thúc remoting và cải thiện khả năng mở rộng khi sử dụng một lớn hơn Số liệu.

Mẫu cung cấp một serialization wrapper lớp mà là đặt tên DataSetSurrogate. Các DataSetSurrogate lớp học được sử dụng như là một wrapper lớp cho bất kỳ Số liệu bạn muốn từ xa. Các thành phần máy chủ chạy các Số liệu mà bạn muốn các DataSetSurrogate nhà xây dựng và sau đó vượt qua các DataSetSurrogate lớp học lại cho khách hàng. Về phía khách hàng, các DataSetSurrogate.ConvertToDataSet phương pháp được sử dụng để giải nén các Số liệu từ các DataSetSurrogate lớp học.

Các DataSetSurrogate lớp được đánh dấu Serializable và tất cả các lĩnh vực trong các DataSetSurrogate lớp cũng có các lớp học serializable. Vì vậy, khi bạn từ xa các DataSetSurrogate đối tượng, cơ sở hạ tầng remoting tự động công và deserializes các DataSetSurrogate đối tượng và tất cả các lĩnh vực của mình. Các lợi thế chính serialization của các DataSetSurrogate lớp trên các Số liệu lớp học là những DataSetSurrogate lớp công dữ liệu trong một định dạng nhị phân. Serializing bằng cách sử dụng một định dạng nhị phân là nhiều hiệu quả hơn cả bộ nhớ và CPU so với hiện tại Số liệu Định dạng XML serialization.

Chú ý Để tối đa hóa hiệu suất lợi ích của này wrapper serialization lớp, sử dụng các .NET Framework System.Runtime.serialization.Formatters.Binary.BinaryFormatterlớp khi Remoting. Remoting bằng cách sử dụng các .NET Framework System.Runtime.serialization.Formatters.SOAP.SoapFormatter lớp không phải là như là hiệu quả khi bạn sử dụng các DataSetSurrogate lớp học.

Các tập tin sau đây có sẵn để tải về từ Microsoft Download Trung tâm:
Tải vềTải về gói SurrogateSample.exe bây giờ. Để thêm thông tin về làm thế nào tải tập tin hỗ trợ của Microsoft, bấm số bài viết sau đây để xem bài viết trong cơ sở kiến thức Microsoft:
119591 Làm thế nào để có được hỗ trợ của Microsoft tập tin từ các dịch vụ trực tuyến
Microsoft đã quét vi-rút cho tệp này. Microsoft sử dụng nhiều nhất phần mềm phát hiện vi rút hiện tại đã có sẵn trên ngày mà các tập tin đã được đăng. Các tập tin được lưu trữ trên tăng cường bảo mật máy chủ giúp ngăn ngừa bất kỳ thay đổi không được phép để các tập tin.

Truy nhập tệp mẫu

Lưu các tập tin SurrogateSample.exe vào ổ c trên máy tính của bạn. Từ đó bạn có thể giải nén cấu trúc thư mục. Đó là một tập tin readme trong mỗi thư mục chứa hướng dẫn bổ sung.

Cảnh báo: Bài viết này được dịch tự động

Thuộc tính

ID Bài viết: 829740 - Xem lại Lần cuối: 12/08/2015 04:55:58 - Bản sửa đổi: 2.0

Microsoft .NET Framework 1.0, Microsoft .NET Framework 1.1

  • kbnosurvey kbarchive kbdownload kbinfo kbmt KB829740 KbMtvi
Phản hồi