2010-07-28 18 views
5

में संदेश-पासिंग का प्रदर्शन मैंने अपने अभिनेताओं के संदर्भ में अभिनेता मॉडल कार्यान्वयन के मानक देखे हैं। उदाहरण के लिए, अक्का अभिनेता बहुत हल्के होते हैं (प्रति अभिनेता 600 बाइट) और उनमें से लाखों को बनाया जा सकता है। हालांकि, मैंने संदेश-पासिंग थ्रूपुट के संदर्भ में कभी भी बेंचमार्क नहीं देखा है।अभिनेता मॉडल

उदाहरण के लिए, कुछ कलाकारों को दिया गया है, प्रति सेकेंड के बीच कितने संदेश गुजर सकते हैं?

क्या किसी के पास ऐसे प्रदर्शन बेंचमार्क (संदेश-पासिंग थ्रूपुट के संदर्भ में) का कोई लिंक है?

उत्तर

0

जब मैंने मॉडल के कार्यान्वयन के आसपास बनाए गए इस साधारण अभिनेता के साथ एक प्रदर्शन परीक्षण चलाया तो उसके प्रति 445573.906 संदेश प्रति सेकंड थ्रुपुट था। स्पष्ट रूप से यह एक प्रत्याशित परीक्षण है लेकिन यह आपको एक सामान्य विचार देता है कि यह जंगली में कैसे प्रदर्शन कर सकता है।

private class TestActor : Actor<int, bool> 
{ 
    protected override void ProcessMessage(AsyncReplyPackage<int, bool> package) 
    { 
     package.ReplyChannel.Send(package.Message > 2000000); 
    } 
} 

static void Main(string[] args) 
{ 
    var r = false; 
    using (var ts = new TestActor()) 
    using (var rc = new AsyncChannel<bool>()) 
    { 
     ts.PostWithAsyncReply(0, rc); 
     r = rc.Receive(); 

     var count = 3000000; 
     var sw = Stopwatch.StartNew(); 
     for (int i = 0; i < count; i++) 
     { 
      ts.PostWithAsyncReply(i, rc); 
      r = rc.Receive(); 
     } 
     Console.WriteLine(sw.Elapsed); 
    } 
    Console.WriteLine(r); 
    Console.ReadLine();   
} 

आकार

मैं प्रोफाइलर भड़क उठे और ऐसा लगता है कि मेरी कार्यान्वयन 944 बाइट्स की तरह। :(

+0

मुझे लगता है कि यह प्रश्न अभी भी बहुत पूर्ण है आराम कर रहा। अगर किसी के पास योगदान करने के लिए कुछ है ... या यदि स्कैला, अक्का प्रदर्शन की निगरानी करने के लिए कोई उपकरण है। – jimakos17

संबंधित मुद्दे