cuốn sách gpt4 ai đã làm

Một số phương pháp kết nối chuỗi C# cũng như phân tích và so sánh hiệu suất của chúng

In lại Tác giả: Sahara Thời gian cập nhật: 23-12-2024 08:51:42 58 4
mua khóa gpt4 Nike

Lời nói đầu

Nối chuỗi là một thao tác phổ biến và cơ bản trong chương trình C#, được sử dụng rộng rãi trong nhiều vấn đề khác nhau, các giới hạn như tạo truy vấn SQL, xây dựng nhật ký thông tin, dạng hiển thị nội dung của người dùng, v.v. hôm nay Điểm chuẩnDotNet.

Điểm chuẩnDotNet

Điểm chuẩnDotNet đánh giá giá và năng lực hóa tối ưu mạnh mẽ cho các nhà phát triển .NET. nền tảng, nâng cao kê thống kê phân tích và tùy chỉnh cấu hình, BenchmarkDotNet giúp các nhà phát triển hiểu rõ hơn và hiệu quả tối ưu hóa performance của phần mềm hệ thống.

  • Hướng dẫn sử dụng chi tiết:https://mp.weixin.qq.com/s/6mpHS1OVuIlBgdU71OIIOw

Nối cơ sở dữ liệu

const riêng int IterationCount = 1000;
string const riêng tư StringPart1 = "Time Chaser";
string const riêng tư StringPart2 = "DotNetGuide";
string const riêng tư StringPart3 = "Cộng đồng công nghệ DotNetGuide";
chuỗi đọc riêng tư[] _stringPartsArray = { "Time Chaser", "DotNetGuide", "Cộng đồng nghệ thuật DotNetGuide" };

+Toán tử

        /// 
        /// Sử dụng toán tử + để kết nối chuỗi
        ///

        ///
        [Chuẩn điểm]
        chuỗi công khai PlusOperator()
        {
            kết quả chuỗi = string.Empty;
            for (int i = 0; i < IterationCount; i++)
            {
                kết quả += StringPart1 + " " + StringPart2 + " " + StringPart3;
            }
            trả kết quả;
        }

$suy nghĩ nội dung chuỗi

        /// 
        /// Use $ để nội suy các chuỗi để kết nối các chuỗi
        ///

        ///
        [Chuẩn điểm]
        string công khai InterpolatedString()
        {
            kết quả chuỗi = string.Empty;
            for (int i = 0; i < IterationCount; i++)
            {
                kết quả += $"{StringPart1} {StringPart2} {StringPart3}";
            }
            trả kết quả;
        }

Chuỗi.Format

        /// 
        /// Use string.Format() để nối chuỗi
        ///

        ///
        [Chuẩn điểm]
        khai báo string StringFormat()
        {
            kết quả chuỗi = string.Empty;
            for (int i = 0; i < IterationCount; i++)
            {
                kết quả += string.Format("{0} {1} {2}", StringPart1, StringPart2, StringPart3);
            }
            trả kết quả;
        }

String.Concat

        /// 
        /// Sử dụng string.Concat() để nối chuỗi
        ///

        ///
        [Chuẩn điểm]
        khai báo chuỗi StringConcat()
        {
            kết quả chuỗi = string.Empty;
            for (int i = 0; i < IterationCount; i++)
            {
                kết quả += string.Concat(StringPart1, " ", StringPart2, " ", StringPart3);
            }
            trả kết quả;
        }

String.Join

        /// 
        /// Use string.Join() để nối chuỗi
        ///

        ///
        [Chuẩn điểm]
        string công khai StringJoin()
        {
            kết quả chuỗi = string.Empty;
            for (int i = 0; i < IterationCount; i++)
            {
                kết quả += string.Join(" ", _stringPartsArray);
            }
            trả kết quả;
        }

Trình tạo chuỗi

        /// 
        /// Use StringBuilder to connect string
        ///

        ///
        [Chuẩn điểm]
        string công khai StringBuilder()
        {
            StringBuilder stringBuilder = new StringBuilder();
            for (int i = 0; i < IterationCount; i++)
            {
                stringBuilder.Append(StringPart1);
                stringBuilder.Append(" ");
                stringBuilder.Append(StringPart2);
                stringBuilder.Append(" ");
                stringBuilder.Append(StringPart3);
            }
            return stringBuilder.ToString();
        }

So sánh hiệu suất kiểm tra hoàn thành mã

    [MemoryDiagnoser]//Ghi lại bộ nhớ bổ sung
    lớp công khai StringConcatenationĐiểm chuẩn
    {
        const riêng int IterationCount = 1000;
        string const riêng tư StringPart1 = "Time Chaser";
        string const riêng tư StringPart2 = "DotNetGuide";
        string const riêng tư StringPart3 = "Cộng đồng công nghệ DotNetGuide";
        chuỗi đọc riêng tư[] _stringPartsArray = { "Time Chaser", "DotNetGuide", "Cộng đồng nghệ thuật DotNetGuide" };

        ///
        /// Sử dụng toán tử + để kết nối chuỗi
        ///

        ///
        [Chuẩn điểm]
        chuỗi công khai PlusOperator()
        {
            kết quả chuỗi = string.Empty;
            for (int i = 0; i < IterationCount; i++)
            {
                kết quả += StringPart1 + " " + StringPart2 + " " + StringPart3;
            }
            trả kết quả;
        }

        ///
        /// Use $ để nội suy các chuỗi để kết nối các chuỗi
        ///

        ///
        [Chuẩn điểm]
        string công khai InterpolatedString()
        {
            kết quả chuỗi = string.Empty;
            for (int i = 0; i < IterationCount; i++)
            {
                kết quả += $"{StringPart1} {StringPart2} {StringPart3}";
            }
            trả kết quả;
        }

        ///
        /// Use string.Format() để nối chuỗi
        ///

        ///
        [Chuẩn điểm]
        khai báo string StringFormat()
        {
            kết quả chuỗi = string.Empty;
            for (int i = 0; i < IterationCount; i++)
            {
                kết quả += string.Format("{0} {1} {2}", StringPart1, StringPart2, StringPart3);
            }
            trả kết quả;
        }

        ///
        /// Sử dụng string.Concat() để nối chuỗi
        ///

        ///
        [Chuẩn điểm]
        khai báo chuỗi StringConcat()
        {
            kết quả chuỗi = string.Empty;
            for (int i = 0; i < IterationCount; i++)
            {
                kết quả += string.Concat(StringPart1, " ", StringPart2, " ", StringPart3);
            }
            trả kết quả;
        }

        ///
        /// Use string.Join() để nối chuỗi
        ///

        ///
        [Chuẩn điểm]
        string công khai StringJoin()
        {
            kết quả chuỗi = string.Empty;
            for (int i = 0; i < IterationCount; i++)
            {
                kết quả += string.Join(" ", _stringPartsArray);
            }
            trả kết quả;
        }

        ///
        /// Use StringBuilder to connect string
        ///

        ///
        [Chuẩn điểm]
        string công khai StringBuilder()
        {
            StringBuilder stringBuilder = new StringBuilder();
            for (int i = 0; i < IterationCount; i++)
            {
                stringBuilder.Append(StringPart1);
                stringBuilder.Append(" ");
                stringBuilder.Append(StringPart2);
                stringBuilder.Append(" ");
                stringBuilder.Append(StringPart3);
            }
            return stringBuilder.ToString();
        }
    }

Báo cáo kiểm tra phân tích, so sánh hiệu suất chuẩn

Method Nghĩa là Lỗi StdDev thế hệ0 thế hệ 1 Đã bổ sung thêm
PlusOperator 2.066,28 chúng tôi 35.761us 63.566 chúng tôi 5238.2813 789.0625 32283.12 KB
Suy nghĩ nội chuỗi 1.984,56us 29.949us 28.014 chúng tôi 5238.2813 789.0625 32283.12 KB
String format 2.112,02 chúng tôi 25.020 chúng tôi 23.404 chúng tôi 5257.8125 777.3438 32369.06 KB
ChuỗiConcat 2.027,09 chúng tôi 28.300 chúng tôi 26.472 chúng tôi 5257.8125 777.3438 32369.06 KB
Chuỗi tham gia 2.017,36 chúng tôi 27.111 chúng tôi 22.639 chúng tôi 5257.8125 777.3438 32369.06 KB
Trình tạo chuỗi 13.63 chúng tôi 0,065 chúng tôi 0,058 chúng tôi 23.2544 4.6387 143,96 KB

minh họa:

  • Nghĩa là: Giá trị trung bình số học của tất cả các giá trị được đo.
  • Lỗi: một nửa khoảng tin cậy 99,9%.
  • StdDev: Chuẩn độ lệch của tất cả các phép đo được phép.
  • thế hệ0: GC thế hệ 0 thu thập sau mỗi 1000 hoạt động.
  • thế hệ 1: GC thế hệ 1 thu thập sau mỗi 1000 hoạt động.
  • thế hệ 2: GC thế hệ 2 thu thập sau mỗi 1000 hoạt động.
  • Đã bổ sung thêm: Bộ nhớ được phân tích bổ sung cho mỗi thao tác (bộ nhớ chỉ được quản lý, bao gồm tất cả, 1KB = 1024B).
  • 1 dặm: 1 dặm (0,001 pound).

Kết quả kiểm tra so sánh hiệu suất chuẩn

StringBuilder là hoạt động chuỗi kết nối phương pháp tốt nhất, đặc biệt là trong các câu chuyện yêu cầu nối chuỗi thường xuyên. tử +, string $interpolated, String.Format, String.Concat và String.Join) có hiệu suất tương thích thấp vì chúng dẫn đến công việc phân tích bổ sung và sao chép nhiều bộ nhớ.

If performance StringBuilder. StringBuilder. Dễ dàng đọc mã quan trọng hơn và số lượng kết nối ít hơn, bạn có thể cân nhắc sử dụng các phương pháp khác.

Cuối cùng, bài viết này về một số chuỗi kết nối phương pháp C# cũng như phân tích và so sánh hiệu suất của nó ở cuối đây. tìm kiếm các bài viết CFSDN hoặc tiếp tục duyệt các bài viết liên quan. lại!

58 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress