<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=gb2312"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:宋体;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:黑体;
        panose-1:2 1 6 9 6 1 1 1 1 1;}
@font-face
        {font-family:黑体;
        panose-1:2 1 6 9 6 1 1 1 1 1;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"\@宋体";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"\@黑体";
        panose-1:2 1 6 9 6 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        text-align:justify;
        text-justify:inter-ideograph;
        font-size:10.5pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
/* Page Definitions */
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=ZH-CN link=blue vlink=purple style='text-justify-trim:punctuation'><div class=WordSection1><p class=MsoNormal><span lang=EN-US>Hi experts,<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>I wrote a TCP client program used twisted to receive lots of data from the server and decode them for analysis.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>But the efficiency is ugly.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>I used<b><span style='color:red'> “profile” and “pstats” </span></b>to analysis and found <b><span style='color:red'>selectreactor.py</span></b> is time consuming.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>what is <b><span style='color:red'>selectreactor.py</span></b> used for?<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>How can I improve that? <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>Very thanks.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal align=left style='text-align:left'><span lang=EN-US>2012-03-13 17:46:10+0800 [-] Tue Mar 13 17:46:10 2012 astar_prof.txt<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left'><span lang=EN-US>2012-03-13 17:46:10+0800 [-] <o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left'><span lang=EN-US>2012-03-13 17:46:10+0800 [-] 9111 function calls (9070 primitive calls) in 119.166 CPU seconds<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left'><span lang=EN-US>2012-03-13 17:46:10+0800 [-] <o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left'><span lang=EN-US>2012-03-13 17:46:10+0800 [-] Ordered by: internal time<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left'><span lang=EN-US>2012-03-13 17:46:10+0800 [-] List reduced from 496 to 15 due to restriction <15><o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left'><span lang=EN-US>2012-03-13 17:46:10+0800 [-] <o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left'><span lang=EN-US>2012-03-13 17:46:10+0800 [-] ncalls tottime percall cumtime percall filename:lineno(function)<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left'><span lang=EN-US>2012-03-13 17:46:10+0800 [-] 171 119.092 0.696 119.094 0.696 :0(select)<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left'><span lang=EN-US>2012-03-13 17:46:10+0800 [-] 156 0.005 0.000 0.007 0.000 http.py:225(datetimeToLogString)<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left'><span lang=EN-US>2012-03-13 17:46:10+0800 [-] 4 0.005 0.001 0.007 0.002 protocol.py:131(dataReceived)<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left'><span lang=EN-US>2012-03-13 17:46:10+0800 [-] 171 0.004 0.000 0.029 0.000 base.py:718(runUntilCurrent)<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left'><span lang=EN-US>2012-03-13 17:46:10+0800 [-] 324 0.004 0.000 0.004 0.000 :0(append)<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left'><span lang=EN-US>2012-03-13 17:46:10+0800 [-] 160 0.004 0.000 0.004 0.000 :0(heappop)<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left'><b><span lang=EN-US style='color:red'>2012-03-13 17:46:10+0800 [-] 171 0.004 0.000 119.114 0.697 selectreactor.py:93(doSelect)<o:p></o:p></span></b></p><p class=MsoNormal align=left style='text-align:left'><span lang=EN-US>2012-03-13 17:46:10+0800 [-] 164 0.003 0.000 0.003 0.000 :0(heappush)<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left'><span lang=EN-US>2012-03-13 17:46:10+0800 [-] 342 0.003 0.000 0.006 0.000 base.py:699(_insertNewDelayedCalls)<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left'><span lang=EN-US>2012-03-13 17:46:10+0800 [-] 342 0.003 0.000 0.003 0.000 :0(keys)<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left'><span lang=EN-US>2012-03-13 17:46:10+0800 [-] 358 0.002 0.000 0.002 0.000 :0(fileno)<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left'><span lang=EN-US>2012-03-13 17:46:10+0800 [-] 163 0.002 0.000 0.005 0.000 base.py:648(callLater)<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left'><span lang=EN-US>2012-03-13 17:46:10+0800 [-] 19/1 0.002 0.000 0.003 0.003 xml2dict.py:16(_parse_node)<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left'><span lang=EN-US>2012-03-13 17:46:10+0800 [-] 686 0.002 0.000 0.002 0.000 :0(time)<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left'><span lang=EN-US>2012-03-13 17:46:10+0800 [-] 51 0.002 0.000 0.003 0.000 :0(encode)<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left'><span lang=EN-US>2012-03-13 17:46:10+0800 [-]<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left'><span lang=EN-US style='font-size:10.0pt;color:#1F497D'>Best</span><span lang=EN-US style='font-size:10.0pt;font-family:宋体;color:black'><o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left'><span lang=EN-US style='font-size:10.0pt;color:#1F497D'>Regards,</span><span lang=EN-US style='font-size:10.0pt;font-family:宋体;color:black'><o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left'><span lang=EN-US style='font-size:10.0pt;color:#1F497D'> </span><span lang=EN-US style='font-size:10.0pt;font-family:宋体;color:black'><o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left'><span lang=EN-US style='font-size:10.0pt;color:#1F497D'>Xiao Peng(</span><span style='font-size:10.0pt;font-family:黑体;color:#1F497D'>肖鹏</span><span lang=EN-US style='font-size:10.0pt;color:#1F497D'>)</span><span lang=EN-US style='font-size:10.0pt;font-family:宋体;color:black'><o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left'><span lang=EN-US style='font-size:10.0pt;color:#1F497D'>Cisco Systems<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left'><span lang=EN-US style='font-size:10.0pt;color:#1F497D'>GSP-Beijing (China)<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left'><span lang=EN-US style='font-size:10.0pt;color:#1F497D'>Office: +86 10 8507 7181</span><span lang=EN-US style='font-size:10.0pt;font-family:宋体;color:black'><o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left'><span lang=EN-US style='font-size:10.0pt;color:#1F497D'>Mobile: +86 18600560077(preferred)</span><span lang=EN-US style='font-size:10.0pt;font-family:宋体;color:black'><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p></div></body></html>