Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 5 của 5
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Test đánh giá về tốc độ của các Collection.

    Mình viết ra bài này để nhằm cho các bạn hiểu hơn về Collection và cách thức sử dụng nó cũng như khi nào dùng tới nó. Mình giới thiệu về 3 Collection mà mình sẽ dùng trong bài test này là: Hashtable,ListDictionary và HybridDictionary.
    _Đầu tiên là Hashtable: Collection này theo MS giới thiệu là để lưu trữ tập các giá trị gồm Key và Value. Kích thước lưu trữ là large.
    _ListDictionary : Cũng để lưu trữ nhưng với kích thước small.
    _HybridDictionary: Cái này thì là trung gian 2 cái trên, có kích thước mà ta không thể xách định được trong project là large hay small thì chọn nó!.
    Chắc các bạn thường sử dụng Hashtable hơn 2 cái dưới, nhưng theo mình thì tùy vào chương trình mà dùng nó sẽ hợp lý hơn.
    Các bạn thử test theo nhiều cấp giá trị, sẽ thấy tốc độ thực thi của chúng nhanh, chậm như thế nào nhé!.
    Với Hashtable:
    Mã:
    Hashtable hs = new Hashtable();
                for(i=0;i<10;i++)
                {
                    hs.Add(i,i);
                }
                foreach(DictionaryEntry entry in hs)
                {
                    Console.WriteLine(entry.Value);
                }
    Với ListDictionary:
    Mã:
    ListDictionary list = new ListDictionary();
                for (i = 0; i < 10; i++)
                {
                    list.Add(i, i);
                }
                foreach (DictionaryEntry entry in list)
                {
                    Console.WriteLine(entry.Value);
                }
    Với HybridDictionary:
    Mã:
                HybridDictionary hy = new HybridDictionary();
                for (i = 0; i < 10; i++)
                {
                    hy.Add(i, i);
                }
                foreach (DictionaryEntry entry in hy)
                {
                    Console.WriteLine(entry.Value);
                }
    _ OK! Giờ thì là công việc của bạn. Bạn hãy chạy 3 chương trình với từng đoạn code trên, hãy bấm time nhé! hihi. Lưu ý ở đây mình đưa vào giá trị là 10, các bạn hãy tăng dần lên: 100, 10000, 100000,.... thì tùy, rồi lúc đó các bạn sẽ hiểu thôi. Small thì kích thước lớn sẽ.... ^^! À, các bạn nhớ :
    Mã:
    using System.Collections;
    using System.Collections.Specialized;
    vào nhé! ....Chúc các bạn tìm được niềm vui trong học lập trình...

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Bạn nên test thử rồi so sánh kết quả luôn cho mọi người vào đọc thì rõ ràng và có sức thuyết phục hơn.
    À tiện khuyến mãi cho bạn nào chưa có đồng hồ bấm giờ nhé (-_^):


  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Thế nào là kích thước lớn, thế nào là nhỏ? lấy mốc nào ra để so sánh!
    Tốc độ thực thi ở đây cậu mới chỉ so sánh việc Add vào, duyệt qua các collection? vậy còn so sánh, tìm kiếm thì thế nào?
    Tại sao cậu lại lấy môc 10,100... ra là mốc so sánh?
    Viết 1 tutorial, dù là nhỏ nhưng cậu cũng nên đầu tư 1 chút time, đã so sánh thì phải rõ ràng, đừng làm mọi người càng thêm mù mở.OK

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    hashtable lưu object data
    dictionary lưu specific data
    dictionary > hashtable
    :[IMG]images/smilies/lick.gif[/IMG][IMG]images/smilies/lick.gif[/IMG]

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Mình viết bài viết này với mục đích chính là để các bạn nào chưa biết thì vào đọc, cũng như các bạn biết rồi thì củng cố lại chút kiến thức. Nhìn những tut mà mọi người viết mình thấy rất hay, nhưng xem cho cùng thì với mình thực sự là chưa năng động. Để mọi người đọc bài viết của mình, làm theo bài viết đó thì sẽ chỉ là 1 con rối và hiểu được đúng như gì bài viết đã nêu ra. Học đi đôi với hành và chiêm nghiệm kết quả, tự cảm thấy vui khi có những bài thực hành hay. Mình không giỏi và mình chỉ là người mới bắt đầu, vì thế mình muốn mọi người cùng đọc và cùng học với mình. Việc ghi kết quả ra sẽ không còn gì là thú vị nữa!
    _Học là phải thực hành điều này ai cũng biết!
    _Muốn học tốt cần có niềm đam mê,chịu khó và với mình thì cần có thêm sự hứng thú.Học mà như học chay, nhìn mấy bài viết dài dòng dọc ra, rồi khen " Bài viết có chất lượng! THanks" Thử hỏi liệu các bạn đã làm theo chưa mà thanks? Chắc chỉ một số ít những người thôi chứ đa phần trong diễn đàn mình thấy nhiều người giỏi lắm! Những ai mới vào C# thì xem những gì mình nói có đúng không nhé!
    _Bác điếu cày 555 nói vậy mình xin ghi nhận, nhưng chắc bác do kinh nghiệm quá nhiều rồi nên chưa hiểu tâm lý mấy người mới vô học C#.Chắc sau này nhìn lại thì mình cũng như bác thôi.Thằng nào viết tut mà dở hơi thế!...
    _ Còn nói về bài viết này thì mình chỉ đưa ra cái cơ bản là Add và duyệt qua các items mà thôi. Các mốc 10,100,.... chỉ là tương đối. Khi mà số lượng lên càng nhiều thì ListDictionary sẽ tỏ ra không còn lợi thế, và xét về lý thuyết thì đúng là chỉ dành cho việc lưu trữ với kích thước small.

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •